Skip to content

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

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root test workflow to the canonical SciML thin-caller pattern: the test matrix is declared once in a root test/test_groups.toml, and the workflow becomes a thin caller of SciML/.github/.github/workflows/grouped-tests.yml@v1.

Changes

  • .github/workflows/Tests.yml (root test workflow, kept filename + name: "Run Tests"): the hand-maintained group matrix job replaced by the thin grouped-tests.yml@v1 caller. on: and concurrency: preserved verbatim. No with: overrides needed — runtests reads the default GROUP env, defaults (check-bounds: yes, coverage: true, coverage-directories: src,ext) all apply. Linux-only (no os field).
  • test/test_groups.toml (new, repo root): Core on [lts, 1, pre], QA on [lts, 1].
  • test/runtests.jl: added GROUP dispatch. Existing suites (Telegraph, FeedbackLoop, BirthDeath2D) run under Core (and All). The QA group activates the isolated test/qa env and runs Aqua/JET.
  • test/qa/ (new): isolated environment (Aqua + JET + Test + FiniteStateProjection via [sources] path) and qa.jl running Aqua.test_all(FiniteStateProjection) and JET.test_package(FiniteStateProjection; target_defined_modules=true).
  • Project.toml: added [compat] entries for the test-only [extras] that were missing them (Distributions, LinearAlgebra, SafeTestsets, Test). julia compat already at the 1.10 LTS floor (unchanged).

Matrix match

Verified statically via scripts/compute_affected_sublibraries.jl --root-matrix (from SciML/.github@v1). Emitted matrix:

Core @ lts    (ubuntu-latest)
Core @ 1      (ubuntu-latest)   <- preserves the OLD matrix's only cell
Core @ pre    (ubuntu-latest)
QA   @ lts    (ubuntu-latest)
QA   @ 1      (ubuntu-latest)

The previous workflow ran a single cell (Core, julia '1'). That cell is preserved; the remaining cells (Core on lts/pre, plus the new QA group) are the canonical Category C expansion.

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

ChrisRackauckas and others added 4 commits June 9, 2026 18:11
Convert the root test workflow (Tests.yml) to the canonical thin caller
using SciML/.github grouped-tests.yml@v1, with the test matrix declared in
test/test_groups.toml at the repo root.

- Tests.yml: replace the hand-maintained group matrix job with the thin
  grouped-tests.yml@v1 caller; on:/concurrency: preserved verbatim.
- test/test_groups.toml: Core on [lts, 1, pre], QA on [lts, 1].
- runtests.jl: add GROUP dispatch (existing suites under Core; QA group
  activates the isolated test/qa env and runs Aqua/JET).
- test/qa: new isolated env (Aqua + JET + Test + package via [sources]) and
  qa.jl running Aqua.test_all and JET.test_package(target_defined_modules).
- Project.toml: add [compat] entries for the test-only extras missing them
  (Distributions, LinearAlgebra, SafeTestsets, Test); julia compat already
  at the 1.10 LTS floor.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grouped runtests.jl uses `using Pkg` for the QA group's Pkg.activate,
but Pkg was not a declared test dependency. Under project='.' the Core job
failed with: ArgumentError: Package Pkg not found in current path.

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 activates test/qa as its own project, so the QA sub-env must carry Pkg (used by the activation/instantiate path).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ts conversion)

Core = top-level test/*.jl (telegraph, feedbackloop, birthdeath2D); QA = test/qa/.
runtests.jl becomes `using SciMLTesting; run_tests()` (folder-discovery). Adds
SciMLTesting + SafeTestsets to the test deps and the qa sub-env; drops Pkg (only the
old hand-rolled harness used it).

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

Copy link
Copy Markdown
Contributor Author

Added the SciMLTesting v1.2 folder-based run_tests harness on top of this grouped-tests conversion; merges as one PR (grouped-tests + SciMLTesting v1.2).

@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 15, 2026 04:57
@ChrisRackauckas ChrisRackauckas merged commit b4363fa into SciML:main Jun 15, 2026
7 of 11 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