Canonical CI: grouped-tests.yml + root test/test_groups.toml#204
Merged
ChrisRackauckas merged 5 commits intoJun 10, 2026
Merged
Conversation
Convert the root Tests.yml test workflow to the canonical thin caller of SciML/.github grouped-tests.yml@v1, declaring the group x version matrix in test/test_groups.toml instead of a hand-maintained YAML matrix. - Tests.yml: replace the two-job (tests version matrix + alloccheck) matrix with the thin `tests` caller of grouped-tests.yml@v1. on:/concurrency: preserved verbatim; no `with:` needed (all defaults match the old job: GROUP env name, coverage true, src,ext coverage dirs, check-bounds yes). - test/test_groups.toml: Core [lts,1,pre], AllocCheck [1], QA [lts,1]. - runtests.jl: GROUP dispatch for Core (main suite) / AllocCheck / QA; "All" kept as the local default running the Core suite + RecursiveArrayTools. - test/qa/: isolated QA env (Aqua, JET, Test, LabelledArrays via [sources]) plus qa.jl running Aqua.test_all + JET.test_package gated on GROUP=="QA". - Project.toml: add [compat] for extras missing one (AllocCheck, Test, ChainRulesTestUtils, InteractiveUtils); julia compat already at 1.10 LTS. 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 does `using Pkg` to activate the QA sub-environment, but Pkg was not a declared test dependency. Under the Core group (run with project='.'), this fails with `ArgumentError: Package Pkg not found in current path`. Declare Pkg in the root test environment so the Core job can load it. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The QA sub-environment activated by Pkg.activate(test/qa) runs Aqua.test_all, which exercises Pkg-backed checks. Add Pkg to test/qa/Project.toml [deps] so the QA group resolves it explicitly rather than relying on a transitive dependency. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Move the Core/All-group `using` lines out of the top-level `if GROUP ...` block so they are no longer macro-expanded as part of a block that also uses test macros inline. Julia expands the whole if-block before the in-block `using` runs, leaving macros like @testset/@test undefined. Hoisting the usings above `const GROUP` fixes the `UndefVarError: @testset (...) not defined in Main` failure. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Aqua ambiguities, unbound_args, undefined_exports, deps_compat and JET (setfield! on immutable LArray in setproperty!) are genuine findings; keep all passing Aqua sub-checks enforced and mark only the failing checks @test_broken. Tracked in SciML#205. 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
Tests.ymltest workflow to the canonical thin caller ofSciML/.githubgrouped-tests.yml@v1, with the group × version matrix declared once intest/test_groups.tomlinstead of a hand-maintained YAML matrix.Changes
.github/workflows/Tests.yml— replaced the two-job matrix (testsversion matrix +alloccheck) with a single thintestsjob callinggrouped-tests.yml@v1withsecrets: inherit.on:andconcurrency:preserved verbatim;name:unchanged. Nowith:block needed — all defaults match the old job (GROUP env-var name,coverage: true,coverage-directories: src,ext,check-bounds: yes). Linux-only, so noosaxis.test/test_groups.toml(new) —Coreon[lts, 1, pre],AllocCheckon[1],QAon[lts, 1].test/runtests.jl— addedGROUPdispatch:Core(main suite: SLArrays/LArrays/DiffEq/ChainRules + RecursiveArrayTools),AllocCheck(alloc tests),QA(activatestest/qaenv)."All"retained as the local default running the Core suite.test/qa/(new) — isolated QA environment:Project.tomlwithAqua,JET,Test, andLabelledArraysvia[sources] path = "../..";qa.jlrunsAqua.test_all(LabelledArrays)andJET.test_package(LabelledArrays; target_defined_modules = true), gated onGROUP == "QA".Project.toml— added[compat]entries for the[extras]deps that lacked one (AllocCheck = "0.2",ChainRulesTestUtils = "1",InteractiveUtils = "1",Test = "1").juliacompat already at the1.10LTS floor (unchanged).Matrix match
The reusable workflow's
--root-matrixcomputation emits exactly:This faithfully reproduces the OLD matrix — the old
testsjob (GROUP=All, versions1/lts/pre) maps toCoreon the same three versions, and the oldalloccheckjob (GROUP=nopre, version1) maps toAllocCheckon version1. TheQAgroup is newly added.QA group is 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