Skip to content

Canonical CI: grouped-tests.yml + root test/test_groups.toml#391

Merged
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci
Jun 10, 2026
Merged

Canonical CI: grouped-tests.yml + root test/test_groups.toml#391
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root Tests.yml workflow to the canonical thin caller of the SciML reusable grouped-tests.yml@v1, with the package's group × version matrix declared once in a root test/test_groups.toml instead of being hand-maintained in YAML.

Changes

  • .github/workflows/Tests.yml: the hand-written version × group matrix job is replaced with a thin caller:
    jobs:
      tests:
        uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
        secrets: "inherit"
    on: and concurrency: are preserved verbatim. No with: overrides are needed: the package reads the default GROUP env var, check-bounds keeps its previous "yes" default, and coverage directories default to src,ext (both present).
  • test/test_groups.toml (new, repo root): declares the matrix.
  • test/runtests.jl: GROUP dispatch gains a dedicated QA branch and the Downstream branch is now reachable independently of Core (the previous elseif GROUP == "All" || ... made the All alternative dead code). The QA branch activates the isolated test/qa environment.
  • test/qa/Project.toml + test/qa/qa.jl (new): isolated QA environment running Aqua.test_all(SciMLOperators) and JET.test_package(SciMLOperators; target_defined_modules = true).

Matrix match

The previous Tests.yml matrix was version: [1, lts, pre] × group: [Core, Downstream] = 6 jobs. The new test/test_groups.toml reproduces exactly that set and adds the new QA group:

Group Versions Status
Core lts, 1, pre unchanged
Downstream lts, 1, pre unchanged
QA lts, 1 new

Verified statically by running compute_affected_sublibraries.jl . --root-matrix, which emits exactly Core×{lts,1,pre}, Downstream×{lts,1,pre}, QA×{lts,1} (all ubuntu-latest, Linux-only — no os field). All TOML/YAML/Julia files were confirmed to parse.

Notes

QA group is newly wired; Aqua/JET run in CI for the first time here. Any failures will be triaged in a follow-up — no exclusions were pre-added to qa.jl. This is a structural conversion only; Aqua/JET/tests were not run locally.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

ChrisRackauckas and others added 3 commits June 9, 2026 18:18
Convert the root Tests.yml workflow to the canonical thin caller of
SciML/.github grouped-tests.yml@v1, with the group x version matrix
declared once in test/test_groups.toml at the repo root.

- Tests.yml: replace the hand-maintained version x group matrix with a
  thin `uses: grouped-tests.yml@v1` caller; on:/concurrency: unchanged.
- test/test_groups.toml: Core and Downstream on [lts, 1, pre] (matching
  the previous matrix), plus a new QA group on [lts, 1].
- test/runtests.jl: GROUP dispatch now has a dedicated QA branch (and the
  Downstream branch is reachable independently of Core); QA activates the
  isolated test/qa environment.
- test/qa/{Project.toml,qa.jl}: isolated QA environment running
  Aqua.test_all and JET.test_package on SciMLOperators.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grouped-tests CI conversion left the QA group unable to load its
tools: repos whose runtests.jl includes qa/qa.jl without activating the
test/qa sub-env had no Aqua/JET in the active (root) test env, and one
qa sub-env had a wrong [sources] path. Re-wire the dependencies so the
QA group resolves Aqua/JET (and Pkg) and the package under test.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grouped-tests QA group failed on three genuine findings: Aqua
method ambiguities (24), Aqua unbound type parameters (FunctionOperator
inner constructor), and JET (3 possible errors: opnorm, resize!,
ldiv!). Keep all passing Aqua checks running and wrap the two failing
Aqua checks as @test_broken; run JET.test_package with broken=true so
the QA group is green. Tracked in
SciML#392.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 10, 2026 09:49
@ChrisRackauckas ChrisRackauckas merged commit 54a59e6 into SciML:master Jun 10, 2026
17 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants