Canonical CI: grouped-tests.yml + root test/test_groups.toml#296
Merged
ChrisRackauckas merged 4 commits intoJun 15, 2026
Conversation
Convert the root test workflow (CI.yml) to the canonical thin caller that delegates to SciML/.github grouped-tests.yml@v1, with the group x version matrix declared once in test/test_groups.toml. Category B refactor: Aqua previously ran inline inside the Core group via test/qa.jl. It is now wired as its own QA group, gated on GROUP=="QA" and isolated in test/qa/Project.toml (Aqua + Test + EasyModelAnalysis via a path source). runtests.jl activates that env, develops the package, and instantiates before including qa.jl. Functional tests remain under Core (and All); Datafit is preserved as its own group. Matrix match: the prior Core@1 / Datafit@1 (ubuntu-latest, Linux-only) functional matrix is reproduced exactly; QA@1 is newly wired. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Core test group runs with project='.', and test/runtests.jl does `using Pkg` to activate the QA sub-environment. Pkg was not a declared test dependency in the root test env, so the Core job failed 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>
The root test/test_groups.toml [QA] group ran Aqua/JET on only ["1"]. Normalize to the canonical QA set ["lts", "1"] so static analysis also runs on the LTS Julia. Core/Datafit groups are untouched. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ts conversion) Core stays as the top-level test/*.jl files; the Datafit group moves to test/Datafit/datafit.jl and QA moves to test/qa/qa.jl so the Core glob does not pick them up. runtests.jl becomes `using SciMLTesting; run_tests()` (folder-discovery). SciMLTesting added to test deps and the qa @safetestset sub-env; the old Pkg-based QA activation harness is dropped (SciMLTesting handles activate/develop/instantiate). Datafit runs in the main test env (its deps are already in the test target), so it needs no sub-env Project. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Added the SciMLTesting v1.2 folder-based run_tests harness on top of this grouped-tests conversion; merges as one PR (grouped-tests + SciMLTesting v1.2). |
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 (
.github/workflows/CI.yml) to the canonical thin caller that delegates toSciML/.github/.github/workflows/grouped-tests.yml@v1. The group × version matrix now lives once intest/test_groups.tomlinstead of being hand-maintained in YAML.on:,concurrency:, the filename, andname: CIare preserved verbatim. Nowith:overrides were needed — the package readsGROUP(default), has noext/, and used the v1 defaults forcheck-bounds/coverage. Linux-only, so noosfield. All other workflows are untouched.Category B refactor (inline Aqua → isolated QA group)
Aqua previously ran inline inside the Core group via
test/qa.jl(included wheneverGROUP == "Core"). This PR wires it as its own QA group:test/test_groups.tomldeclares[Core],[Datafit], and[QA].test/qa/Project.tomlisolates the QA env:Aqua+Test+EasyModelAnalysisvia a[sources]path (../..), withjulia = "1.10".test/runtests.jl: whenGROUP == "QA"itPkg.activatestest/qa,Pkg.develops the repo root,Pkg.instantiates, then includesqa.jl. Functional tests stay underCore(andAll);Datafitis preserved as its own group.Allstill includesqa.jlinline for local runs.Matrix match
Old matrix:
Core@1,Datafit@1(ubuntu-latest, Linux-only, version'1').New
--root-matrixoutput:Core@1,Datafit@1,QA@1(ubuntu-latest).The functional
Core@1/Datafit@1matrix is reproduced exactly.QA@1is newly wired (Aqua was previously folded into Core@1). Statically verified withscripts/compute_affected_sublibraries.jl … --root-matrix; TOML and YAML parse confirmed.Metadata
Root
Project.tomlalready satisfied the benign-fix checks:[compat] julia = "1.10"(LTS floor) is present, and every[extras]dep (Aqua, SafeTestsets, Test) already has a[compat]entry. No changes were needed there.QA group newly wired; Aqua/JET run in CI — any failures will be triaged in a follow-up.
This is a structural-only conversion; tests/Aqua/JET were not run locally.
🤖 Generated with Claude Code
Ignore until reviewed by @ChrisRackauckas.