QA: run_qa v1.6 form + ExplicitImports#182
Merged
ChrisRackauckas merged 1 commit intoJun 27, 2026
Merged
Conversation
Convert the hand-rolled Aqua/ExplicitImports body in test/qa/qa.jl to the
SciMLTesting 1.6 run_qa form and turn on the full ExplicitImports suite.
- qa.jl: single run_qa(Static; ...) call. Aqua.test_all replaces the
per-sub-check calls; ambiguities recursive=false preserved via aqua_kwargs;
the test_piracies(broken=true) finding becomes aqua_broken=(:piracies,)
(Base.promote_shape overload on Tuple{Vararg{Union{Int,StaticInt}}}, tracked
in SciML#181 — the prior piracy issue SciML#162 was a different, now-resolved method).
- explicit_imports=true enables all six EI checks (was two). Four pass bare;
all_qualified_accesses_are_public ignores 22 Base/Base.Broadcast/
Base.IteratorsMD internals, all_explicit_imports_are_public ignores
IfElse.ifelse — other packages' not-yet-public names, documented per ignore.
- test/qa/Project.toml: drop ExplicitImports + SafeTestsets (both transitive
via SciMLTesting); keep Aqua direct (ambiguities child-proc needs it);
SciMLTesting compat -> "1.6".
Verified locally against released SciMLTesting 1.6.0 (Julia 1.10 and 1.12),
develop-by-path so the master axistype fix (SciML#180) is in scope: 16 Pass,
1 Broken (piracies), 0 Fail, 0 Error; ExplicitImports 6/6 pass.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Please ignore until reviewed by @ChrisRackauckas.
Converts
test/qa/qa.jlfrom the hand-rolled Aqua + ExplicitImports body to the SciMLTesting 1.6run_qaform and enables the full ExplicitImports suite (explicit_imports = true).qa.jl
run_qa(Static; ...)call.Aqua.test_allreplaces the eight per-sub-check calls (find_persistent_tasks_deps,test_ambiguities,test_deps_compat,test_piracies,test_project_extras,test_stale_deps,test_unbound_args,test_undefined_exports— all covered bytest_all).Aqua.test_ambiguities(..., recursive = false)preserved viaaqua_kwargs = (; ambiguities = (; recursive = false)).Aqua.test_piracies(..., broken = true)mapped toaqua_broken = (:piracies,)(disables the sub-check intest_all+ emits a tracked@test_brokenplaceholder).ExplicitImports findings (now all six checks run)
Previously only
no_implicit_imports+no_stale_explicit_importsran. Enabling all six:no_implicit_imports,no_stale_explicit_imports,all_explicit_imports_via_owners,all_qualified_accesses_via_owners.all_qualified_accesses_are_public: 22Base/Base.Broadcast/Base.IteratorsMDinternals (@propagate_inbounds,tail,OneTo,axistype,to_index, ...). Ignore until Base declares them public.all_explicit_imports_are_public:IfElse.ifelse(exported-but-not-public by IfElse.jl, whose sole purpose is that name).@test_broken.Aqua broken
piracies:Base.promote_shapeoverload onTuple{Vararg{Union{Int,StaticInt}}}subsumes plainTuple{Vararg{Int}}— genuine Base piracy. Tracked in QA: Aqua piracies finding — Base.promote_shape overload on Tuple{Vararg{Union{Int,StaticInt}}} #181. (The earlier piracy issue piracy inBase.allandBase.any#162,Base.all/Base.any, was a different, now-resolved method; QA: Aqua piracies finding — Base.promote_shape overload on Tuple{Vararg{Union{Int,StaticInt}}} #181 is the remaining one.)Deps (test/qa/Project.toml)
ExplicitImportsandSafeTestsets(both transitive via SciMLTesting).Aquadirect (the ambiguities child-process needs it as a direct dep).SciMLTestingcompat ->"1.6". No JET (it was not run before).Verification
Run locally against released SciMLTesting 1.6.0 (Pkg resolves 1.6.0; develop-by-path so master's #180 axistype fix is in scope), Julia 1.10 and 1.12:
ExplicitImports nested set: 6/6 pass. 0 Fail / 0 Error; the single Broken is the tracked
aqua: piraciesplaceholder.🤖 Generated with Claude Code