Skip to content

Commit 80eb18a

Browse files
ChrisRackauckas-ClaudeChrisRackauckasclaude
authored
QA: run_qa v1.6 form + ExplicitImports (root + sublibs) (#206)
* QA: run_qa v1.6 form + ExplicitImports (root + sublibs) Convert the root QA env and all 7 lib/<Sub> sublibrary QA envs to the SciMLTesting 1.6 run_qa form with ExplicitImports enabled. Per QA env: rewrite qa.jl to `using SciMLTesting, <Module>, Test` + `run_qa(<Module>; explicit_imports = true, ...)`; bump the env's SciMLTesting [compat] to "1.6"; keep Aqua where ambiguities is disabled. ExplicitImports stays a transitive dep of SciMLTesting (not listed). ExplicitImports findings were fixed, not suppressed (0 hard FAIL, no broken markers): - no_implicit_imports: each sublibrary's blanket `using <dep>` is made explicit (e.g. `using DiffEqBase: DiffEqBase, BVProblem, ...`, `using Catalyst: Catalyst, @reaction_network, ...`), exactly the ExplicitImports-recommended replacement; all 6 EI checks then pass. - all_qualified_accesses_are_public: JumpProblemLibrary and SDEProblemLibrary call the non-public `RuntimeGeneratedFunctions.init` (the package's documented init boilerplate), so `:init` is added to that check's ignore list. Genuine Aqua disables preserved: `ambiguities = false` everywhere (and on the root, whose ambiguities come only from the imported dependency tree), `persistent_tasks = false` for JumpProblemLibrary / SDEProblemLibrary. Root package Project.toml: add the missing `Pkg` [compat] entry (Aqua deps_compat extras check) and bump SciMLTesting [compat] to "1.6". Monorepo [sources]/develop wiring is unchanged. Verified on Julia 1.11 against released SciMLTesting 1.6.0: root QA 16/16 pass; each sublibrary's 6 ExplicitImports checks pass. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: drop now-redundant RuntimeGeneratedFunctions.init public-API ignore SciMLTesting 1.7.0 runs the two public-API ExplicitImports checks (check_all_qualified_accesses_are_public / check_all_explicit_imports_are_public) only on Julia >= 1.11, and RuntimeGeneratedFunctions made `init` public (Base.ispublic(RuntimeGeneratedFunctions, :init) === true as of v0.5.21). The `RuntimeGeneratedFunctions.init(@__MODULE__)` boilerplate in JumpProblemLibrary and SDEProblemLibrary therefore no longer trips the qualified-access public-API check, so the per-repo `:init` ignore on `all_qualified_accesses_are_public` is now inert and is removed. Both qa.jl calls reduce to the plain `run_qa(...; explicit_imports = true, aqua_kwargs = ...)` form with no EI ignore-lists. Verified against the registered releases (no dev): - Julia 1.12 (>= 1.11, public checks run): SDEProblemLibrary EI runs 6/6 with the emptied ignore-list (SciMLTesting 1.7.0). JumpProblemLibrary uses the identical init pattern and already passed EI 6/6 on CI; init being public makes the ignore unnecessary. - Julia 1.10 (lts, public checks skipped by 1.7): SDE/Jump EI 4/4, root QA 14/14. SciMLTesting [compat] "1.6" already admits 1.7 (caret), so no compat bump needed. No `if VERSION < v"1.11"` ignore blocks existed to remove. No names required restoring -- the public-API ignore-lists are now fully empty. Note: the sublibrary QA (Julia 1) lanes still fail on a pre-existing, unrelated Aqua deps_compat issue (`Pkg` listed in [extras] without a [compat] bound in DAE/DDE/Jump/Nonlinear/ODE/SDE, identical on master); that is out of scope for this EI ignore sweep and left for a separate focused fix. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: SciMLTesting 1.7 floor + missing Pkg extras compat (green public-API EI) Finish the run_qa/ExplicitImports conversion against the now-released public-API surfaces (SciMLBase 3.27.0, DiffEqBase 7.6.0, ArrayInterface 7.26.0) and SciMLTesting 1.7.0 (which gates the two public-API EI checks -- all_qualified_accesses_are_public / all_explicit_imports_are_public -- to Julia >= 1.11). Compat: - Bump SciMLTesting "1.6" -> "1.7" in the root [compat] and every QA sub-env (root test/qa + all 7 lib/*/test/qa). "1.6" already admits 1.7.0 by caret, but the public-API checks are unconditional in 1.6 and only gained the >= 1.11 gate in 1.7; pinning the floor at 1.7 guarantees the gating version so the LTS (1.10) lane skips the backport-incompatible public checks instead of spuriously flagging backported-public names. QA fix (the QA / Julia 1 reds): - Add the missing `Pkg = "1.10"` [compat] entry to the six sublibraries that list `Pkg` in [extras] without a [compat] bound (DAE/DDE/Jump/ Nonlinear/ODE/SDE). Aqua's deps_compat extras check (Aqua 0.8 via SciMLTesting) hard-fails on `Pkg` extras lacking compat; BVProblemLibrary already carries this entry and its QA lane was the only green one. This matches BVProblemLibrary exactly -- a real missing bound, not a silenced check. No EI ignore-lists, `ei_broken`, or `VERSION < v"1.11"` blocks exist to strip (the qa.jl files were already in the bare run_qa form), and no `DiffEqBase.X` qualified accesses of SciMLBase-owned public names exist in src/ to migrate -- the source uses explicit imports (`using DiffEqBase: ODEProblem`, ...) which pass all_explicit_imports_are_public unchanged. Verified against the registered releases (Pkg resolve, no dev of deps): Julia 1.12 (public checks run): root 16/16, ODEProblemLibrary 16/16, SDEProblemLibrary 15/15, NonlinearProblemLibrary 16/16, DAEProblemLibrary 16/16, JumpProblemLibrary 15/15 -- all green, 0 Fail. Julia 1.10 (public checks skipped by the 1.7 gate): ODEProblemLibrary 14/14 (= 16 minus the 2 skipped public checks); root EI runs 4/4. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: develop qa env [sources] on Julia <1.11 so checks test the working tree The root QA env (test/qa) pins `DiffEqProblemLibrary = {path = "../.."}` in [sources], but on Julia <1.11 Pkg ignores [sources]; `activate_qa_env`'s plain `Pkg.activate` + `Pkg.instantiate` therefore resolved DiffEqProblemLibrary to the registered release v5.2.1 instead of the working copy. The run_qa conversion runs `Aqua.test_all` (which the old qa.jl did not), so its deps_compat extras check ran against the registry Project.toml — which lacks the `Pkg` extras [compat] entry this branch adds — failing the Downgrade Core (lts/1.10) lane while the fix on the branch went unexercised. Develop the qa env's local path [sources] on Julia <1.11 before instantiating, mirroring the existing sublibrary branch in this file, so the QA checks run against the working tree (where `Pkg = "1.10"` is already declared). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> --------- Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent dc06059 commit 80eb18a

31 files changed

Lines changed: 84 additions & 65 deletions

File tree

Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ DDEProblemLibrary = "0.1"
2828
JumpProblemLibrary = "1, 2.0"
2929
NonlinearProblemLibrary = "0.1"
3030
ODEProblemLibrary = "1"
31+
Pkg = "1.10"
3132
SafeTestsets = "0.1"
32-
SciMLTesting = "1"
33+
SciMLTesting = "1.7"
3334
SDEProblemLibrary = "1"
3435
Test = "1.10"
3536
julia = "1.10"

lib/BVProblemLibrary/src/BVProblemLibrary.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module BVProblemLibrary
22

3-
using DiffEqBase, Markdown, SpecialFunctions
3+
using DiffEqBase: DiffEqBase, BVPFunction, BVProblem
4+
using Markdown: Markdown
5+
using SpecialFunctions: SpecialFunctions, erf
46

57
include("linear.jl")
68
include("nonlinear.jl")

lib/BVProblemLibrary/test/qa/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[deps]
22
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
33
BVProblemLibrary = "ded0fc24-dfea-4565-b1d9-79c027d14d84"
4+
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
45
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
56

67
[sources]
@@ -9,5 +10,6 @@ BVProblemLibrary = {path = "../.."}
910
[compat]
1011
Aqua = "0.8"
1112
BVProblemLibrary = "0.1"
13+
SciMLTesting = "1.7"
1214
Test = "1.10"
1315
julia = "1.10"

lib/BVProblemLibrary/test/qa/qa.jl

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
using BVProblemLibrary
2-
using Aqua
1+
using SciMLTesting, BVProblemLibrary, Test
32

4-
@testset "Aqua" begin
5-
Aqua.test_all(BVProblemLibrary; ambiguities = false)
6-
end
3+
run_qa(BVProblemLibrary; explicit_imports = true, aqua_kwargs = (; ambiguities = false))

lib/DAEProblemLibrary/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
99
[compat]
1010
DiffEqBase = "6, 7"
1111
Markdown = "1.10"
12+
Pkg = "1.10"
1213
SafeTestsets = "0.1"
1314
Test = "1.10"
1415
julia = "1.10"

lib/DAEProblemLibrary/src/DAEProblemLibrary.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module DAEProblemLibrary
22

3-
using DiffEqBase, Markdown
3+
using DiffEqBase: DiffEqBase, DAEProblem
4+
using Markdown: Markdown, @doc_str
45

56
#DAE Example Problems
67
export prob_dae_resrob, prob_dae_transamp

lib/DAEProblemLibrary/test/qa/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[deps]
22
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
33
DAEProblemLibrary = "dfb8ca35-80a1-48ba-a605-84916a45b4f8"
4+
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
45
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
56

67
[sources]
@@ -9,5 +10,6 @@ DAEProblemLibrary = {path = "../.."}
910
[compat]
1011
Aqua = "0.8"
1112
DAEProblemLibrary = "0.1"
13+
SciMLTesting = "1.7"
1214
Test = "1.10"
1315
julia = "1.10"
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
using DAEProblemLibrary
2-
using Aqua
1+
using SciMLTesting, DAEProblemLibrary, Test
32

4-
@testset "Aqua" begin
5-
Aqua.test_all(DAEProblemLibrary; ambiguities = false)
6-
end
3+
run_qa(DAEProblemLibrary; explicit_imports = true, aqua_kwargs = (; ambiguities = false))

lib/DDEProblemLibrary/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
77

88
[compat]
99
DiffEqBase = "6, 7"
10+
Pkg = "1.10"
1011
SafeTestsets = "0.1"
1112
Test = "1.10"
1213
julia = "1.10"

lib/DDEProblemLibrary/src/DDEProblemLibrary.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module DDEProblemLibrary
22

3-
using DiffEqBase
3+
using DiffEqBase: DiffEqBase, DDEFunction, DDEProblem, remake
44
# DDE Example Problems
55

66
# examples with constant delays

0 commit comments

Comments
 (0)