Skip to content

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

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

What

Converts the root Tests.yml test job to the canonical thin caller that uses SciML/.github/.github/workflows/grouped-tests.yml@v1, with the test matrix declared once in test/test_groups.toml.

Changes

  • Tests.yml is now a thin caller (jobs.tests -> grouped-tests.yml@v1, secrets: inherit). The on: triggers and concurrency: block are preserved verbatim. No with: overrides needed: the prior workflow used the reusable tests.yml@v1 defaults for depwarn (yes), check-bounds (yes), and coverage (true / src,ext).
  • test/test_groups.toml (new, repo root):
    • [Core] on ["lts", "1", "pre"] across the prior 3-OS matrix ["ubuntu-latest", "macos-latest", "windows-latest"].
    • [QA] on ["lts", "1"] (ubuntu-latest).
  • Aqua refactor (Category B): Aqua previously ran inline in the unconditional main testset (test/qa.jl included by runtests.jl). It is now isolated in a GROUP=="QA" group:
    • test/qa/Project.toml — isolated env with Aqua + Test + HighDimPDE via [sources] path = "../..", [compat] julia = "1.10".
    • test/qa/qa.jl — the moved Aqua calls (unchanged; no checks skipped/excluded).
    • runtests.jl dispatches on GROUP: when QA, activate test/qa, Pkg.develop the package, instantiate, then include qa/qa.jl; otherwise run the functional suite.
  • Dropped Aqua from the root [extras]/[compat]/[targets] now that it lives in the isolated QA env.

Matrix match

compute_affected_sublibraries.jl --root-matrix emits, for Core, exactly the prior 9 (version, os) cells — {lts, 1, pre} x {ubuntu-latest, macos-latest, windows-latest} — a 1:1 reproduction of the old Tests.yml matrix. QA adds 2 newly-wired cells ({lts, 1} on ubuntu-latest). The TOML and the thin-caller YAML were statically parse-verified.

Notes

  • QA group is newly wired; Aqua now runs in its own CI group rather than inline in every functional cell. Aqua/JET run in CI — any failures will be triaged in a follow-up. (No checks were skipped, silenced, or excluded.)
  • Verification was structural/static only; tests and Aqua were not run locally.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

ChrisRackauckas and others added 3 commits June 9, 2026 17:57
Convert the root Tests.yml test job to the canonical thin caller that
uses SciML/.github grouped-tests.yml@v1, with the matrix declared once in
test/test_groups.toml.

- Tests.yml becomes a thin caller (on:/concurrency: preserved verbatim).
- test/test_groups.toml: Core on [lts, 1, pre] across the prior 3-OS
  matrix (ubuntu/macos/windows); QA on [lts, 1].
- Aqua moved out of the inline main testset into a GROUP=="QA" group with
  an isolated test/qa/Project.toml (Aqua + Test + HighDimPDE via
  [sources]) and test/qa/qa.jl. runtests.jl dispatches on GROUP: QA
  activates the isolated env and develops/instantiates the package; all
  other groups run the functional suite.
- Drop Aqua from the root [extras]/[compat]/[targets] now that it lives in
  the isolated QA env.

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 uses `using Pkg` (for the QA group's
Pkg.activate), but Pkg was not a declared test dependency. The Core
group runs with project='.', so it died with:
  ArgumentError: Package Pkg not found in current path

Declare Pkg in the root test environment so the Core job loads it.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tion

The QA group failed on two issues, both now resolved without silencing:

- Aqua.test_deps_compat flagged that the `Pkg` test dependency (added to
  [extras]/[targets] for the grouped-tests Core group) had no [compat]
  entry. Add `Pkg = "1.10"` to [compat] to declare it. This is a real
  fix for the finding, not a suppression.

- The QA driver called the bare diagnostic `Aqua.find_persistent_tasks_deps`,
  which is not a test assertion (its return value was discarded) and which
  re-precompiles the entire SciMLSensitivity/CUDA/Enzyme dependency tree once
  per dependency in isolated subprocesses; under that load it intermittently
  errored and aborted the whole Aqua testset before any real check ran.
  Replace it with the canonical `Aqua.test_persistent_tasks(HighDimPDE)`
  assertion, which actually tests for persistent tasks and passes (verified
  locally: 1 pass, 45.5s).

Full QA group now passes locally: 11/11, 0 failed/errored/broken.

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:43
@ChrisRackauckas ChrisRackauckas merged commit 2047751 into SciML:main Jun 10, 2026
5 of 6 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