From 917b1999f1f4ac70e20c66c7ff4826fde617e156 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Mon, 15 Jun 2026 10:30:58 -0400 Subject: [PATCH 1/3] 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 Co-Authored-By: Claude Opus 4.8 (1M context) --- test/qa/qa.jl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/qa/qa.jl b/test/qa/qa.jl index d77c55b..1cdb09d 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,5 +1,7 @@ using PDESystemLibrary, Aqua, JET using SciMLTesting -run_qa(PDESystemLibrary; Aqua = Aqua, JET = JET, jet = true, - jet_kwargs = (; target_defined_modules = true)) +run_qa( + PDESystemLibrary; Aqua = Aqua, JET = JET, jet = true, + jet_kwargs = (; target_defined_modules = true) +) From 1671b41c5494cddf4936e4bc37fbc80ee7f1ead3 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 16 Jun 2026 05:19:05 -0400 Subject: [PATCH 2/3] 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 Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index 61b1bdc..a5240a9 100644 --- a/Project.toml +++ b/Project.toml @@ -24,6 +24,7 @@ NonlinearSolve = "3, 4" OptimizationOptimJL = "0.3, 0.4" OrdinaryDiffEq = "6.80.0, 7" OrdinaryDiffEqSDIRK = "1.2.0, 2" +Random = "1" SafeTestsets = "0.1" SciMLBase = "2.69.0, 3.1" SciMLTesting = "1" From d1ed3ad842cccea66124d6c46d33fae7d6500230 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 16 Jun 2026 08:59:00 -0400 Subject: [PATCH 3/3] Fix QA group: real eqs/bc typos in trans_sin + JET typo mode for Symbolics false positives MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Co-Authored-By: Claude Opus 4.8 (1M context) --- lib/linear_convection.jl | 4 ++-- test/qa/qa.jl | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/linear_convection.jl b/lib/linear_convection.jl index 587f276..92e100f 100644 --- a/lib/linear_convection.jl +++ b/lib/linear_convection.jl @@ -488,7 +488,7 @@ function trans_sin() bcs = [ u(0, z) ~ u_exact(0, z), u(t, 0) ~ u_exact(t, 0), - (t, 2π) ~ u_exact(t, 2π), + u(t, 2π) ~ u_exact(t, 2π), ] # Space and time domains @@ -506,7 +506,7 @@ function trans_sin() # PDESystem @named trans_sin = PDESystem( - eqs, bcs, domains, [t, z], [u(t, z)], analytic = ref, + eq, bcs, domains, [t, z], [u(t, z)], analytic = ref, metadata = tags ) diff --git a/test/qa/qa.jl b/test/qa/qa.jl index 1cdb09d..2c50f5d 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,7 +1,14 @@ using PDESystemLibrary, Aqua, JET using SciMLTesting +# JET runs in `:typo` mode (the SciMLTesting `run_qa` default). The library's +# problem builders construct symbolic expressions from `@variables`/`@parameters`; +# `Symbolics.wrap` has a union return type that JET widens to include the callable +# wrapper `Symbolics.CallAndWrap` (only produced by `@variables u(..)`), so basic-mode +# analysis emits spurious `no matching method found` union-split reports for `+/-/*/cos/sin` +# on scalar variables that are always `Num` at runtime. Typo mode still catches real +# undefined-name errors without these dependency-inference false positives. run_qa( PDESystemLibrary; Aqua = Aqua, JET = JET, jet = true, - jet_kwargs = (; target_defined_modules = true) + jet_kwargs = (; target_modules = (PDESystemLibrary,), mode = :typo) )