V1: explicit import filters and two-stage repository retirement #39
Labels
No labels
Compat/Breaking
Crazy Idea
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
OpenIndiana/ips#39
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #24
Preserved snapshot support promise — 2026-09-22
Maintainer decision: selected historical ISO snapshots must support maintaining the historical system, not merely booting/installing and upgrading to current Hipster. Users must be able to install additional packages and repair installed packages while retaining that snapshot's original version constraints. Selected snapshots remain protected indefinitely under the agreed retention policy.
Consequences for design and acceptance:
This settles the product-level snapshot promise. Reconstruction, snapshot catalog design and validation remain engineering work, not completed functionality.
Configurable retirement and KDL policy — 2026-09-22
Latest maintainer direction:
Engineering defaults/constraints to carry into the design (defaults selected here under that delegation, not independently quoted maintainer decisions): retirement is opt-in/disabled by default; disabling pauses policy-driven retirement without purging content or automatically restoring hidden versions. Continue serving hidden exact-FMRI content. Keep access tracking separately durable. Manual purge remains an explicit operator action with retention, snapshot and dependency checks; enabling retirement must never enable automatic purge. Document configuration effects and validate durations/rules before any mutation.
Still require evidence rather than assumptions: actual local pkg5 behavior, snapshot dependency closure, safe catalog replacement, and historical-client compatibility. No implementation or runtime validation is claimed by this decision update.
Access to hidden versions — 2026-09-22
Maintainer decision: a qualifying access to a hidden version resets its purge eligibility clock but leaves it hidden. It must not automatically reappear in catalogs or search. Restoring catalog/search visibility requires an explicit local restore/unretire command; exact CLI spelling remains part of the command review. Access qualification and snapshot/dependency protection continue to apply. This is a required behavior, not an implementation-complete claim.
Agreed contract
Requires investigation / further grilling
Source: maintainer grilling, 2026-09-22. Requirements only; no implementation or validation claimed.
Implementation is in draft PR #50.
pkg6repo retirenow hides superseded versions from catalogs/search while exact manifests and payloads remain served; restore reverses that state, and no automatic purge exists. Policy is opt-in with a configurable 12-month inactivity default; protected snapshots preserve dependency closure. The access ledger fails closed on write errors, deleted newest logs (including after all depots stopped), and stale apply plans, with a per-depot durable head and commit-time fence. Explicit KDL/text/JSON FMRI exclusions fail preflight if dependencies would break. Focused tests passed: libips retention 35, retirement 31, HTTP 5, retire CLI 4. Independent Opus review found no release blocker after the final durability fix. Integration with the package/manpages and exact-head CI remains before closing.