Canonical CI: grouped-tests.yml + root test/test_groups.toml - #107
Merged
ChrisRackauckas merged 4 commits intoJun 15, 2026
Conversation
Convert the root test workflow (CI.yml) to the canonical thin caller of SciML/.github/.github/workflows/grouped-tests.yml@v1, with the group x version matrix declared once in test/test_groups.toml. - CI.yml: replace the hand-maintained version/os/arch matrix job (which called tests.yml@v1 directly) with a thin caller of grouped-tests.yml@v1. on: and concurrency: preserved verbatim; coverage:false carried over (non-default). - test/test_groups.toml: [Core] versions=["lts","1","pre"]; [QA] versions=["lts","1"]. Linux-only (no os axis). - test/runtests.jl: add GROUP dispatch (default "All"). Existing suite runs under All/Core; QA group runs test/qa/qa.jl. - test/qa/: isolated QA env (Aqua, JET, Test, SymbolicAnalysis via [sources] path) + qa.jl running Aqua.test_all + JET.test_package(target_defined_modules). QA group is newly wired; Aqua/JET run in CI for the first time. No exclusions were pre-added; any genuine findings will be triaged in a follow-up. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The QA group includes test/qa/qa.jl directly in the root test environment (no Pkg.activate of test/qa), so its using Aqua, JET statements must resolve in the root test env. Add Aqua and JET to the root test environment so the QA group can load them. 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 SymbolicAnalysis: ...` inside the top-level `if GROUP == "All" || GROUP == "Core"` block, which also uses `@testset` inline. Julia macro-expands the whole `if` block as one unit before the in-block `using` runs, so test macros are undefined in Main. Move the functional `using` to top level (after `using SafeTestsets, Test`). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ts conversion) Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Member
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 thin caller of
SciML/.github/.github/workflows/grouped-tests.yml@v1, with the group × version matrix declared once intest/test_groups.toml.Changes
.github/workflows/CI.yml(converted in place — filename andname: CIpreserved): the hand-maintainedversion/os/archmatrix job (which calledtests.yml@v1directly) is replaced by a thin caller ofgrouped-tests.yml@v1.on:andconcurrency:are preserved verbatim. The only non-defaultwith:iscoverage: false, carried over from the old workflow.test/test_groups.toml(new, repo root):[Core] versions = ["lts","1","pre"];[QA] versions = ["lts","1"]. Linux-only — noosaxis.test/runtests.jl: addsGROUPdispatch (default"All"). The existing suite (DCP, DGCP SPD/Lorentz, Interface, Allocation) runs underAll/Core; the QA group runstest/qa/qa.jl.test/qa/(new): isolated QA environment (Aqua,JET,Test, andSymbolicAnalysisvia[sources]path../..) plusqa.jlrunningAqua.test_all(SymbolicAnalysis)andJET.test_package(SymbolicAnalysis; target_defined_modules=true).Other workflows (Downgrade, Documenter, FormatCheck, RunicSuggestions, SpellCheck, TagBot, DependabotAutoMerge, DocPreviewCleanup) are left untouched.
Matrix match
The matrix computed by
compute_affected_sublibraries.jl . --root-matrixis:The old matrix was a single cell:
version "1",ubuntu-latest,x64,coverage:false. The new matrix reproduces that exact cell (Core @ 1, ubuntu-latest) and canonically expands it with the standardlts/preversions plus the newly-wiredQAgroup. All cells areubuntu-latest, matching the old single-OS (Linux) matrix.Project metadata
Root
Project.tomlalready has[compat] julia = "1.10"(LTS floor) and has no[extras]section, so no pre-emptive metadata fixes were required.Notes
qa.jl.Please ignore until reviewed by @ChrisRackauckas.