Canonical CI: grouped-tests.yml + root test/test_groups.toml - #35
Merged
ChrisRackauckas merged 4 commits intoJun 10, 2026
Merged
Conversation
Convert the root test workflow to the canonical thin caller of SciML/.github grouped-tests.yml@v1, with the version/group/OS matrix declared once in test/test_groups.toml. Category B refactor (Aqua/JET previously ran inline in runtests.jl): - Functional interface tests moved to test/core_tests.jl (GROUP Core/All), alongside the AllocCheck allocation tests. - Aqua + JET consolidated into test/qa.jl, gated on GROUP=="QA", running in an isolated test/qa/Project.toml environment (Aqua, JET, Test, LinearAlgebra, Statistics + SurrogatesBase via [sources] path="../.."). - runtests.jl is now GROUP-dispatched: QA activates/instantiates the qa env and develops the root package before including qa.jl. - Aqua/JET removed from the root [extras]/[targets].test/[compat] now that they live only in the QA env (keeps QA tooling out of reverse-dep resolution). test/test_groups.toml: - [Core] on [lts, 1, pre] across [ubuntu-latest, macos-latest, windows-latest] (preserves the old OS matrix). - [QA] on [lts, 1] (ubuntu). Tests.yml is now a thin caller; on:/concurrency: preserved verbatim. The standalone alloccheck job is removed (its coverage is subsumed by Core). All other workflows untouched. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grouped-tests Core job runs with project='.' (root test env), but test/runtests.jl uses `using Pkg` to activate the QA sub-environment. Pkg was not declared in the root test target, so the Core job failed with `ArgumentError: Package Pkg not found in current path`. Add Pkg to [extras] and the [targets].test vector. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grouped-tests conversion removed these from the root test environment ([extras] + [targets].test) when isolating the QA group, but they are still referenced by the test setup. Re-add them with their UUIDs and compat bounds from the pre-conversion base branch. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
runtests.jl does `using Pkg` for the QA group's Pkg.activate/develop, but Pkg was only in [extras], not the [targets] test list, so the shared root test env failed to load Pkg for every group. Add Pkg to the test target and declare a Pkg = "1.10" compat entry (stdlib) so Aqua.test_deps_compat's extras check passes. QA group now green (15/15); Core unaffected (15/15). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ChrisRackauckas
marked this pull request as ready for review
June 10, 2026 09:45
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 (
Tests.yml) to the canonical thin caller ofSciML/.githubgrouped-tests.yml@v1, with the version/group/OS matrix declared once in a roottest/test_groups.toml. The hand-maintained matrix is gone;on:andconcurrency:are preserved verbatim. No other workflows were touched.This is a Category B refactor: Aqua and JET previously ran inline in
runtests.jl(via@safetestset) with no separate QA group.Changes
test/core_tests.jl(new): functional interface tests (update!, default impls, hyperparameter interface,finite_posterior/parameters) extracted fromruntests.jl; run underGROUPCore/All, alongside the existing AllocCheck tests.test/qa.jl: now holds Aqua + JET (the JET suite from the deletedtest/jet.jlis merged in verbatim). Gated onGROUP == "QA".test/qa/Project.toml(new): isolated QA environment —Aqua,JET,Test,LinearAlgebra,Statistics, plusSurrogatesBasevia[sources] path="../..",[compat] julia="1.10".runtests.jl: GROUP-dispatched. ForQAit activatestest/qa, develops the root package, instantiates, then includesqa.jl. ForCore/Allit runs the functional + allocation tests.Project.toml:Aqua/JETremoved from[extras]/[targets].test/[compat](they now live only in the QA env, keeping QA tooling out of reverse-dependency resolution).[compat] juliastays at the1.10LTS floor; every remaining[extras]dep has a[compat]entry.Tests.yml: thin caller — singletestsjob →grouped-tests.yml@v1,secrets: inherit, nowith:(all defaults apply:GROUPenv name,check-bounds: yes, coverage on,src,ext). The standalonealloccheckjob is removed; its coverage is subsumed by the Core group.test/test_groups.tomlMatrix match
Old
Tests.yml:version ∈ {1, lts, pre}×os ∈ {ubuntu-latest, macos-latest, windows-latest}= 9 cells, each running the whole suite (functional + AllocCheck + Aqua + JET), plus a standalonealloccheckjob (ubuntu, v1).New matrix (verified statically via
compute_affected_sublibraries.jl --root-matrix):{lts, 1, pre}×{ubuntu-latest, macos-latest, windows-latest}= 9 cells — preserves the full functional + AllocCheck OS/version coverage exactly.{lts, 1}(ubuntu) = 2 cells — Aqua + JET consolidated into a dedicated group on the standard[lts, 1]set instead of being duplicated across all 9 functional cells. The old single-cellalloccheck/ubuntu coverage is subsumed (Core ubuntu/v1 + QA ubuntu/v1).Total 11 jobs. TOML and YAML parse verified statically; tests were not run locally for this structural conversion.
QA group newly wired; Aqua/JET run in CI — any failures will be triaged in a follow-up.
Ignore until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code