Repository navigation
Run the release evidence stages in parallel - #225
Merged
Merged
Conversation
Release Evidence now settles the candidate once, runs the reproduction as four parallel stage jobs (core, GM.12B, native clang, native gcc) on exactly that commit, and keeps the required check as a final job that passes only when a prior pass is reused or every stage passed. reproduce-0.3.sh takes JACQUARD_RELEASE_STAGES; unset, it runs everything as before. No evidence step is added or removed.
Review follow-ups: the required job runs with always(), so a cancelled run fails it instead of leaving it skipped, which would satisfy a required check. The contributing guide and release checklist now describe one artifact per stage.
jbwinters
enabled auto-merge (squash)
November 9, 2026 06:16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release process, third part: run the release evidence stages in parallel.
Release Evidence ran
scripts/release/reproduce-0.3.shas one serial job of about 3.5 hours. It now has three jobs:Identify candidateresolves the commit to reproduce (for a manual dispatch, the dispatched ref) and the candidate base once, and on ajacquard-core-*tag push alone looks for a reusable earlier pass. It is the only job withactions: read.Evidence stagejobs (core,gm12b,native-clang,native-gcc) run in parallel, each checking out exactly the identified commit and asserting it. They are skipped when a prior pass is reused. Each uploadsjacquard-release-0.3-evidence-<run>-<stage>.Reproduce 0.3 evidencejob passes only when a prior pass is reused or every stage passed, and only after a full pass uploads therelease-evidence-pass-<commit>-<base>marker a later tag push reuses. It runs withalways(), so in a cancelled run it fails instead of being skipped (a skipped job would satisfy a required check).reproduce-0.3.shtakesJACQUARD_RELEASE_STAGES(all, the default, or one stage). Every stage first checks the clean checkout, the manifests and historical publications, and builds. A dry run with each capture stubbed showsallruns the same 43 captures in the same order as before, and the four stages together cover every one of them; no evidence step is added or removed. Measured from the last serial run, the longest stage (GM.12B) takes about 90 minutes; stages time out at 300.Docs:
docs/ci-cd.md(Release Evidence),AGENTS.md,README.md,CONTRIBUTING.md, and the 0.3 slice log. Inventory unchanged: 1246 tests, 85 cram files, 57 doctest examples.Verification: full local gate (temporary storage policy, build,
dune runtest, formatting) exit 0 on this tree; the workflow parses. The workflow itself cannot run locally.