Repository navigation
build(fbench): compile the registry arm against the lock's API, and read that arm in CI (#59) - #60
Conversation
…ead that arm in CI (#59) The committed lock resolves t4a-faer 0.33, where `Par` is the team handle and workspace queries take `ParShape`; the harness's adapter already knew both generations but only through features that `scripts/build_for_faer_rev.sh` turned on. So `cargo test -p fbench --bins` failed with 21 errors and nothing read it: the CI job only runs the Python checks. - `fbench`'s default features are now the generation the lock names (`fork-par-shape`, `fork-team`), so the registry arm compiles and its tests run. - `build_for_faer_rev.sh` passes `--no-default-features` when its own detection finds an older generation, so a 0.24-style checkout keeps working. - A `harness` CI job runs `cargo check -p fbench --locked` and `cargo test -p fbench --bins --locked`. It is a lock/manifest consistency check, not a smoke build of a measured revision (see the workflow comment).
`ubuntu-slim` has no cargo (exit 127 in 8 s); the index job's runner choice does not apply here.
GPT-6.1-sol adversarial reviewCRITICAL: none Critical (must not merge)none Needs changes
Unverified claims
Checked and fineRead CI runs Reviewed head: |
… arm is stable The committed `Cargo.lock` carried `t4a-faer 0.28.0` with no `source` line: it was written from a campaign build whose patch pointed at a checkout, so it was never a registry lock. Any plain `cargo` command therefore re-resolved `>=0.24,<1.0` to the newest release (0.33.0) and rewrote the file; against 0.33 the harness's `Par::rayon`/`parmod::shape` sites failed with 21 errors, and the failure was invisible because no lane read the lock. `cargo update -p t4a-faer --precise 0.28.0` records the pin's version as a registry entry, so `--locked` works and the campaign's path patch still matches the version the pin names. The harness defaults (`fork-par-shape`, `fork-team`) are the 0.28 API generation, so the same defaults compile here and against a newer checkout.
GPT-6.1-sol adversarial reviewCRITICAL: none Critical (must not merge)none Needs changes
Unverified claims
Checked and fine
Reviewed head: |
GPT-6.1-sol adversarial reviewCRITICAL: none Critical (must not merge)none Needs changesnone Unverified claims
Checked and fine
Reviewed head: |
|
Campaign-path check requested by the review, run on this Mac without a vendor build (preflight only): Result: the preflight passes (no identity error). The same command on head One thing the preflight does: |
Closes #59.
The committed
Cargo.lockcarriedt4a-faer 0.28.0with nosourceline: it was writtenfrom a campaign build whose patch pointed at a checkout, so it was never a registry lock. Any
plain
cargocommand re-resolved>=0.24,<1.0to the newest release (0.33.0) and rewrote thefile. Against 0.33 the harness adapter failed with 21 errors (
Par::rayon,E0308at everyparmod::shape(par)), because its two API generations were only reachable through features thatscripts/build_for_faer_rev.shturns on from the checkout it is given. No lane read the lock, sonothing noticed.
What changed
cargo update -p t4a-faer --precise 0.28.0records
pins/t4a-faer.rev's version (325e482,t4a-faer0.28.0) with itssource, so--lockedis meaningful and the campaign's path patch still matches the version the pin names.default = ["fork-par-shape", "fork-team"](0.25's
ParShapeworkspace queries, 0.26's team-only parallelism).build_for_faer_rev.shpasses
--no-default-featureswhen its own detection (the checkout declarespub enum ParShape/with_team) finds an older generation, so a 0.24-style checkout gets no defaults; that path needs more than the flag (it also lacksfaer_fork/threadteam) and is tracked in fbench: the older-generation build path (pre-ParShape / pre-team fork) is not buildable #61. The fallback itself is untested end to end.harnessCI job runscargo check -p fbench --lockedandcargo test -p fbench --bins --locked. It is a lock/manifest consistency check -- no vendor, no measured revision -- which isthe distinction the workflow comment makes for not having a smoke job.
ubuntu-slimhas nocargo, so it runs on
ubuntu-latest.Verification
cargo check -p fbench --lockedat this head: compiles (16.29 s on this Mac, cold-ish).cargo test -p fbench --bins --locked: 6 passed, 0 failed (49.70 s).bash -n scripts/build_for_faer_rev.sh: clean.--no-default-featuresforolder generations; the patch/preflight path is untouched, and the lock now names the pin's
version, which is the identity the preflight compares.