Commit 80eb18a
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
- lib
- BVProblemLibrary
- src
- test/qa
- DAEProblemLibrary
- src
- test/qa
- DDEProblemLibrary
- src
- test/qa
- JumpProblemLibrary
- src
- test/qa
- NonlinearProblemLibrary
- src
- test/qa
- ODEProblemLibrary
- src
- test/qa
- SDEProblemLibrary
- src
- test/qa
- test
- qa
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | | - | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
4 | 6 | | |
5 | 7 | | |
6 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| 13 | + | |
12 | 14 | | |
13 | 15 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
3 | 2 | | |
4 | | - | |
5 | | - | |
6 | | - | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| 13 | + | |
12 | 14 | | |
13 | 15 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
3 | 2 | | |
4 | | - | |
5 | | - | |
6 | | - | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments