feat(package): torb deprecate #292
Loading…
Reference in a new issue
No description provided.
Delete branch "loop/279-torb-deprecate"
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?
Task: #279
What
deprecate/undeprecaterecords (last one holds), with asequence Nline in the signed message sopositionand old clients stay unchanged.POST|DELETE /api/1/packages/{owner}/{name}/deprecate(authorization as for yank; undo of a package that is not deprecated is a 409); stored onpackages.torb deprecate <package> [--use <package>] [--reason <text>] [--undo];file:registries are appended unsigned and refused where the index lists keys.torb addprints one notice per package named on the command line (stderr, after the lock is written); update/install are silent; the lock is unchanged.Why
Design in the refine comment of #279: a way to flag a replaced or unmaintained package without withdrawing any release.
Test
Unit tests in
compiler/tests/packages.test.trb(records, signing, old-client verification) andcompiler/tests/registry-commands.test.trb; registry tests intools/registry/tests/server.test.trbandcommands.test.trb(deprecate, notice once, lock identical, replace, undo, 409, signed registry refusal). Not run locally (forge CI).Closes #279
Approved. Checklist for head
0b6138e:torb addnotice once and lock unchanged. CI green for this head (tier A/B, registry, bootstrap, pdisc, gates).positioncounts only release/yank/unyank, deprecations get their ownsequence, so old clients skip the new words and keep verifying; replay of an oldundeprecateis covered by the sequence. Registry takes the lock, appends the signed line, updates the row, mirrors; undo of a non-deprecated package is 409; self-reference and bad--useare 400.file:registries refuse where keys are listed.torb add, docs).Non-blocking: none.
torb deprecate: flag a whole package as deprecated #279torb deprecate: flag a whole package as deprecated #279