Skip to content

tests.yml: only enforce the pre lane for release candidates#108

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:pre-lane-rc-only
Jul 5, 2026
Merged

tests.yml: only enforce the pre lane for release candidates#108
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:pre-lane-rc-only

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown

What

Makes the centralized tests.yml pre lane pass unless the prerelease is a release candidate.

The pre channel installs the latest Julia prerelease. Early alphas/betas — and the case where pre just resolves to the current stable release (no newer prerelease exists, so pre == 1) — aren't worth blocking CI on. Only a release candidate is close enough to a real release to be worth enforcing.

How

A new prerelease-gate step runs only on the pre lane, after setup-julia. It reads the resolved Julia version:

  • first prerelease identifier starts with rc (e.g. 1.13.0-rc1) → build+test run normally (can fail — real signal),
  • anything else (beta/alpha/DEV, or no prerelease at all) → build+test are skipped and the lane reports success, with a ::notice:: explaining why.

Gated steps: the [sources] develop helper, apt install, julia-buildpkg, the group-env write, and julia-runtest. Every other julia-version is unaffected — the gate step is skipped for them, leaving outputs.run empty, which the != 'false' guard treats as "run".

Validated: RC → run; beta/alpha/stable/DEV → skip; non-pre → run (truth-tabled locally against real VersionNumbers). YAML parses.

Fleet-wide behavior change to the pre lane → a minor bump on release. Draft — ignore until reviewed by @ChrisRackauckas.

The `pre` channel installs the latest Julia prerelease. Early alphas/betas --
and the case where `pre` just resolves to the current stable release (no newer
prerelease exists) -- aren't worth blocking CI on; only a release candidate is
close enough to a release to matter.

Add a `prerelease-gate` step (runs only on the `pre` lane) that reads the
resolved Julia version after setup-julia: if its first prerelease identifier
starts with `rc`, build+test run normally; otherwise they are skipped and the
lane reports success. Gated steps: develop-sources, apt install, buildpkg, the
group-env write, and julia-runtest. Every other julia-version runs unchanged
(the gate step is skipped for them, and `outputs.run` is empty, which the
`!= 'false'` guard treats as "run").

Complements the existing `continue-on-error` on `nightly`: `pre` on an RC still
fails loudly (real signal), but a beta/alpha/stable `pre` no longer produces
noise CI failures.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review July 5, 2026 11:09
@ChrisRackauckas ChrisRackauckas merged commit d4f2e67 into SciML:master Jul 5, 2026
2 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.

2 participants