Canonical CI: grouped-tests.yml + root test/test_groups.toml#56
Merged
ChrisRackauckas merged 4 commits intoJun 15, 2026
Merged
Conversation
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>
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). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 ofSciML/.github/.github/workflows/grouped-tests.yml@v1.Changes
.github/workflows/Tests.yml(root test workflow, kept filename +name: "Run Tests"): the hand-maintainedgroupmatrix job replaced by the thingrouped-tests.yml@v1caller.on:andconcurrency:preserved verbatim. Nowith:overrides needed — runtests reads the defaultGROUPenv, defaults (check-bounds: yes,coverage: true,coverage-directories: src,ext) all apply. Linux-only (noosfield).test/test_groups.toml(new, repo root):Coreon[lts, 1, pre],QAon[lts, 1].test/runtests.jl: addedGROUPdispatch. Existing suites (Telegraph, FeedbackLoop, BirthDeath2D) run underCore(andAll). TheQAgroup activates the isolatedtest/qaenv and runs Aqua/JET.test/qa/(new): isolated environment (Aqua+JET+Test+FiniteStateProjectionvia[sources]path) andqa.jlrunningAqua.test_all(FiniteStateProjection)andJET.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).juliacompat already at the1.10LTS floor (unchanged).Matrix match
Verified statically via
scripts/compute_affected_sublibraries.jl --root-matrix(fromSciML/.github@v1). Emitted matrix:The previous workflow ran a single cell
(Core, julia '1'). That cell is preserved; the remaining cells (Coreonlts/pre, plus the newQAgroup) 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