Skip to content

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

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root test workflow (.github/workflows/Tests.yml) to the canonical SciML grouped-tests.yml@v1 thin caller, with the group × version matrix declared once in a root test/test_groups.toml. on: and concurrency: are preserved verbatim; the matrix test job is replaced by:

jobs:
  tests:
    uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
    secrets: "inherit"

No with: overrides are needed: the package reads the default GROUP env var, has no ext/ (default src,ext coverage dirs are fine), needs no apt packages, and uses default check-bounds/coverage. Linux-only (no os axis). All other workflows are untouched.

Category B refactor (inline QA -> isolated QA group)

The repo previously ran ExplicitImports + JET + AllocCheck bundled in a lowercase nopre group. These are moved into a canonical GROUP=="QA" group:

  • Functional tests run under GROUP=="Core" (and "All").
  • The JET/ExplicitImports/AllocCheck checks are isolated in test/qa/Project.toml (its tooling deps + Test, with the package pulled in via [sources] path = "../..", julia = "1.10") plus a test/qa/qa.jl aggregator (explicit_imports.jl, jet_tests.jl, alloc_tests.jl moved from test/nopre/).
  • runtests.jl dispatches on the canonical uppercase GROUP values; for QA it Pkg.activates test/qa, Pkg.develops the repo root, Pkg.instantiates, then includes qa.jl.
  • .github/dependabot.yml updated for the test/nopre -> test/qa rename.

Matrix match (1:1, group renamed, per-group version coverage identical)

OLD inline matrix (version ∈ {1, lts, pre}, group ∈ {core, nopre}, exclude nopre+pre):

group versions
core lts, 1, pre
nopre lts, 1

NEW (compute_affected_sublibraries.jl --root-matrix against the new test_groups.toml, verified locally):

group versions
Core lts, 1, pre
QA lts, 1

Emitted set: (Core,lts) (Core,1) (Core,pre) (QA,lts) (QA,1) — 5 jobs, exactly matching the old 5 (core->Core, nopre->QA), all ubuntu-latest.

Benign metadata fixes (applied without running Aqua)

  • Root [compat] julia already at the "1.10" LTS floor — left unchanged.
  • Added [compat] entries for the [extras] deps missing them: Pkg = "1", Statistics = "1", Test = "1".

Verification (static only)

  • test_groups.toml, root Project.toml, test/qa/Project.toml parse via Julia TOML.
  • Tests.yml parses as YAML; thin-caller shape confirmed.
  • Root matrix recomputed and matches the old matrix.
  • Aqua/JET/tests were not run locally (structural conversion only).

QA group newly wired; Aqua/JET run in CI — any failures will be triaged in follow-up.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

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

Category B refactor: the inline JET/ExplicitImports/AllocCheck checks
(previously bundled in the lowercase "nopre" group) are moved into a
GROUP=="QA" group, isolated in test/qa/Project.toml (Aqua-free env via a
[sources] path to the package root) with a qa.jl aggregator. Functional
tests run under GROUP=="Core" (and "All"). runtests.jl dispatches on the
canonical uppercase GROUP values; for QA it activates test/qa, develops
the package, instantiates, then includes qa.jl.

Matrix mapping (group renamed, per-group version coverage identical):
  core  -> Core on [lts, 1, pre]
  nopre -> QA   on [lts, 1]

Benign Project.toml metadata fixes: julia compat already at the 1.10 LTS
floor; added [compat] entries for the [extras] deps Pkg, Statistics, Test.

test/nopre -> test/qa rename also updated in .github/dependabot.yml.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The using DiffEqFinancial, Statistics, StochasticDiffEq line sat inside the
top-level if GROUP == ... block that also uses @testset/@test inline. Julia
macro-expands the entire if block as one unit before the in-block using runs,
so the macros were undefined (UndefVarError: @testset not defined in Main).
Move the functional usings to top level, above const GROUP.

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 db66868 into SciML:master Jun 10, 2026
8 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