Canonical CI: grouped-tests.yml + root test/test_groups.toml#99
Merged
ChrisRackauckas merged 3 commits intoJun 10, 2026
Merged
Conversation
Convert the root test workflow (CI.yml) to the canonical thin caller that dispatches to SciML/.github grouped-tests.yml@v1, with the version x group matrix declared once in test/test_groups.toml. Category B refactor (Aqua/JET ran inline): JET static analysis is moved out of the always-on functional suite into a dedicated QA group, isolated in test/qa/Project.toml (JET + StaticArrays + Test + the package via [sources] path) with a test/qa/qa.jl. runtests.jl activates that env, develops the package, instantiates, and includes qa.jl when the group is QA; otherwise it runs the functional tests (regression, reinit, CPU optimizer/constraints/lbfgs) as before. The test-group dispatch uses a dedicated env var PPS_TEST_GROUP (group-env-name input) so it does not collide with the existing GROUP env var that GPU.yml and the buildkite pipeline already use for backend selection (CUDA/AMDGPU); runtests.jl still reads GROUP for backend selection in the Core group. Root Project.toml metadata fixes: add missing [compat] entries for the test-only stdlibs LinearAlgebra and Test (both listed in [extras]); julia compat already at the 1.10 LTS floor. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
test/runtests.jl does `using Pkg` for the QA group's Pkg.activate, but Pkg was not declared in the Core test environment (project='.'), so the Core job died with `ArgumentError: Package Pkg not found in current path`. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Move `using SafeTestsets` and `using Test` out of the in-block else branch to top level so the @safetestset/@testset macros are defined before the if-block (which uses them inline) is macro-expanded as a single unit. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Converts the root test workflow (
CI.yml) to the canonical thin caller that dispatches toSciML/.githubgrouped-tests.yml@v1, with the version × group matrix declared once intest/test_groups.toml.What changed
.github/workflows/CI.yml: the hand-maintained matrix test job is replaced by a thin caller ofgrouped-tests.yml@v1.on:andconcurrency:are preserved verbatim;name: CIkept. Usesgroup-env-name: PPS_TEST_GROUP.test/test_groups.toml(new, root): declares the matrix —[Core]onlts, 1, pre;[QA]onlts, 1. Linux-only (noosaxis).test/qa/Project.toml(JET + StaticArrays + Test + the package via[sources]path../..,julia = "1.10") withtest/qa/qa.jl(verbatim from the oldtest/jet.jl).runtests.jlactivates that env, develops the package, instantiates, and includesqa.jlwhen the group isQA; otherwise it runs the functional tests (regression, reinit, CPU optimizer/constraints/lbfgs) as before.test/jet.jlremoved.PPS_TEST_GROUPrather than the defaultGROUP, becauseGROUPis already consumed byGPU.ymland the buildkite pipeline for backend selection (CUDA/AMDGPU).runtests.jlstill readsGROUPfor backend selection within the Core group, so those workflows are untouched.Project.tomlmetadata fixes: added missing[compat]entries for the test-only stdlibsLinearAlgebraandTest(both listed in[extras]).juliacompat already at the1.10LTS floor — left unchanged.Only
CI.ymlwas modified among workflows;Downgrade.yml,GPU.yml,FormatCheck.yml,SpellCheck.yml,TagBot.yml, etc. are untouched.Matrix match
The emitted
(group, version, runner)set fromcompute_affected_sublibraries.jl --root-matrix:The previous
CI.ymlran a single cell (version: "1", whole suite incl. JET). That cell is preserved (Core1+ QA1); the canonical conversion additionally addslts+preto the functional group andltsto QA. All Linux, matching the Linux-only previous setup.Verification (static only)
compute_affected_sublibraries.jl . --root-matrix(Julia 1.11) — reproduces the matrix above.test/test_groups.toml,test/qa/Project.toml, rootProject.toml— all OK; all[extras]deps now have[compat]entries.CI.yml— OK.QA group is newly wired; Aqua/JET run in CI — any failures will be triaged in a follow-up.
Ignore until reviewed by @ChrisRackauckas.