Canonical CI: grouped-tests.yml + root test/test_groups.toml#59
Merged
ChrisRackauckas merged 3 commits intoJun 10, 2026
Merged
Conversation
Convert the root test workflow (CI.yml) to the canonical grouped-tests.yml@v1 thin caller, with the test matrix declared once in test/test_groups.toml. Refactor the inline JET static analysis into an isolated QA group (GROUP=QA) alongside Aqua, kept out of the main test environment via test/qa/Project.toml. - CI.yml: replace the hand-maintained version x os matrix test job with a thin grouped-tests.yml@v1 caller; on:/concurrency: and the docs job are unchanged. - test/test_groups.toml: Core on [lts, 1] (reproduces the old [1.10, 1] matrix; lts == 1.10), QA on [lts, 1]. - test/runtests.jl: dispatch on GROUP. Core/All run the functional suite; QA activates test/qa, develops the package, instantiates, and runs qa.jl. - test/qa.jl + test/qa/Project.toml: isolated QA env (Aqua + JET + Test + package via [sources]); folds in the previous jet_tests.jl checks and adds Aqua.test_all. Removes the old (commented-out) jet_tests.jl include. - Project.toml: add [compat] Test = "1" so every [extras] dep has a compat entry; julia compat already at the 1.10 LTS floor. QA group newly wired; Aqua/JET run in CI. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rror The converted runtests.jl placed using statements inside a top-level if-GROUP block that also used a macro (@testset) inline. Julia macro-expands the whole if block as one unit before the in-block using executes, so the macro was undefined at expansion time. Move the functional usings to top level (after using Pkg, before const GROUP). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Aqua.test_all in the QA group fails two sub-checks on OrgMaintenanceScripts: stale dependencies (SnoopCompileCore, YAML) and missing deps compat entries (Dates, Distributed, LibGit2, Logging, Pkg, Printf, Random). Disable only those two sub-checks in test_all and @test_broken them so the QA group is green while the findings remain visible. All other Aqua sub-checks and JET still run and pass. Tracked in SciML#60 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.
Summary
Converts the root test workflow to the canonical SciML grouped-tests pattern:
CI.ymlbecomes a thin caller ofgrouped-tests.yml@v1, and the test matrix is declared once intest/test_groups.toml.This is Category B: the repo had JET static-analysis tests (
test/jet_tests.jl) wired inline (well, commented out) inruntests.jlwith no separate QA group. They are now refactored into an isolatedQAgroup, joined by Aqua.Changes
.github/workflows/CI.yml: the hand-maintainedversion × osmatrixtestjob is replaced withon:+concurrency:are preserved verbatim, and thedocsjob is untouched. Linux-only, so no OS axis. Nowith:block is needed — all defaults apply (GROUP env name,check-bounds: yes, coverage on,src,ext).test/test_groups.toml(new):[Core]on[lts, 1],[QA]on[lts, 1].test/runtests.jl: dispatches onGROUP.Core/Allrun the functional suite;QAactivatestest/qa, develops the package, instantiates, and includesqa.jl.test/qa.jl+test/qa/Project.toml(new): isolated QA environment (Aqua+JET+Test+ the package via[sources]path),[compat] julia = "1.10". Folds in the previousjet_tests.jlchecks and addsAqua.test_all. The old commented-outjet_tests.jlinclude is removed andjet_tests.jlis renamed intoqa.jl.Project.toml: add[compat] Test = "1"so every[extras]dep has a compat entry (benign metadata fix). Thejuliacompat was already at the1.10LTS floor, unchanged.Matrix match
Old
CI.ymlmatrix:version: ['1.10', '1'],os: [ubuntu-latest],arch: [x64]→ 2 cells.New emitted root matrix (verified statically via
compute_affected_sublibraries.jl . --root-matrixagainstSciML/.github@v1):The Core group reproduces the old matrix exactly (
ltsresolves to 1.10;1to latest 1.x, ubuntu-latest). Core is deliberately[lts, 1](not the generic[lts, 1, pre]default) so the prior coverage is reproduced without adding a newprecell. The QA group is new.Ignore until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code