Skip to content

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

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root test workflow (Tests.yml) to the canonical grouped-tests.yml@v1 thin caller, with the group × version matrix declared once in test/test_groups.toml.

  • .github/workflows/Tests.yml: replaces the hand-maintained group × version matrix job with a thin caller to SciML/.github/.github/workflows/grouped-tests.yml@v1. on: and concurrency: are preserved verbatim. All reusable-workflow inputs use defaults (GROUP env, check-bounds, coverage), so no with: block is needed. Linux-only (no os field).
  • test/test_groups.toml (new, repo root): [Core] on ["lts","1","pre"]; [QA] on ["lts","1"].
  • Category B refactor (inline Aqua/JET → QA group):
    • Aqua previously ran inline inside the Core group (@safetestset "Quality Assurance" include("qa.jl")).
    • JET previously ran as a separate nopre group with its own test/nopre/Project.toml.
    • Both are now consolidated into a QA group gated on GROUP=="QA", isolated in test/qa/Project.toml (deps = Aqua + JET + LinearAlgebra + Test + the package via [sources] path = "../..", [compat] julia = "1.10") plus test/qa/qa.jl.
    • runtests.jl, for GROUP=="QA", activates test/qa, develops the root package, instantiates, then includes qa.jl. Functional tests (Constructors / Multiplication / Division / Interface) stay under Core (and All).
    • Removed old test/qa.jl and test/nopre/; dropped Aqua from the root test/Project.toml (now isolated in test/qa).

Matrix match

Old matrix in Tests.yml:

  • version = [1, lts, pre], group = [Core, nopre], with exclude (pre, nopre)
  • {(Core,1), (Core,lts), (Core,pre), (nopre,1), (nopre,lts)}

New matrix emitted by compute_affected_sublibraries.jl --root-matrix from test/test_groups.toml:

  • {(Core,lts), (Core,1), (Core,pre), (QA,lts), (QA,1)}

The nopre (JET) group becomes QA with identical version coverage (lts, 1); QA additionally absorbs the Aqua check that was previously inline in Core. Same number of jobs, same version coverage, all on ubuntu-latest. Verified statically by running the matrix-computation script against this branch; TOML and YAML parse confirmed.

Notes

  • The QA group is newly wired as a first-class CI group; Aqua/JET run in CI here — any failures will be triaged in a follow-up. No checks were skipped, silenced, or excluded.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits June 9, 2026 18:07
Convert the root test workflow (Tests.yml) to the canonical
grouped-tests.yml@v1 thin caller, with the group x version matrix declared
once in test/test_groups.toml.

- Tests.yml: replace the hand-maintained group x version matrix job with a
  thin caller to SciML/.github/.github/workflows/grouped-tests.yml@v1
  (on: + concurrency: preserved verbatim; all inputs default).
- test/test_groups.toml: [Core] on [lts, 1, pre]; [QA] on [lts, 1].
- Refactor inline QA: Aqua (previously inline in the Core group) and JET
  (previously the `nopre` group) are consolidated into a QA group gated on
  GROUP=="QA", isolated in test/qa/Project.toml ([sources] path to the root
  package) + test/qa/qa.jl. runtests.jl activates+develops+instantiates the
  qa env for the QA group. Functional tests stay in Core/All.
- Remove old test/qa.jl and test/nopre/.
- Drop Aqua from the root test/Project.toml (now isolated in test/qa).

Matrix preserved: old {Core: 1/lts/pre, nopre: 1/lts} -> new
{Core: lts/1/pre, QA: lts/1}; the `nopre` (JET) group becomes QA, which now
also runs Aqua. Linux-only, no os field.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The nopre -> QA consolidation in this branch removed test/nopre/ and added
test/qa/Project.toml, but dependabot still pointed at the old directory,
which would error once merged.

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