QA: run_qa v1.6 form + ExplicitImports#31
Merged
ChrisRackauckas merged 1 commit intoJun 25, 2026
Merged
Conversation
Convert test/qa/qa.jl to the SciMLTesting 1.6 `run_qa` form with
ExplicitImports enabled:
using SciMLTesting, SparseBandedMatrices, JET, Test
run_qa(SparseBandedMatrices; explicit_imports = true)
This replaces the hand-rolled Aqua + bespoke JET (`report_call`/`report_opt`)
qa.jl. Aqua now runs `test_all` with full defaults (the previous
`ambiguities = (recursive = false,)` tweak was a no-op here -- `test_all`
passes with defaults), JET runs the canonical `test_package`
(`mode = :typo`), and the six ExplicitImports checks are enabled.
ExplicitImports findings (all resolved by FIX, none ignored/broken):
`check_no_implicit_imports` flagged LinearAlgebra (`LinearAlgebra`, `I`,
`mul!`) and PrecompileTools (`PrecompileTools`, `@setup_workload`,
`@compile_workload`) as implicit imports. Made the imports explicit:
import LinearAlgebra: mul!
using .Threads: @threads
using PrecompileTools: @setup_workload, @compile_workload
`mul!` is now extended via the bare imported name; the `I` flag was a
false positive (a varargs parameter, not LinearAlgebra.I) that disappears
once the blanket `using LinearAlgebra` is gone. All 6 EI checks pass.
Deps:
- test/qa/Project.toml: SciMLTesting compat floor -> "1.6"; drop the now
unused LinearAlgebra dep (qa.jl no longer uses it). ExplicitImports stays
transitive via SciMLTesting (not added). Aqua/JET/SafeTestsets kept
(Aqua's ambiguities child-proc + JET + the @safetestset harness need them).
- Project.toml: bump PrecompileTools compat floor "1" -> "1.1". Because the
package now explicit-imports only PrecompileTools' macros, the macro
expansion references the bare `PrecompileTools` module name, which is
undefined under 1.0 (UndefVarError on load); 1.1 is the first
self-contained-macro release. Verified the package loads at the 1.1 floor.
Verified locally vs released SciMLTesting 1.6.0 (Julia 1.10): QA group 18/18
pass (Aqua 11, JET 1, ExplicitImports 6), Core group 41/41 pass, 0
FAIL/ERROR/BROKEN.
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.jlto the SciMLTesting 1.6run_qaform with ExplicitImports enabled:This replaces the hand-rolled Aqua + bespoke JET (
report_call/report_opt) qa.jl. Aqua now runstest_allwith full defaults (the previousambiguities = (recursive = false,)tweak was a no-op here —test_allpasses with defaults), JET runs the canonicaltest_package(mode = :typo), and the six ExplicitImports checks are enabled.ExplicitImports findings (all resolved by FIX; nothing ignored or marked broken)
check_no_implicit_importsflagged LinearAlgebra (LinearAlgebra,I,mul!) and PrecompileTools (PrecompileTools,@setup_workload,@compile_workload). Made the imports explicit insrc/:mul!is now extended via the bare imported name (wasLinearAlgebra.mul!).Iflag was a false positive — it is the varargs parameterI::Int...ingetindex/setindex!, notLinearAlgebra.I. It disappears once the blanketusing LinearAlgebrais gone.ei_kwargsignores and noei_brokenentries are needed.No
aqua_broken/jet_broken/ei_brokenmarkers (none were present before, and nothing newly fails).Deps
test/qa/Project.toml: SciMLTesting compat floor1→1.6; dropped the now-unusedLinearAlgebradep (qa.jl no longer uses it). ExplicitImports stays transitive via SciMLTesting (not added). Aqua / JET / SafeTestsets kept (Aqua's ambiguities child-process + JET + the@safetestsetharness need them resolvable in the env).Project.toml: bump PrecompileTools compat floor1→1.1. Because the package now explicit-imports only PrecompileTools' macros, the macro expansion references the barePrecompileToolsmodule name, which is undefined under 1.0 (UndefVarErroron load) — verified by pinning 1.0.0. 1.1 is the first self-contained-macro release; verified the package loads at the 1.1 floor.Verification (local, Julia 1.10, released SciMLTesting 1.6.0)
mul!extension change is behavior-preserving.🤖 Generated with Claude Code