From dc66b50b378b1938f8c36effdac52165145a2702 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Thu, 25 Jun 2026 07:47:02 -0400 Subject: [PATCH 1/2] QA: run_qa v1.6 form + ExplicitImports Replace the hand-rolled test/qa/explicit_imports_test.jl (which ran only check_no_implicit_imports + check_no_stale_explicit_imports) with a SciMLTesting run_qa v1.6 qa.jl that runs Aqua (all sub-checks) plus the full ExplicitImports suite (explicit_imports = true). All six ExplicitImports checks and all Aqua sub-checks pass (17/17). The two *_are_public checks only flagged non-public names owned by other packages (SciMLBase, ADTypes, CommonSolve, Base), so those are ignored via ei_kwargs with the source package documented per name; nothing is broken or skipped. qa env (test/qa/Project.toml): drop the now-transitive ExplicitImports (comes via SciMLTesting); keep Aqua as a direct dep so the ambiguities sub-check's child process can load it; SciMLTesting compat -> 1.6. No JET (none was run). Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- test/qa/Project.toml | 8 +++----- test/qa/explicit_imports_test.jl | 6 ------ test/qa/qa.jl | 22 ++++++++++++++++++++++ 3 files changed, 25 insertions(+), 11 deletions(-) delete mode 100644 test/qa/explicit_imports_test.jl create mode 100644 test/qa/qa.jl diff --git a/test/qa/Project.toml b/test/qa/Project.toml index 6615219..97f95df 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -1,7 +1,6 @@ [deps] -ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7" +Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" LineSearch = "87fe0de2-c867-4266-b59a-2f0a94fc965b" -SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" @@ -9,7 +8,6 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" LineSearch = {path = "../.."} [compat] -ExplicitImports = "1.14.0" -SafeTestsets = "0.1, 1" -SciMLTesting = "1" +Aqua = "0.8" +SciMLTesting = "1.6" Test = "1.10" diff --git a/test/qa/explicit_imports_test.jl b/test/qa/explicit_imports_test.jl deleted file mode 100644 index 0e261e4..0000000 --- a/test/qa/explicit_imports_test.jl +++ /dev/null @@ -1,6 +0,0 @@ -using ExplicitImports, LineSearch, Test - -@testset "Explicit Imports" begin - @test check_no_implicit_imports(LineSearch) === nothing - @test check_no_stale_explicit_imports(LineSearch) === nothing -end diff --git a/test/qa/qa.jl b/test/qa/qa.jl new file mode 100644 index 0000000..c7d99de --- /dev/null +++ b/test/qa/qa.jl @@ -0,0 +1,22 @@ +using SciMLTesting, LineSearch, Test + +run_qa( + LineSearch; + explicit_imports = true, + ei_kwargs = (; + all_qualified_accesses_are_public = (; + ignore = ( + :Failure, :Success, :T, # SciMLBase.ReturnCode (not public) + :NLStats, :has_jac, :has_jvp, :has_vjp, # SciMLBase (not public) + :ForwardMode, :mode, # ADTypes (not public) + :init, :solve!, # CommonSolve (not public) + :get_extension, # Base (not public) + ), + ), + all_explicit_imports_are_public = (; + ignore = ( + :AbstractNonlinearProblem, # SciMLBase (not public) + ), + ), + ) +) From fe92a538d197b274abe76c376c11aaccfa9e2c86 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Fri, 26 Jun 2026 15:39:39 -0400 Subject: [PATCH 2/2] QA: drop redundant public-API EI ignores (SciMLTesting 1.7 + released base libs) 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 the released base libs (SciMLBase 3.24.0, CommonSolve 0.2.9, ADTypes 1.22.x) now declare the previously-internal names public. Both per-repo public-API ignore-lists are therefore redundant and emptied; the qa.jl call collapses to the bare run_qa(LineSearch; explicit_imports = true). Verified against registered releases: * Julia 1.12 (public checks run): QA 17/17 pass with empty ignore lists; isolated check_all_qualified_accesses_are_public and check_all_explicit_imports_are_public both return nothing. * Julia 1.10 LTS (public checks skipped): QA 15/15 pass, 0 fail. No names needed restoring -- every formerly-ignored name (SciMLBase Failure/Success/T/NLStats/has_jac/has_jvp/has_vjp/AbstractNonlinearProblem, ADTypes ForwardMode/mode, CommonSolve init/solve!, Base get_extension) is now public. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- test/qa/qa.jl | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/test/qa/qa.jl b/test/qa/qa.jl index c7d99de..501aa15 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,22 +1,3 @@ using SciMLTesting, LineSearch, Test -run_qa( - LineSearch; - explicit_imports = true, - ei_kwargs = (; - all_qualified_accesses_are_public = (; - ignore = ( - :Failure, :Success, :T, # SciMLBase.ReturnCode (not public) - :NLStats, :has_jac, :has_jvp, :has_vjp, # SciMLBase (not public) - :ForwardMode, :mode, # ADTypes (not public) - :init, :solve!, # CommonSolve (not public) - :get_extension, # Base (not public) - ), - ), - all_explicit_imports_are_public = (; - ignore = ( - :AbstractNonlinearProblem, # SciMLBase (not public) - ), - ), - ) -) +run_qa(LineSearch; explicit_imports = true)