Skip to content

Run the release demos in CI from one shared list - #224

Merged
jbwinters merged 2 commits into
mainfrom
task/279-release-ci-b
Nov 9, 2026
Merged

jbwinters merged 2 commits into
mainfrom
task/279-release-ci-b

Conversation

@jbwinters

Copy link
Copy Markdown
Collaborator

Release process, second part: run the release demos in CI, and tighten tag reuse of release evidence.

Demos in CI:

  • New scripts/release/run-demos.sh holds the one list of the 15 demos Release Evidence reproduces. --list prints them; with no argument it runs each from the repository root on the checkout's build (JACQUARD unset, the repo prelude, stdin closed), reports every failure, and exits 1 if any failed. It writes no temporary files.
  • scripts/release/reproduce-0.3.sh captures the demos from that list, with the same transcript names and commands as before; the list is read on fd 3 so a demo reading stdin cannot consume it.
  • The CI Development gate runs scripts/release/run-demos.sh after the full test suite (about 90 s locally), so a broken demo fails its pull request instead of the multi-hour release run.

Release Evidence:

  • A prior pass is looked up only on a jacquard-core-* tag push (github.event_name == 'push'), never on a manual dispatch from a tag, whose ref input may name other code.
  • scripts/release/find-prior-evidence.sh no longer expands run ids as file name patterns (set -f); test/cli/release-evidence-reuse.t also refuses 40-character commit and base names that are not lowercase hex.
  • The concurrency comment and docs/ci-cd.md now say a cancelled stale release head can still be tagged; its tag then reproduces in full unless another successful release push run of the same commit left a marker.

Docs: docs/ci-cd.md (gate command list), AGENTS.md and README.md gate summaries, 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; run-demos.sh exit 0; the reuse cram passes.

The demos Release Evidence reproduces now come from
scripts/release/run-demos.sh, which the CI development gate also runs, so
a broken demo fails its pull request instead of the multi-hour release run.
Release Evidence looks for a prior pass only on a tag push, never on a
dispatch from a tag. The reuse finder no longer expands run ids as file name
patterns, its cram covers 40-character non-hex names, and the docs say a
cancelled stale release head can still be tagged and then reproduces in
full.
Review follow-ups: run-demos.sh feeds its list through a here-document, as
the temporary storage policy requires; the stale release head wording names
the one case where its tag can still reuse a pass.
@jbwinters
jbwinters enabled auto-merge (squash) November 9, 2026 05:09
@jbwinters
jbwinters merged commit 331e036 into main Nov 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant