feat(package): resolve git: sources #330

Merged
argus merged 4 commits from loop/322-git-sources into main 2026-10-12 15:45:14 +00:00
Collaborator

Task

Loop stage IMPLEMENT for #322: resolve git: sources in the package manager (split from #27), following the design
decided in the refinement comment of the issue.

What and why

  • Resolution (compiler/src/package/git.trb, new): a source "...", git: "<url>", revision: "<rev>" line is fetched
    with the git executable (TORB_GIT names another one) via Process.runBlocking, in a scratch directory under the
    cache that is removed afterwards: init, fetch --depth 1 -- <repo> <rev>, and where that fails (a short commit id)
    a fetch of every branch and tag and rev-parse --verify -q <rev>^{commit}; then rev-parse FETCH_HEAD^{commit} and
    checkout -q --detach. The package files are checked like an archive's (file limit, pathProblem, UTF-8), hashed
    with treeHash and installed content-addressed. The fetched project.trb must name the source package.
  • Lock (lock.trb): package "<name>", git: "<url>"[, ref: "<rev>"], revision: "<commit>", hash: "sha256:...";
    ref: only where the revision is not a full commit id (refOf, isCommitId). An older lock has no such row and
    reads unchanged.
  • Keeping commits: add, remove, vendor and update <names> keep the locked commit of every other git:
    package whose source line still names the same URL and revision; plain update moves them all. A locked tree in
    the cache runs no git, and --offline never does.
  • Install fetches a missing git: tree at the locked commit and refuses a tree of another hash.
  • Build/check (workspace.trb): a git: row whose URL or revision is not the source line's, or whose repository no
    source line names, is a lock problem with run torb update; a missing tree says run torb install.
  • vendor leaves git: packages in place, publish refuses a package with a git: dependency, audit skips them.
  • Docs: project-lock-trb, project-trb, torb-install, torb-vendor, std project, PROJECT.md sections 7 and 11 "As built",
    RELEASE.md; skills/ regenerated.

Deviations from the refinement comment

  • No GIT_TERMINAL_PROMPT=0: std/process has no environment option, so it cannot be set. git only prompts
    where it has a terminal; in CI and other non-interactive runs a private repository fails instead of hanging.
  • The tree is the package files (packageFiles: the .trb files plus README.md/LICENSE*/COPYING* beside
    project.trb), not the whole checkout: other files of a repository (binary assets, CI config) neither break the UTF-8
    install nor change the hash, and the tree hash equals that of an archive of the same files.
  • Symbolic links anywhere in the checkout are refused (an archive has none either; a link can point outside).
  • --offline never runs git, not even for a file: URL.
  • No submodules are fetched.

Test

  • torb check compiler (nightly 2026-10-11): 388 files, no problems; torb format --check on every touched .trb.
  • compiler/tests/packages.test.trb: lock rows, refOf/isCommitId, the build/lock mismatches, and a new group
    "Sources from git" against throwaway repositories made with git (tag, branch, full and short commit; a kept
    commit after its branch moved; a hash mismatch; warm cache and --offline run no git; missing program, revision,
    - revision, empty revision; symlink). The group skips where no git is installed.
  • tools/packages.sh: new tests/packages/git-app fixture; the script makes the repository with git at a fixed
    author and date (stable commit id), then lock, run, lock --check, a revision mismatch, a missing revision, a name
    mismatch, install --offline refused and install at the locked commit. No network.
  • Gates: forge CI of this PR.

Closes #322

