Canonical CI: grouped-tests.yml + root test/test_groups.toml#150
Merged
ChrisRackauckas merged 3 commits intoJun 10, 2026
Conversation
Convert the root Tests.yml test job to the canonical thin caller that uses SciML/.github grouped-tests.yml@v1, with the matrix declared once in test/test_groups.toml. - Tests.yml becomes a thin caller (on:/concurrency: preserved verbatim). - test/test_groups.toml: Core on [lts, 1, pre] across the prior 3-OS matrix (ubuntu/macos/windows); QA on [lts, 1]. - Aqua moved out of the inline main testset into a GROUP=="QA" group with an isolated test/qa/Project.toml (Aqua + Test + HighDimPDE via [sources]) and test/qa/qa.jl. runtests.jl dispatches on GROUP: QA activates the isolated env and develops/instantiates the package; all other groups run the functional suite. - Drop Aqua from the root [extras]/[compat]/[targets] now that it lives in the isolated QA env. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grouped test/runtests.jl uses `using Pkg` (for the QA group's Pkg.activate), but Pkg was not a declared test dependency. The Core group runs with project='.', so it died with: ArgumentError: Package Pkg not found in current path Declare Pkg in the root test environment so the Core job loads it. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tion The QA group failed on two issues, both now resolved without silencing: - Aqua.test_deps_compat flagged that the `Pkg` test dependency (added to [extras]/[targets] for the grouped-tests Core group) had no [compat] entry. Add `Pkg = "1.10"` to [compat] to declare it. This is a real fix for the finding, not a suppression. - The QA driver called the bare diagnostic `Aqua.find_persistent_tasks_deps`, which is not a test assertion (its return value was discarded) and which re-precompiles the entire SciMLSensitivity/CUDA/Enzyme dependency tree once per dependency in isolated subprocesses; under that load it intermittently errored and aborted the whole Aqua testset before any real check ran. Replace it with the canonical `Aqua.test_persistent_tasks(HighDimPDE)` assertion, which actually tests for persistent tasks and passes (verified locally: 1 pass, 45.5s). Full QA group now passes locally: 11/11, 0 failed/errored/broken. 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.
What
Converts the root
Tests.ymltest job to the canonical thin caller that usesSciML/.github/.github/workflows/grouped-tests.yml@v1, with the test matrix declared once intest/test_groups.toml.Changes
Tests.ymlis now a thin caller (jobs.tests->grouped-tests.yml@v1,secrets: inherit). Theon:triggers andconcurrency:block are preserved verbatim. Nowith:overrides needed: the prior workflow used the reusabletests.yml@v1defaults for depwarn (yes), check-bounds (yes), and coverage (true/src,ext).test/test_groups.toml(new, repo root):[Core]on["lts", "1", "pre"]across the prior 3-OS matrix["ubuntu-latest", "macos-latest", "windows-latest"].[QA]on["lts", "1"](ubuntu-latest).test/qa.jlincluded byruntests.jl). It is now isolated in aGROUP=="QA"group:test/qa/Project.toml— isolated env withAqua+Test+HighDimPDEvia[sources] path = "../..",[compat] julia = "1.10".test/qa/qa.jl— the moved Aqua calls (unchanged; no checks skipped/excluded).runtests.jldispatches onGROUP: whenQA, activatetest/qa,Pkg.developthe package, instantiate, then includeqa/qa.jl; otherwise run the functional suite.Aquafrom the root[extras]/[compat]/[targets]now that it lives in the isolated QA env.Matrix match
compute_affected_sublibraries.jl --root-matrixemits, forCore, exactly the prior 9(version, os)cells —{lts, 1, pre} x {ubuntu-latest, macos-latest, windows-latest}— a 1:1 reproduction of the oldTests.ymlmatrix.QAadds 2 newly-wired cells ({lts, 1}on ubuntu-latest). The TOML and the thin-caller YAML were statically parse-verified.Notes
Ignore until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code