package manager: torb vendor #24
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?
Context
Readiness lists
vendoramong the package manager's commands.Source
Acceptance criteria
torb vendorcopies the locked dependencies into the projectdocs/tooling/Dependencies
None known.
Moved from the planning lists of the docs; the design record stays the specification.
[loop:torbscript] intake: in scope (author orion, label loop).
torb vendorper RELEASE.md readiness; client only, no seed impact expected. The vendor directory layout and lock interplay are to settle in refine. Release freeze for 0.1.0 (2026-10-06) holds new PRs, next: refine (queued)[loop:torbscript] refine: still queued behind the intake order. next: waiting (ready buffer full: #4, #163, #164, #223 are ready) until 2026-10-10T04:00:00Z
[loop:torbscript] claim refine by session:loop-torbscript-20261012 until 2026-10-12T08:53Z
[loop:torbscript] release: the worker on anthropic:theorben died on its weekly limit before its first reply; respawning on the next profile.
[loop:torbscript] claim refine by session:loop-torbscript-20261012 until 2026-10-12T08:58Z
[loop:torbscript] decided by the loop:
torb vendorfollows RELEASE.md section 7.5 ("copies the locked graph intovendor/and writes asource ... path:line per package, which is PROJECT.md's own mechanism") and PROJECT.md section 7 (source "owner/name", path:). Roadmap: milestone 8, package manager (RELEASE.md readiness line 101, slice 11 "built withoutvendor"). Decisions:vendor/<owner>/<name>/holds the package tree exactly as unpacked in the cache (same bytes as the archive, so the tree hash is reproducible). Every package of the lock'sgraphthat comes from a registry gets a copy, transitive ones included;path:and workspace members are skipped.source "<owner>/<name>", path: "vendor/<owner>/<name>"per vendored package, written into the rootproject.trbthrough the existing manifest editing (compiler/src/package/manifest-edit.trb), then the lock is rewritten, so the graph lists them aspath:(PROJECT.md section 7 lock table). Offline builds then need neither cache nor network.torb installwhen missing;--offlinefails naming the first missing package). Nothing is verified later:path:sources are not hashed, which is the documented price (the lock's "Apath:package is not reproducible"). A project with vendored dependencies cannot be published; the command says so and documents the way back.vendor/<owner>/), and unchanged output reports "up to date". No new native or seed change: only existing File/Path natives andstdcalls (client code incompiler/src/package+compiler/src/cli/packages.trb, command table inusage.trb/main.trb).torb vendor --undo(restore registry sources); a remove-by-hand of the source lines is documented instead.Seed impact: none. Size: one PR, two Conventional Commits (feat(package): vendor the locked graph; docs(tooling): torb vendor).
Acceptance criteria (replaces the list above; the original three stay valid):
torb vendor [--offline] [--project <dir>]copies every registry package of the lock intovendor/<owner>/<name>/, refusing a tree hash that differs from the pinned one before writing anything.project.trbgets onesource ... path:line per vendored package andproject.lock.trbis rewritten to match;torb lock --checkandtorb checkpass afterwards.TORB_CACHEpointing at an empty directory,--offline),torb buildof the vendored project succeeds; the same test fails beforevendorran.vendor/.--offline(names the first), a graph with apath:-only project (nothing to vendor, says so).file:registry fixture (no server); documented indocs/tooling/torb-vendor.md(new page, linked fromdocs/tooling/index.md,the-torb-command.mdrow 360 updated), RELEASE.md 7.5 gets an "As built" note,skills/regenerated.Dependencies: none open (install, cache, mirrors,
--offlineand manifest editing are built).[loop:torbscript] refine: ready (goal, testable criteria, design link, no seed impact, one PR), label
readyset, next: implement. Tokens used by this worker: ~60k.[loop:torbscript] claim implement by session:loop-torbscript-20261012 until 2026-10-12T13:01Z
[loop:torbscript] implement:
torb vendorbuilt (vendor.trb,runVendor,withSource/withoutSource, publish hint,tools/vendor.she2e wired into the gates, docstorb-vendor.md, RELEASE.md 7.5 as-built note, skills regenerated); first CI round failed on format, the summary length and a stalesettingsblock in the e2e aftertorb remove, fixed on the same branch, second round all green. PR #320, next: review (merge gate argus). Tokens: about 1.0M for the session (including two context compactions).[loop:torbscript] close: PR #320 merged by the merge gate as
4fba4d7aea, issue closed. Claim released.