Canonical CI: grouped-tests.yml + root test/test_groups.toml#58
Merged
ChrisRackauckas merged 4 commits intoJun 15, 2026
Merged
Conversation
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). |
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. - test/test_groups.toml: [Core] on lts/1/pre, [QA] on lts/1. - runtests.jl: dispatch on GROUP. Core (and All) runs the functional MethodOfLines example suite as before; QA activates an isolated test/qa environment and runs Aqua/JET. - test/qa/Project.toml + test/qa.jl: newly-wired QA group, isolating Aqua/JET (+ the package via [sources]) out of the main test env. - Tests.yml: thin caller. Linux-only (no os field); coverage-directories set to "src" (no ext/). on:/concurrency: preserved verbatim. - Project.toml: add [compat] entries for every [extras] dep (Lux/MethodOfLines/NonlinearSolve/OptimizationOptimJL/SafeTestsets/Test); julia already at the 1.10 LTS floor. The dead NeuralPDE matrix cells (commented out in runtests.jl, deps unresolvable) are dropped and replaced by the standard QA group. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
test/runtests.jl does `using Pkg` for the QA group's Pkg.activate, but Pkg was not declared in the Core test environment (project='.'), so the Core job died 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>
Move `using SafeTestsets` out of the in-block GROUP branch to top level so the @safetestset macro is defined before the if-block (which uses it inline) is macro-expanded as a single unit. 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>
1df2776 to
9786244
Compare
ChrisRackauckas
added a commit
that referenced
this pull request
Jun 19, 2026
… and Runic-format qa.jl (#60) * Runic-format test/qa/qa.jl The QA scaffolding added in #58 introduced test/qa/qa.jl, which was not Runic-formatted, so the Runic format check on master is red. Apply Runic to wrap the run_qa call to satisfy the formatter. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Add [compat] entry for Random stdlib dep Aqua's deps_compat (Compat bounds) QA check flagged that the direct dependency Random had no [compat] entry. Stdlib deps still need an explicit compat bound for Aqua to pass. Adds Random = "1". Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Fix QA group: real eqs/bc typos in trans_sin + JET typo mode for Symbolics false positives The QA group failed with 16 JET 'no matching method found' reports under basic-mode analysis (target_defined_modules=true). Two were genuine source bugs in trans_sin() (lib/linear_convection.jl): - the PDESystem was built from an undefined `eqs` (should be `eq`), which JET flagged as an undefined-global; and - a boundary condition was `(t, 2π) ~ ...` instead of `u(t, 2π) ~ ...` (missing the dependent variable). Both are fixed. The remaining 15 reports are dependency-inference false positives: `Symbolics.wrap` (used by `@variables`/`@parameters`) has a union return type that JET widens to include the callable wrapper `Symbolics.CallAndWrap` (only ever produced at runtime by `@variables u(..)`, never by scalar vars), so basic mode reports spurious union-split method errors for +/-/*/cos/sin on scalars that are always `Num`. JET's :typo mode (the SciMLTesting run_qa default) does not run method-error analysis but still catches real undefined-name typos, so the QA JET call is switched to `(; target_modules = (PDESystemLibrary,), mode = :typo)`. Verified on Julia 1.12.6: report_package basic=15 (all CallAndWrap), typo=0; full QA group 'Quality Assurance | 12 12' all pass. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
grouped-tests.yml@v1thin caller, with the group x version matrix declared once intest/test_groups.toml..github/workflows/Tests.yml— replaced the hand-maintainedgroup x versionmatrix job with the thin callerSciML/.github/.github/workflows/grouped-tests.yml@v1(secrets: inherit). Linux-only (noosfield).coverage-directories: "src"(the package has noext/).on:/concurrency:preserved verbatim; filename andname: CIunchanged. No other workflows touched.test/test_groups.toml(new) —[Core]onlts/1/pre;[QA]onlts/1.test/runtests.jl— dispatch onGROUP.Core(andAll) runs the functional MethodOfLines example suite exactly as before.QAactivates the isolatedtest/qaenvironment (Pkg.activate+Pkg.develop(path=repo root)+Pkg.instantiate) and includesqa.jl.test/qa/Project.toml+test/qa.jl(new) — isolates Aqua/JET (plusTestand the package via[sources] path="../..") out of the main test environment;[compat] julia = "1.10".Project.toml— added[compat]entries for every[extras]dependency (Lux, MethodOfLines, NonlinearSolve, OptimizationOptimJL, SafeTestsets, Test).[compat] juliawas already at the1.10LTS floor. (Benign metadata fixes for the two most common Aqua findings.)Matrix match
Old matrix:
{MOL, NeuralPDE} x {lts, 1, pre}(6 cells). TheMOLgroup was the only one that ran anything —NeuralPDEwas commented out inruntests.jl(deps unresolvable per the existing TODO), so its 3 cells ran zero tests.New matrix (verified statically via
compute_affected_sublibraries.jl . --root-matrix):The functional
MOLaxis is preserved 1:1 asCoreonlts/1/pre. The deadNeuralPDEcells are dropped and replaced by the standardQAgroup onlts/1.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