V1: audit repository CLI semantics and remove overloaded obsolete-package #40
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
2 participants
Notifications
Due date
No due date set.
Reference
OpenIndiana/ips#40
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
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.
V1 administration boundary — 2026-09-22
Maintainer decision: the public HTTP interface is read-only in v1. Imports, retirement/purge and repository administration are available through local commands only. Remote publication and OIDC/RBAC remain deferred.
Apply this boundary to actual registered routes and any web UI: do not expose repository-mutating or administrative operations publicly in v1. Read-only package serving/search remain available. ACME HTTP-01 challenge serving remains supported and is not a repository administration endpoint. Document the local operator/CI script workflow and validate that public HTTP cannot mutate repository state. This records required behavior, not a claim that current routes already enforce it.
Required before release
Source: maintainer grilling, 2026-09-22. Requirements only; no implementation or validation claimed.
Implementation in draft PR #48: pkg6depotd now exposes only working
startandconfig-testoperations; unsupported depot/client operations fail non-zero. pkg6 client list, publisher, install-license and refresh cases no longer report false success, and publisher names are checked before catalog path deletion. Focused pkg6/pkg6depotd/libips tests passed; independent Opus review found no server-package blocker. The v1 IPS package does not deliver the pkg6 client, whose multi-publisher image catalog limitation remains out of release scope. The separate pkg6repo/pkg6recv command audit is in progress and will be integrated before the RC tag. Keeping this ticket open until the integrated exact-head CI and package tests pass.The repository-tool half of the command review is now draft PR #49. It removes the destructive
cleanup-obsoletedand misleading archive/import-archive commands, rejects ignored URI/TLS/filter options, preserves pkg5pkg.obsoletecatalog semantics, and makespkg6recvfail before mutation for empty/missing/ambiguous requested packages. The legacy export now writes atomically without replacing an existing file. Focusedpkg6repo(28),pkg6recv(9), and libips export tests passed; an independent Opus review found no code blocker. The integration line still needs manpage packaging, test-inventory gates, and exact-head CI before closing this ticket.CLI review finding from the oirepo6 migration: the old 0.5
pkg6repohasimport-pkg5andimport-archive, but no bareimport. Git history addedimport-pkg5inc3ff6ac; ADR-009 retained it for atomic CI.p5pimports and removedimport-archive. RC13 commitf6691a0addedimport-historical plan|run|publish|statusunder ADR-014 because a 2.1M-manifest V3 source cannot fit the 10,000-manifest/64-MiB whole-batch budget, and publishing every bounded batch separately would be quadratic. That separate safety path is justified, buthistoricaldescribes age rather than behavior: a small historical source usesimport-pkg5, and a large current directory would needimport-historical. Before v1, review a unifiedpkg6repo importcommand family with clearly named atomic and staged modes, preserving the distinct backend contracts and updating CI, tests and illumos manpages together. No CLI rename is made by this comment.import archiveandimport source#55The rename question raised above is decided (ADR-015 item 4): one
pkg6repo importfamily withimport archive(atomic) andimport source plan|run|publish|status(staged), before thev1.0.0tag. Build ticket: #55.