Skip to content

Commit f964ecd

Browse files
ChrisRackauckas-ClaudeChrisRackauckasclaude
authored
QA: run_qa v1.6 form + ExplicitImports (#96)
* QA: run_qa v1.6 form + ExplicitImports Convert the hand-rolled test/qa/qa.jl to the SciMLTesting 1.6 run_qa form and enable the ExplicitImports check group. - qa.jl: replace the manual Aqua/JET testset (which carried two @test_broken placeholders) with run_qa(FiniteVolumeMethod1D; explicit_imports = true, ...). - The Aqua deps_compat finding (#84) is fixed at the source rather than marked broken: add SparseArrays = "1" to the root [compat]. Aqua test_all (incl. deps_compat) now passes. - The JET finding (#84) does not reproduce under run_qa's canonical config (mode = :typo, target_modules = (FiniteVolumeMethod1D,)); the original 4 reports were artifacts of target_defined_modules = true. JET.test_package now runs and passes, so no jet_broken is needed. - ExplicitImports: all six checks run. Four pass clean; two non-public names from other packages are ignored until they go public: all_qualified_accesses_are_public ignores AutoSpecialize (SciMLBase) and init (CommonSolve); all_explicit_imports_are_public ignores solve (CommonSolve, re-exported). All ignores are other-package non-public names, documented inline with their source package. - Drop ExplicitImports from the root [extras]/[targets].test and the test/ env, and remove the legacy test/explicit_imports.jl (its two checks are subsumed by the QA group's six). ExplicitImports is now a transitive dep via SciMLTesting. - test/qa/Project.toml: bump SciMLTesting compat to "1.6"; keep SafeTestsets (the folder-model @safetestset wrapper needs it as a direct dep of the group env) and Aqua/JET. Verified locally on Julia 1.10 against released SciMLTesting 1.6.0 via GROUP=QA runtests.jl: QA/qa.jl 18/18 pass, 0 fail/error/broken. Closes #84. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: drop now-public EI ignores (SciMLTesting 1.7 + base-lib public APIs) SciMLTesting 1.7.0 runs the two public-API ExplicitImports checks (check_all_qualified_accesses_are_public and check_all_explicit_imports_are_public) only on Julia >= 1.11 and skips them on the lts. Combined with the base-lib public-API releases (SciMLBase 3.24.0, CommonSolve 0.2.9), the per-repo public-API ignore entries this PR carried are now redundant. Empty both public-API ignore-lists in test/qa/qa.jl: the previously ignored AutoSpecialize (SciMLBase), init (CommonSolve), and solve (CommonSolve) are all recognized as public on the registered releases, so run_qa(...; explicit_imports = true) passes with no ei_kwargs at all. Verified against registered releases (no dev of base libs; FVM dev'd from this working tree): - Julia 1.12 (public-API checks RUN): QA group 18/18 pass, 0 fail/ error/broken; resolved SciMLTesting 1.7.0, SciMLBase 3.24.0, CommonSolve 0.2.9, ExplicitImports 1.15.0. - Julia 1.10 lts (public-API checks skipped by SciMLTesting 1.7): QA group 16/16 pass, 0 fail/error/broken. No names needed restoring; the ignore-lists are now empty. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: pin SciMLTesting compat floor to 1.7 (public-API EI gate) The two public-API ExplicitImports checks (check_all_qualified_accesses_are_public, check_all_explicit_imports_are_public) are gated to Julia >= 1.11 only from SciMLTesting 1.7.0. With the now-empty public-API ignore-lists in qa.jl, the QA group relies on that gate so the LTS (1.10) does not spuriously flag public-backported names. Raise the qa-env compat floor from "1.6" to "1.7" so the resolved SciMLTesting always carries the gate. Verified against registered releases (FVM dev'd via [sources], no dev of base libs): - Julia 1.12 (public-API checks RUN, no ignores): QA group 18/18 pass, 0 fail/error/broken. Resolved SciMLBase 3.27.0, SciMLTesting 1.7.0, CommonSolve 0.2.9, ExplicitImports 1.15.0, JET 0.11.5, Aqua 0.8.16. - Julia 1.10 lts (public-API checks skipped by the 1.7 gate): QA group 16/16 pass, 0 fail/error/broken (the 2-test delta is exactly the two gated public-API checks). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Chris Rackauckas <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 7b318c6 commit f964ecd

6 files changed

Lines changed: 9 additions & 29 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/Manifest.toml
22
/test/Manifest.toml
3+
/test/qa/Manifest.toml
34
/docs/build/

Project.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@ SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
1111

1212
[compat]
1313
CommonSolve = "0.2"
14-
ExplicitImports = "1"
1514
PrecompileTools = "1"
1615
SciMLBase = "2.146, 3.1"
16+
SparseArrays = "1"
1717
Test = "1"
1818
julia = "1.10"
1919

2020
[extras]
21-
ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7"
2221
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
2322

2423
[targets]
25-
test = ["ExplicitImports", "Test"]
24+
test = ["Test"]

test/Project.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[deps]
22
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
33
DomainSets = "5b8099bc-c8ec-5219-889f-1d9e522a28bf"
4-
ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7"
54
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
65
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
76
MethodOfLines = "94925ecb-adb7-4558-8ed8-f975c56a0bf4"

test/explicit_imports.jl

Lines changed: 0 additions & 6 deletions
This file was deleted.

test/qa/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ FiniteVolumeMethod1D = {path = "../.."}
1313
Aqua = "0.8"
1414
JET = "0.9,0.10,0.11"
1515
SafeTestsets = "0.0.1, 0.1"
16-
SciMLTesting = "1"
16+
SciMLTesting = "1.7"
1717
Test = "1"
1818
julia = "1.10"

test/qa/qa.jl

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,7 @@
1-
using FiniteVolumeMethod1D
2-
using Aqua
1+
using SciMLTesting, FiniteVolumeMethod1D, Test
32
using JET
4-
using Test
53

6-
@testset "Quality Assurance" begin
7-
@testset "Aqua" begin
8-
# All Aqua sub-checks pass except deps_compat, which is marked broken below.
9-
Aqua.test_all(FiniteVolumeMethod1D; deps_compat = false)
10-
# deps_compat fails: SparseArrays is a dep with no [compat] entry.
11-
# See https://github.com/SciML/FiniteVolumeMethod1D.jl/issues/84
12-
@test_broken false # Aqua deps_compat: SparseArrays missing [compat] — see #84
13-
end
14-
@testset "JET" begin
15-
# JET.report_package reports 4 possible errors (Dirichlet/Neumann kwdef
16-
# inner ctors and CommonSolve.init on the constructed ODEProblem).
17-
# See https://github.com/SciML/FiniteVolumeMethod1D.jl/issues/84
18-
@test_broken false # JET: report_package errors — see #84
19-
end
20-
end
4+
run_qa(
5+
FiniteVolumeMethod1D;
6+
explicit_imports = true,
7+
)

0 commit comments

Comments
 (0)