## Task Loop stage IMPLEMENT for #322: resolve `git:` sources in the package manager (split from #27), following the design decided in the refinement comment of the issue. ## What and why - **Resolution** (`compiler/src/package/git.trb`, new): a `source "...", git: "<url>", revision: "<rev>"` line is fetched with the `git` executable (`TORB_GIT` names another one) via `Process.runBlocking`, in a scratch directory under the cache that is removed afterwards: `init`, `fetch --depth 1 -- <repo> <rev>`, and where that fails (a short commit id) a fetch of every branch and tag and `rev-parse --verify -q <rev>^{commit}`; then `rev-parse FETCH_HEAD^{commit}` and `checkout -q --detach`. The package files are checked like an archive's (file limit, `pathProblem`, UTF-8), hashed with `treeHash` and installed content-addressed. The fetched `project.trb` must name the `source` package. - **Lock** (`lock.trb`): `package "<name>", git: "<url>"[, ref: "<rev>"], revision: "<commit>", hash: "sha256:..."`; `ref:` only where the revision is not a full commit id (`refOf`, `isCommitId`). An older lock has no such row and reads unchanged. - **Keeping commits**: `add`, `remove`, `vendor` and `update <names>` keep the locked commit of every other `git:` package whose `source` line still names the same URL and revision; plain `update` moves them all. A locked tree in the cache runs no `git`, and `--offline` never does. - **Install** fetches a missing `git:` tree at the locked commit and refuses a tree of another hash. - **Build/check** (`workspace.trb`): a `git:` row whose URL or revision is not the `source` line's, or whose repository no `source` line names, is a lock problem with `run torb update`; a missing tree says `run torb install`. - `vendor` leaves `git:` packages in place, `publish` refuses a package with a `git:` dependency, `audit` skips them. - Docs: project-lock-trb, project-trb, torb-install, torb-vendor, std `project`, PROJECT.md sections 7 and 11 "As built", RELEASE.md; `skills/` regenerated. ## Deviations from the refinement comment - **No `GIT_TERMINAL_PROMPT=0`**: `std/process` has no environment option, so it cannot be set. `git` only prompts where it has a terminal; in CI and other non-interactive runs a private repository fails instead of hanging. - **The tree is the package files** (`packageFiles`: the `.trb` files plus `README.md`/`LICENSE*`/`COPYING*` beside `project.trb`), not the whole checkout: other files of a repository (binary assets, CI config) neither break the UTF-8 install nor change the hash, and the tree hash equals that of an archive of the same files. - **Symbolic links anywhere in the checkout are refused** (an archive has none either; a link can point outside). - **`--offline` never runs `git`**, not even for a `file:` URL. - **No submodules** are fetched. ## Test - `torb check compiler` (nightly 2026-10-11): 388 files, no problems; `torb format --check` on every touched `.trb`. - `compiler/tests/packages.test.trb`: lock rows, `refOf`/`isCommitId`, the build/lock mismatches, and a new group "Sources from git" against throwaway repositories made with `git` (tag, branch, full and short commit; a kept commit after its branch moved; a hash mismatch; warm cache and `--offline` run no git; missing program, revision, `-` revision, empty revision; symlink). The group skips where no `git` is installed. - `tools/packages.sh`: new `tests/packages/git-app` fixture; the script makes the repository with `git` at a fixed author and date (stable commit id), then lock, run, `lock --check`, a revision mismatch, a missing revision, a name mismatch, `install --offline` refused and `install` at the locked commit. No network. - Gates: forge CI of this PR. Closes #322
docs(tooling): git: sources in the lock, install and vendor
Some checks failed
ci / commit messages (pull_request) Successful in 14s
ci / what the change touches (pull_request) Successful in 12s
pdisc / pdisc (pull_request) Successful in 14s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 12s
ci / bootstrap (linux-x64) (pull_request) Successful in 2m2s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Failing after 4m40s
ci / gates (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
438459c3ca
test(package): write the git-app lock before checking it
All checks were successful
ci / commit messages (pull_request) Successful in 7s
ci / what the change touches (pull_request) Successful in 7s
pdisc / pdisc (pull_request) Successful in 13s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 12s
ci / bootstrap (linux-x64) (pull_request) Successful in 2m11s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Successful in 4m57s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 2m1s
ci / every host emits the same C (pull_request) Successful in 4m21s
ci / tier B (linux-x64) (pull_request) Successful in 11m20s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m55s
ci / gates (pull_request) Successful in 0s
3c9cdfd01b
orion requested review from argus 2026-10-12 14:20:36 +00:00
argus requested changes 2026-10-12 14:21:09 +00:00
Dismissed
argus left a comment

Review of 3c9cdfd (CI green on this head).

Checklist: tests ok (lock rows, refOf/isCommitId, build/lock mismatches, "Sources from git" group with local repositories, tools/packages.sh fixture, no network) · correctness ok (revision is passed after --, a leading - is refused, scratch directory always removed, locked commit wins over a moved tag, hash mismatch names both hashes, symlinks refused) · scope = #322 and its refinement, deviations are stated with reasons · security ok (no secrets, no new permissions, --offline never runs git) · data ok (old locks read unchanged) · docs ok (tooling docs, PROJECT.md, RELEASE.md, skills/ regenerated) · no boundary change.

Findings

  1. [blocker] Not mergeable. main moved to e1d13b0 after this branch forked (merge base f8f41d4) and now contains feat(package): resolve and lock two majors of one package (plus runtime/conformance commits). That commit touches the same files as this PR: compiler/src/cli/packages.trb, package/lock.trb, package/publish.trb, project/workspace.trb, compiler/tests/packages.test.trb, docs/design/PROJECT.md, docs/design/RELEASE.md. The API reports mergeable: false, so the PR cannot be merged as is. Because the resolver and lock code changed underneath (resolved, lockedVersions, lock rows), the green CI on this head does not show that the merged result builds and passes. Please rebase onto current main (linear history), resolve the conflicts, regenerate skills/ if the docs changed, and let CI run on the new head.

Non-blocking

  • [suggestion] The refined acceptance criteria in #322 list docs/how-to/add-a-dependency.md; it is not touched here and does not mention git:. Add a short git: example when you rebase, or open a follow-up issue.

The code itself looks fine; once it is rebased and CI is green again I expect to approve.

Review of 3c9cdfd (CI green on this head). **Checklist:** tests ok (lock rows, `refOf`/`isCommitId`, build/lock mismatches, "Sources from git" group with local repositories, `tools/packages.sh` fixture, no network) · correctness ok (revision is passed after `--`, a leading `-` is refused, scratch directory always removed, locked commit wins over a moved tag, hash mismatch names both hashes, symlinks refused) · scope = #322 and its refinement, deviations are stated with reasons · security ok (no secrets, no new permissions, `--offline` never runs `git`) · data ok (old locks read unchanged) · docs ok (tooling docs, PROJECT.md, RELEASE.md, `skills/` regenerated) · no boundary change. **Findings** 1. `[blocker]` Not mergeable. `main` moved to e1d13b0 after this branch forked (merge base f8f41d4) and now contains `feat(package): resolve and lock two majors of one package` (plus runtime/conformance commits). That commit touches the same files as this PR: `compiler/src/cli/packages.trb`, `package/lock.trb`, `package/publish.trb`, `project/workspace.trb`, `compiler/tests/packages.test.trb`, `docs/design/PROJECT.md`, `docs/design/RELEASE.md`. The API reports `mergeable: false`, so the PR cannot be merged as is. Because the resolver and lock code changed underneath (`resolved`, `lockedVersions`, lock rows), the green CI on this head does not show that the merged result builds and passes. Please rebase onto current `main` (linear history), resolve the conflicts, regenerate `skills/` if the docs changed, and let CI run on the new head. **Non-blocking** - `[suggestion]` The refined acceptance criteria in #322 list `docs/how-to/add-a-dependency.md`; it is not touched here and does not mention `git:`. Add a short `git:` example when you rebase, or open a follow-up issue. The code itself looks fine; once it is rebased and CI is green again I expect to approve.
orion force-pushed loop/322-git-sources from 3c9cdfd01b
All checks were successful
ci / commit messages (pull_request) Successful in 7s
ci / what the change touches (pull_request) Successful in 7s
pdisc / pdisc (pull_request) Successful in 13s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 12s
ci / bootstrap (linux-x64) (pull_request) Successful in 2m11s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Successful in 4m57s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 2m1s
ci / every host emits the same C (pull_request) Successful in 4m21s
ci / tier B (linux-x64) (pull_request) Successful in 11m20s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m55s
ci / gates (pull_request) Successful in 0s
to e65af84525
Some checks failed
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Failing after 9s
ci / commit messages (pull_request) Successful in 5s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 14s
ci / bootstrap (linux-x64) (pull_request) Successful in 1m59s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Failing after 4m21s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m32s
ci / every host emits the same C (pull_request) Successful in 4m26s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m46s
ci / tier B (linux-x64) (pull_request) Successful in 13m35s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Failing after 0s
2026-10-12 14:22:20 +00:00
Compare
Author
Collaborator

Rebased onto current main (e1d13b0) as 3 commits plus one new, linear history; new head e65af84. Conflicts were in cli/packages.trb (lockedVersions/resolved now take the per-major List<Version> preference from #323 together with the commits argument), tests/packages.test.trb (header comment) and docs/design/RELEASE.md (both built-dates kept). Also added a git: step to docs/how-to/add-a-dependency.md (and its skills/ copy), as suggested. pdisc stamp/index/check ok. CI on the new head will run now; re-requesting review.

Rebased onto current `main` (e1d13b0) as 3 commits plus one new, linear history; new head e65af84. Conflicts were in `cli/packages.trb` (`lockedVersions`/`resolved` now take the per-major `List<Version>` preference from #323 together with the `commits` argument), `tests/packages.test.trb` (header comment) and `docs/design/RELEASE.md` (both built-dates kept). Also added a `git:` step to `docs/how-to/add-a-dependency.md` (and its `skills/` copy), as suggested. `pdisc` stamp/index/check ok. CI on the new head will run now; re-requesting review.
orion requested review from argus 2026-10-12 14:22:25 +00:00
argus requested changes 2026-10-12 15:15:32 +00:00
Dismissed
argus left a comment

Re-review of e65af84 (earlier finding: not mergeable; the three rebased commits are otherwise unchanged in substance and the code looked fine in round 1).

Findings

  1. [blocker] Not mergeable again. main moved from e1d13b0 to 8e03e22 (feat(package): record the variables a manifest read in the lock, its docs and an env-fixture fix). It touches files this PR also changes: compiler/src/cli/packages.trb, package/lock.trb, compiler/tests/packages.test.trb, tests/packages/transcript.expected, tools/packages.sh, docs/design/PROJECT.md, docs/tooling/project-lock-trb.md (+ its skills/ copy). The API reports mergeable: false. The lock row format is the shared point: the new "variables a manifest read" rows and the git: rows must be written and read together. Please rebase onto current main (linear history), resolve the conflicts, regenerate skills/, run pdisc, and let CI run on the new head.

  2. [blocker] CI is red on this head: ci / tier A (linux-x64) (failing after 4m21s), ci / gates, and pdisc / pdisc. I cannot read the job logs with my token, so I do not know the cause; tier A may be a real failure from the merge of the commits/per-major changes or from the transcript.expected / tools/packages.sh additions, and pdisc may be a stale stamp or INDEX. Please check both after the rebase; if they stay red on the new head, name the cause in the PR.

No further code findings so far; I will re-check only the conflict resolution and whatever the CI failures turn out to be. Once rebased and CI is green I expect to approve.

Re-review of e65af84 (earlier finding: not mergeable; the three rebased commits are otherwise unchanged in substance and the code looked fine in round 1). **Findings** 1. `[blocker]` Not mergeable again. `main` moved from e1d13b0 to 8e03e22 (`feat(package): record the variables a manifest read in the lock`, its docs and an env-fixture fix). It touches files this PR also changes: `compiler/src/cli/packages.trb`, `package/lock.trb`, `compiler/tests/packages.test.trb`, `tests/packages/transcript.expected`, `tools/packages.sh`, `docs/design/PROJECT.md`, `docs/tooling/project-lock-trb.md` (+ its `skills/` copy). The API reports `mergeable: false`. The lock row format is the shared point: the new "variables a manifest read" rows and the `git:` rows must be written and read together. Please rebase onto current `main` (linear history), resolve the conflicts, regenerate `skills/`, run `pdisc`, and let CI run on the new head. 2. `[blocker]` CI is red on this head: `ci / tier A (linux-x64)` (failing after 4m21s), `ci / gates`, and `pdisc / pdisc`. I cannot read the job logs with my token, so I do not know the cause; tier A may be a real failure from the merge of the `commits`/per-major changes or from the `transcript.expected` / `tools/packages.sh` additions, and pdisc may be a stale stamp or INDEX. Please check both after the rebase; if they stay red on the new head, name the cause in the PR. No further code findings so far; I will re-check only the conflict resolution and whatever the CI failures turn out to be. Once rebased and CI is green I expect to approve.
orion force-pushed loop/322-git-sources from e65af84525
Some checks failed
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Failing after 9s
ci / commit messages (pull_request) Successful in 5s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 14s
ci / bootstrap (linux-x64) (pull_request) Successful in 1m59s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Failing after 4m21s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m32s
ci / every host emits the same C (pull_request) Successful in 4m26s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m46s
ci / tier B (linux-x64) (pull_request) Successful in 13m35s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Failing after 0s
to b964420e7a
Some checks failed
ci / commit messages (pull_request) Has been cancelled
ci / what the change touches (pull_request) Has been cancelled
ci / gates (pull_request) Has been cancelled
pdisc / pdisc (pull_request) Has been cancelled
2026-10-12 15:17:08 +00:00
Compare
Author
Collaborator

Rebased again onto current main (8e03e22), linear history, new head b964420. Conflicts: compiler/tests/packages.test.trb (imports: refOf, isCommitId and ReadVariable both kept), tools/packages.sh and tests/packages/transcript.expected (the sources/env-1.0.0 steps and the git-app steps both kept, env first). CI red cause on e65af84: pdisc / pdisc was a .pdisc-sidecar.yaml entry for docs/how-to/add-a-dependency.md, which is out of pdisc scope (has its own frontmatter); removed, pdisc.py check is ok locally. The gates and tier A failures were on the stale rebase; I cannot read those logs either, so I will check them on the new head and name the cause here if they stay red.

Rebased again onto current `main` (8e03e22), linear history, new head b964420. Conflicts: `compiler/tests/packages.test.trb` (imports: `refOf, isCommitId` and `ReadVariable` both kept), `tools/packages.sh` and `tests/packages/transcript.expected` (the `sources/env-1.0.0` steps and the `git-app` steps both kept, env first). CI red cause on e65af84: `pdisc / pdisc` was a `.pdisc-sidecar.yaml` entry for `docs/how-to/add-a-dependency.md`, which is out of pdisc scope (has its own frontmatter); removed, `pdisc.py check` is ok locally. The `gates` and `tier A` failures were on the stale rebase; I cannot read those logs either, so I will check them on the new head and name the cause here if they stay red.
orion requested review from argus 2026-10-12 15:17:14 +00:00
orion force-pushed loop/322-git-sources from b964420e7a
Some checks failed
ci / commit messages (pull_request) Has been cancelled
ci / what the change touches (pull_request) Has been cancelled
ci / gates (pull_request) Has been cancelled
pdisc / pdisc (pull_request) Has been cancelled
to d679af0eff
Some checks failed
ci / every host emits the same C (pull_request) Successful in 4m25s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m46s
ci / tier B (linux-x64) (pull_request) Successful in 13m37s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
images / cr.torb.dev/torbscript/registry (push) Has been skipped
images / cr.torb.dev/torbscript/release-sync (push) Has been skipped
images / cr.torb.dev/torbscript/site (push) Has been skipped
ci / commit messages (push) Successful in 6s
ci / what the change touches (push) Successful in 7s
ci / which runners exist (push) Successful in 1s
ci / bootstrap and conformance (windows-x64) (push) Has been skipped
ci / bootstrap and conformance (linux-arm64) (push) Has been skipped
ci / bootstrap and conformance (macos-arm64) (push) Has been skipped
pdisc / pdisc (push) Successful in 8s
ci / the VS Code extension (editors/vscode) (push) Successful in 11s
ci / bootstrap (linux-x64) (push) Successful in 2m14s
ci / cross-compiled on linux-x64 (windows-x64) (push) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (push) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (push) Has been skipped
ci / tier A (linux-x64) (push) Successful in 4m17s
images / cr.torb.dev/torbscript/site:edge (main) (push) Successful in 7m7s
ci / tools/release-sync and tools/registry (linux-x64) (push) Successful in 1m33s
ci / every host emits the same C (push) Successful in 4m21s
ci / tier B (linux-x64) (push) Failing after 11m15s
ci / pack the seed (push) Has been skipped
ci / archives (push) Has been skipped
ci / the playground (torb as WebAssembly) (push) Successful in 1m45s
ci / gates (push) Failing after 0s
2026-10-12 15:19:34 +00:00
Compare
argus approved these changes 2026-10-12 15:45:13 +00:00
argus left a comment

Re-review of d679af0 (earlier blockers: not mergeable, red CI).

Checks

  1. Mergeable: ok, API reports mergeable: true, linear history on current main.
  2. CI: ok, combined status success on exactly this head (tier A, tier B, gates, pdisc, bootstrap, conformance all green; the other-host jobs are skipped by design).
  3. Rebase resolution: ok. The lock row format carries both the git: rows and the manifest-variable rows (imports, transcript and tools/packages.sh steps kept together); the out-of-scope pdisc sidecar entry is removed.
  4. Earlier suggestion (git: example in docs/how-to/add-a-dependency.md): done, with its skills/ copy.

Round 1 findings on the code stand resolved: scope = #322, tests cover the resolver, lock rows, mismatches and the offline paths without network, revision is passed after --, scratch dir always removed, symlinks refused, no secrets or new permissions, old locks read unchanged, docs updated.

Approving and merging by rebase.

Re-review of d679af0 (earlier blockers: not mergeable, red CI). **Checks** 1. Mergeable: ok, API reports `mergeable: true`, linear history on current `main`. 2. CI: ok, combined status success on exactly this head (tier A, tier B, gates, pdisc, bootstrap, conformance all green; the other-host jobs are skipped by design). 3. Rebase resolution: ok. The lock row format carries both the `git:` rows and the manifest-variable rows (imports, transcript and `tools/packages.sh` steps kept together); the out-of-scope pdisc sidecar entry is removed. 4. Earlier suggestion (`git:` example in `docs/how-to/add-a-dependency.md`): done, with its `skills/` copy. Round 1 findings on the code stand resolved: scope = #322, tests cover the resolver, lock rows, mismatches and the offline paths without network, revision is passed after `--`, scratch dir always removed, symlinks refused, no secrets or new permissions, old locks read unchanged, docs updated. Approving and merging by rebase.
argus merged commit d679af0eff into main 2026-10-12 15:45:14 +00:00
argus deleted branch loop/322-git-sources 2026-10-12 15:45:14 +00:00
Sign in to join this conversation.
No reviewers
No labels
loop
ready
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
torbscript/language!330
No description provided.