From fa316c0fea4a8b7534922da65ec644131a517b5b Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 9 Jun 2026 18:07:00 -0400 Subject: [PATCH 1/2] Canonical CI: grouped-tests.yml + root test/test_groups.toml 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 Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/Tests.yml | 19 +------------------ test/Project.toml | 2 -- test/nopre/runtests.jl | 5 ----- test/qa.jl | 4 ---- test/{nopre => qa}/Project.toml | 7 ++++++- test/{nopre/jet.jl => qa/qa.jl} | 6 +++++- test/runtests.jl | 7 +++---- test/test_groups.toml | 5 +++++ 8 files changed, 20 insertions(+), 35 deletions(-) delete mode 100644 test/nopre/runtests.jl delete mode 100644 test/qa.jl rename test/{nopre => qa}/Project.toml (69%) rename test/{nopre/jet.jl => qa/qa.jl} (86%) create mode 100644 test/test_groups.toml diff --git a/.github/workflows/Tests.yml b/.github/workflows/Tests.yml index d3c0f28..5d3a530 100644 --- a/.github/workflows/Tests.yml +++ b/.github/workflows/Tests.yml @@ -20,22 +20,5 @@ concurrency: jobs: tests: - name: "Tests" - strategy: - fail-fast: false - matrix: - version: - - "1" - - "lts" - - "pre" - group: - - Core - - nopre - exclude: - - version: "pre" - group: nopre - uses: "SciML/.github/.github/workflows/tests.yml@v1" - with: - julia-version: "${{ matrix.version }}" - group: "${{ matrix.group }}" + uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1" secrets: "inherit" diff --git a/test/Project.toml b/test/Project.toml index be67af0..2926868 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,5 +1,4 @@ [deps] -Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" @@ -8,7 +7,6 @@ SparseBandedMatrices = "bd59d7e1-4699-4102-944e-d05209cb92aa" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] -Aqua = "0.8" LinearAlgebra = "1" Pkg = "1" Random = "1" diff --git a/test/nopre/runtests.jl b/test/nopre/runtests.jl deleted file mode 100644 index 54763c4..0000000 --- a/test/nopre/runtests.jl +++ /dev/null @@ -1,5 +0,0 @@ -using Test - -@testset "nopre tests" begin - include("jet.jl") -end diff --git a/test/qa.jl b/test/qa.jl deleted file mode 100644 index 0dd74bf..0000000 --- a/test/qa.jl +++ /dev/null @@ -1,4 +0,0 @@ -using SparseBandedMatrices, Aqua -@testset "Aqua" begin - Aqua.test_all(SparseBandedMatrices; ambiguities = (recursive = false,)) -end diff --git a/test/nopre/Project.toml b/test/qa/Project.toml similarity index 69% rename from test/nopre/Project.toml rename to test/qa/Project.toml index d8b7042..5c9fc17 100644 --- a/test/nopre/Project.toml +++ b/test/qa/Project.toml @@ -1,11 +1,16 @@ [deps] +Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" SparseBandedMatrices = "bd59d7e1-4699-4102-944e-d05209cb92aa" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +[sources] +SparseBandedMatrices = {path = "../.."} + [compat] +Aqua = "0.8" JET = "0.9, 0.10, 0.11" LinearAlgebra = "1" -SparseBandedMatrices = "1.3.0" Test = "1" +julia = "1.10" diff --git a/test/nopre/jet.jl b/test/qa/qa.jl similarity index 86% rename from test/nopre/jet.jl rename to test/qa/qa.jl index 7ef397d..d0ebf4a 100644 --- a/test/nopre/jet.jl +++ b/test/qa/qa.jl @@ -1,4 +1,8 @@ -using SparseBandedMatrices, JET, LinearAlgebra +using SparseBandedMatrices, Aqua, JET, LinearAlgebra, Test + +@testset "Aqua" begin + Aqua.test_all(SparseBandedMatrices; ambiguities = (recursive = false,)) +end @testset "JET static analysis" begin # Test that there are no unresolved dispatch errors in key functions diff --git a/test/runtests.jl b/test/runtests.jl index 709ae97..730b8aa 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -4,7 +4,6 @@ const GROUP = get(ENV, "GROUP", "All") @testset "SparseBandedMatrices" begin if GROUP == "All" || GROUP == "Core" - @safetestset "Quality Assurance" include("qa.jl") @safetestset "Interface Compatibility" include("interface.jl") @safetestset "Constructors" begin @@ -86,10 +85,10 @@ const GROUP = get(ENV, "GROUP", "All") end end - if GROUP == "All" || GROUP == "nopre" - Pkg.activate(joinpath(@__DIR__, "nopre")) + if GROUP == "All" || GROUP == "QA" + Pkg.activate(joinpath(@__DIR__, "qa")) Pkg.develop(PackageSpec(path = joinpath(@__DIR__, ".."))) Pkg.instantiate() - @safetestset "JET Static Analysis" include("nopre/jet.jl") + include(joinpath(@__DIR__, "qa", "qa.jl")) end end diff --git a/test/test_groups.toml b/test/test_groups.toml new file mode 100644 index 0000000..1fe84cd --- /dev/null +++ b/test/test_groups.toml @@ -0,0 +1,5 @@ +[Core] +versions = ["lts", "1", "pre"] + +[QA] +versions = ["lts", "1"] From 1f4bfc33670571c738449218311e442b87715e5d Mon Sep 17 00:00:00 2001 From: "Chris Rackauckas (Claude)" Date: Wed, 10 Jun 2026 06:31:33 -0400 Subject: [PATCH 2/2] dependabot: track test/qa instead of removed test/nopre 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 Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b3a0706..eb41b37 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,7 +9,7 @@ updates: - "/" - "/docs" - "/test" - - "/test/nopre" + - "/test/qa" schedule: interval: "daily" groups: