QA: run_qa v1.6 form + ExplicitImports - #147
Merged
ChrisRackauckas merged 4 commits intoJul 3, 2026
Merged
Conversation
Convert the hand-rolled test/qa/qa.jl (Aqua.test_all + a JET report-count check) to the SciMLTesting 1.6 run_qa form with ExplicitImports enabled. - qa.jl: single run_qa(MultiScaleArrays; explicit_imports = true, ...) call. Aqua + ExplicitImports come from SciMLTesting's own deps; JET is opted in via `using JET`. The two tracked-broken Aqua sub-checks (ambiguities, deps_compat; SciML#142) are preserved via aqua_broken, which disables them in Aqua.test_all and emits @test_broken placeholders. JET stays a hard check (the prior alg_needs_extra_process finding no longer fires). - ExplicitImports findings resolved (preference FIX > IGNORE > BROKEN, 0 hard FAILs): * no_stale_explicit_imports: FIXED — dropped unused Base imports `/`, print_matrix, vec from src/MultiScaleArrays.jl. * no_implicit_imports: FIXED — made the 7 implicit imports explicit (using DiffEqBase: DiffEqBase; using LinearAlgebra: LinearAlgebra, ldiv!; using FiniteDiff: FiniteDiff; using Statistics: Statistics; using SciMLBase: full_cache, rand_cache). * all_explicit_imports_via_owners: passes. * all_qualified_accesses_via_owners / all_qualified_accesses_are_public / all_explicit_imports_are_public: IGNORED other packages' non-owner / non-public names via ei_kwargs (Base.Broadcast, DiffEqBase re-exports of SciMLBase, ForwardDiff, FiniteDiff, OrdinaryDiffEq* caches, RAT.chain), each grouped by source package. - test/qa/Project.toml: SciMLTesting compat -> "1.6"; dropped ExplicitImports (transitive), Aqua (ambiguities is disabled so the child-proc isn't needed; Aqua still loads transitively via SciMLTesting), SafeTestsets and Test (transitive / stdlib). Keep JET (opted in). - Project.toml: SciMLTesting compat -> "1.6". Verified locally against released SciMLTesting 1.6.0 (Pkg resolves it; no dev-from-branch). QA group: 13 Pass, 2 Broken, 0 Fail/Error on both Julia 1.10 (lts) and 1.11 (the "1" lane). Core group passes on 1.10 (import changes are behavior-preserving). Ignore until reviewed by @ChrisRackauckas. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ChrisRackauckas-Claude
marked this pull request as ready for review
June 27, 2026 20:59
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
… ignores Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
…non-public re-exports) Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.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.
Ignore until reviewed by @ChrisRackauckas.
Brings this repo's QA group onto the SciMLTesting 1.6
run_qaform with ExplicitImports enabled. Converts the hand-rolledtest/qa/qa.jl(manualAqua.test_all+ a JET report-count check) into a single declarativerun_qa(...)call.qa.jl
using JET.ambiguities,deps_compat; QA: Aqua/JET findings marked @test_broken pending fix #142) are preserved viaaqua_broken— they are disabled inAqua.test_alland emit@test_brokenplaceholders. No tracked-broken finding is lost.alg_needs_extra_processfinding no longer fires, so JET passes (jet_brokennot used).ExplicitImports findings (preference FIX > IGNORE > BROKEN; 0 hard FAILs)
Baseimports/,print_matrix,vec(no method definitions for them; provably stale).using DiffEqBase: DiffEqBase,using LinearAlgebra: LinearAlgebra, ldiv!,using FiniteDiff: FiniteDiff,using Statistics: Statistics,using SciMLBase: full_cache, rand_cache(full_cache/rand_cacheare owned + exported by SciMLBase, so imported from the owner).ei_kwargs. These are other packages' non-owner / non-public names that become public as base libraries declarepublic. Grouped by source:Base.Broadcast(AbstractArrayStyle, Broadcasted, DefaultArrayStyle, _broadcast_getindex_eltype), DiffEqBase re-exports of SciMLBase (AbstractODEIntegrator, AbstractSDEIntegrator, DEIntegrator, is_diagonal_noise), ForwardDiff (DerivativeConfig, Dual, Tag), FiniteDiff (GradientCache, JacobianCache), OrdinaryDiffEqCore/Rosenbrock cache types, OrdinaryDiffEqDifferentiation (resize_grad_config!, resize_jac_config!),Base(tail, typename), RecursiveArrayTools (chain).Deps
test/qa/Project.toml:SciMLTestingcompat →"1.6"; droppedExplicitImports(transitive via SciMLTesting),Aqua(ambiguitiesdisabled so the Aqua child-proc isn't needed; Aqua still loads transitively),SafeTestsetsandTest(transitive / stdlib). KeptJET.Project.toml:SciMLTestingcompat →"1.6".Verified locally (released SciMLTesting 1.6.0, Pkg-resolved; no dev-from-branch)
13 Pass, 2 Broken, 0 Fail/Error13 Pass, 2 Broken, 0 Fail/ErrorThe 2 Broken are the
aqua_brokenplaceholders for ambiguities + deps_compat (tracked in #142).🤖 Generated with Claude Code