You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bundle, one area: the sibling-checkout arrangement's operational edges (all interim until component-test publishes to registries).
"At or past the pin" is unenforced in either direction. Nothing local compares the sibling's HEAD to .component-test-rev (the pin's only consumers are the five CI clone steps); _ct-tools keys bin/ reuse on the sibling's HEAD, whatever it is. Newer-than-pin: local green does not imply CI green (path deps leave no Cargo.lock trace unless the dep graph changes). Older-than-pin: loud but cryptic (e.g. a pre---suite-artifact ct-runner rejects the flag run-composed passes) with no message naming the pin. The pin moved four times on its first day — the coupling is hot and the latitude will be exercised. Fix shape: a drift check in _ct-tools (warn on mismatch, name the rev and the remedy).
Cold-bootstrap margin vs the timeout/cache-save interaction. A timeout kill skips cache-save, so an undersized budget never converges (bacdf58's own analysis). Current numbers: 30-minute job timeout, measured full-cold 16m31s, pin-bump cold-ish 11m51s — ~13min margin, eroding with corpus growth. Secondary: the rust-cache restore is conditioned on the artifact-cache hit, so an artifact hit + tools-cache eviction rebuilds the wasmtime-embedding runner with no registry cache (slow-only). Worth a margin note and periodic re-measurement.
artifact_sha256 churn in lock diffs. Upstream ruled artifact hashes are provenance, not identity (component-test#44): lock --check ignores them, but lock-update still rewrites the field with a machine-dependent value (rustc embeds absolute paths; the SDK is an out-of-workspace path dep), so every lock regeneration on any machine carries a meaningless hash-line diff — diluting "the diff is the review surface". Options: stop committing the field, normalize it, or teach lock-update to preserve the committed value when the inventory is unchanged.
PR #320 resolves item 1 structurally: component-test is now a git dependency pinned by rev in [workspace.dependencies] (tools cargo-installed from the same pin, rev read from Cargo.lock), so the "at or past the pin" latitude no longer exists — local builds use exactly the pin or an explicit [patch]. Items 2 (cold-bootstrap margin) and 3 (lock artifact_sha256 churn) remain.
Correction to the note above: #320 was a duplicate of the maintainer's earlier #319 and is closed — #319 is the PR that resolves item 1 structurally (same mechanism: git dependency pinned in [workspace.dependencies], tools cargo-installed at the Cargo.lock rev). Items 2 and 3 remain.
Re-verified against main post-#319: item 1's sibling-checkout premise is gone — component-test is a git dependency pinned in Cargo.toml/Cargo.lock, _ct-tools installs at exactly the locked rev, and the recipe now cross-checks the npm pin (jco/package-lock.json) against the cargo pin, failing on skew. That covers the drift class item 1 described, in the new arrangement's terms.
Items 2 (cold-bootstrap margin vs the timeout/cache-save interaction) and 3 (artifact_sha256 churn in lock diffs — visible again in #324/#325's near-identical lockfiles differing only in the hash line) remain open. Item 3's cleanest fix is upstream (teach lock-update to preserve the committed hash when the inventory is unchanged, or stop emitting the field); repo-side normalization would re-implement lockfile parsing in a justfile.
Fresh evidence pass: item 2's margin-note half is effectively done — ci.yml:54-58 documents the ~20-minute cold bootstrap against the 30-minute budget and the timeout/cache-save trap — leaving periodic re-measurement (the job has since absorbed the deltic legs, so the margin is worth a re-read). Item 3 reconfirmed live: #353's lock regeneration (229dae5) churned artifact_sha256 again. The clean fix remains upstream in component-test's lock-update.
Item 2 (cold-bootstrap margin / timeout-kills-cache-save): the margin note exists (ci.yml documents the ~20-minute cold bootstrap against the 30-minute budget), and the convergence trap itself is now structurally defused by ci: save the conformance artifacts cache before post-job cleanup #370: the conformance-artifacts save is an explicit if: always() step, so a timed-out or failing run still pays its build forward. "Periodic re-measurement" has no completion state; CI wall time: remaining levers after the cache-save fix and the suites fan-out #372 is the living CI wall-time tracker and its next measurement pass covers this.
Activity
lann commentedon Aug 5, 2026
PR #320 resolves item 1 structurally: component-test is now a git dependency pinned by rev in
[workspace.dependencies](tools cargo-installed from the same pin, rev read from Cargo.lock), so the "at or past the pin" latitude no longer exists — local builds use exactly the pin or an explicit[patch]. Items 2 (cold-bootstrap margin) and 3 (lockartifact_sha256churn) remain.lann commentedon Aug 5, 2026
Correction to the note above: #320 was a duplicate of the maintainer's earlier #319 and is closed — #319 is the PR that resolves item 1 structurally (same mechanism: git dependency pinned in
[workspace.dependencies], tools cargo-installed at the Cargo.lock rev). Items 2 and 3 remain.Replace the component-test sibling checkout with a rev-pinned git dep…
lann commentedon Aug 5, 2026
Re-verified against main post-#319: item 1's sibling-checkout premise is gone — component-test is a git dependency pinned in Cargo.toml/Cargo.lock, _ct-tools installs at exactly the locked rev, and the recipe now cross-checks the npm pin (jco/package-lock.json) against the cargo pin, failing on skew. That covers the drift class item 1 described, in the new arrangement's terms.
Items 2 (cold-bootstrap margin vs the timeout/cache-save interaction) and 3 (artifact_sha256 churn in lock diffs — visible again in #324/#325's near-identical lockfiles differing only in the hash line) remain open. Item 3's cleanest fix is upstream (teach lock-update to preserve the committed hash when the inventory is unchanged, or stop emitting the field); repo-side normalization would re-implement lockfile parsing in a justfile.
lann commentedon Aug 11, 2026
Fresh evidence pass: item 2's margin-note half is effectively done — ci.yml:54-58 documents the ~20-minute cold bootstrap against the 30-minute budget and the timeout/cache-save trap — leaving periodic re-measurement (the job has since absorbed the deltic legs, so the margin is worth a re-read). Item 3 reconfirmed live: #353's lock regeneration (229dae5) churned artifact_sha256 again. The clean fix remains upstream in component-test's lock-update.
lannbot commentedon Aug 12, 2026
Closing: nothing actionable remains in this repository.
_ct-toolsinstalls at exactly the locked rev and cross-checks the npm pin (re-verified in the comments above).if: always()step, so a timed-out or failing run still pays its build forward. "Periodic re-measurement" has no completion state; CI wall time: remaining levers after the cache-save fix and the suites fan-out #372 is the living CI wall-time tracker and its next measurement pass covers this.artifact_sha256churn): the clean fix was always upstream in component-test'slock-update(repo-side normalization was rejected above as re-implementing lockfile parsing in a justfile). Now filed where the fix lives: lock-update rewrites artifact_sha256 with a machine-dependent value even when the inventory is unchanged polymorph-test#94, with the downstream evidence (conformance-ct: leaf-pinned lockfiles; retire the census stopgap; re-ratify S5 #324/Pin every generated leaf in the lockfiles; re-ratify the results-schema tolerance #325, rsa-verify-8192 becomes a gated capability; the odd-modulus feature is falsified #353's 229dae5).