Skip to content

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

Draft
ChrisRackauckas-Claude wants to merge 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci
Draft

Canonical CI: grouped-tests.yml + root test/test_groups.toml#4610
ChrisRackauckas-Claude wants to merge 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root Tests.yml to the canonical thin caller of the reusable SciML/.github grouped-tests.yml@v1 workflow, moving the previously hand-maintained group × version matrix into a root test/test_groups.toml.

  • .github/workflows/Tests.yml — replace the inline matrix test job with a thin caller to grouped-tests.yml@v1 (secrets: inherit). on: and concurrency: are preserved verbatim, filename and name: unchanged. The only non-default input retained is coverage-directories: "src,ext,lib/ModelingToolkitBase/src,lib/ModelingToolkitBase/ext". (The old self-hosted: ${{ vars.USE_SELF_HOSTED == 'true' }} toggle is dropped; the matrix now uses the standard ubuntu-latest runner, configurable per-group via runner in test_groups.toml.)
  • test/test_groups.toml (new) — declares the 8 existing groups (InterfaceI, InterfaceII, Initialization, SymbolicIndexingInterface, Extensions, Optimization, Downstream, FMI) on ["lts","1","pre"], plus a newly-wired QA group on ["lts","1"]. Linux-only (no os axis).
  • test/runtests.jl — add GROUP == "QA" dispatch with a qa env activation running test/qa/qa.jl.
  • test/qa/ (new) — isolated env (Aqua + JET + Test + ModelingToolkit via [sources] path="../.."); qa.jl runs Aqua.test_all(ModelingToolkit) and JET.test_package(ModelingToolkit; target_defined_modules=true).
  • Project.toml — benign metadata fixes: bump [compat] julia 1.91.10 (LTS floor; also clears Aqua's project_extras <=1.1 check), and add [compat] entries for all 22 [extras] deps that lacked one (Aqua deps_compat).

Matrix match

scripts/compute_affected_sublibraries.jl . --root-matrix (run statically against the new TOML) reproduces the previous 24-job matrix exactly (8 groups × 3 versions), verified programmatically as set-equal to the old inline matrix, plus the 2 new QA jobs (lts, 1). All cells use ubuntu-latest (Linux-only). TOML and YAML parse-validated; Julia files syntax-checked. Tests/Aqua/JET were not run locally — this is a structural conversion.

Notes

  • The QA group is newly wired; Aqua/JET run in CI — any failures will be triaged in a follow-up. No test/Aqua/JET exclusions were added.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits June 9, 2026 18:15
Convert the root Tests.yml to a thin caller of the reusable
SciML/.github grouped-tests.yml@v1 workflow, moving the hand-maintained
group x version matrix into test/test_groups.toml at the repo root.

- Tests.yml: replace the inline matrix test job with a thin caller to
  grouped-tests.yml@v1 (secrets: inherit). Preserve on:/concurrency:
  verbatim and keep the non-default coverage-directories input.
- test/test_groups.toml: declare the 8 existing groups (InterfaceI,
  InterfaceII, Initialization, SymbolicIndexingInterface, Extensions,
  Optimization, Downstream, FMI) on ["lts","1","pre"], plus a new QA
  group on ["lts","1"]. --root-matrix reproduces the previous 24-job
  matrix exactly, plus 2 QA jobs.
- runtests.jl: add GROUP=="QA" dispatch with a qa env activation,
  running test/qa/qa.jl.
- test/qa/: new isolated env (Aqua + JET + Test + ModelingToolkit via
  [sources]) running Aqua.test_all and JET.test_package.
- Project.toml: bump [compat] julia "1.9" -> "1.10" (LTS floor) and add
  [compat] entries for all [extras] that lacked them (benign metadata
  fixes for Aqua's project_extras / deps_compat checks).

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>
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