Skip to content

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

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root CI test workflow to the canonical SciML thin caller of grouped-tests.yml@v1, declaring the version/group matrix once in a root test/test_groups.toml instead of hand-maintaining it in YAML.

  • .github/workflows/CI.yml: the hand-maintained group × version matrix job is replaced by the thin caller:
    jobs:
      tests:
        uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
        secrets: "inherit"
    No with: overrides are needed — the old job used tests.yml's defaults for check-bounds (yes) and coverage (true), which match grouped-tests.yml's defaults. The on: and concurrency: blocks are preserved verbatim. Linux-only (no os field).
  • test/test_groups.toml (new root matrix):
    [Core]
    versions = ["lts", "1", "pre"]
    
    [QA]
    versions = ["lts", "1"]
  • test/runtests.jl: adds GROUP dispatch. The existing suite runs under Core/All; QA activates the isolated test/qa environment and runs Aqua/JET.
  • test/qa/ (new): isolated QA env — Aqua + JET + Test + the package via a path [sources] entry — running Aqua.test_all(DiffEqParamEstim) and JET.test_package(DiffEqParamEstim; target_defined_modules=true).
  • Project.toml: benign metadata fixes — bump julia compat floor 1.61.10 (LTS), and add [compat] entries for every [extras] dependency that lacked one.

Matrix match

Old matrix (CI.yml): group = All on versions 1, lts, pre (3 cells, ubuntu-latest).

New matrix, emitted by compute_affected_sublibraries.jl . --root-matrix (verified statically):

  • Core × {lts, 1, pre} — reproduces the old 3-cell test matrix exactly (group renamed AllCore per the canonical convention; runtests.jl dispatches both to the same suite).
  • QA × {lts, 1} — newly wired Aqua/JET (2 new cells).

QA group 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:09
Convert the root CI test workflow to the canonical thin caller of
SciML/.github grouped-tests.yml@v1, with the version/group matrix declared
once in test/test_groups.toml.

- CI.yml: replace the hand-maintained group x version 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 suite runs under Core/All, QA
  activates test/qa and runs Aqua/JET.
- test/qa: isolated QA environment (Aqua + JET + Test + package via path
  source) running Aqua.test_all and JET.test_package.
- Project.toml: bump julia compat floor to 1.10 (LTS) and add [compat]
  entries for every [extras] dependency (benign Aqua metadata fixes).

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

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Core test group runs with project='.' and test/runtests.jl does
`using Pkg` (for the QA group's Pkg.activate), but Pkg was not a
declared test dependency, causing the Core job to fail 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 conversion placed using statements inside a top-level
GROUP if-block that also uses macros (@testset/@safetestset) inline. Julia
macro-expands the whole if-block before the in-block using runs, so the
macro is undefined at expansion time. Move the functional usings to top
level (above const GROUP) so the macros resolve.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Keeps all passing Aqua sub-checks running and the JET check intact;
disables only the failing Aqua sub-checks and asserts them via @test_broken
so they remain visible and auto-flag once fixed. Findings tracked in
SciML#306.

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:46
@ChrisRackauckas ChrisRackauckas merged commit 118c553 into SciML:master Jun 10, 2026
4 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