Skip to content

QA: run_qa v1.6 form + ExplicitImports - #147

Merged
ChrisRackauckas merged 4 commits into
SciML:masterfrom
ChrisRackauckas-Claude:qa-run_qa-v16-explicitimports
Jul 3, 2026
Merged

QA: run_qa v1.6 form + ExplicitImports#147
ChrisRackauckas merged 4 commits into
SciML:masterfrom
ChrisRackauckas-Claude:qa-run_qa-v16-explicitimports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore until reviewed by @ChrisRackauckas.

Brings this repo's QA group onto the SciMLTesting 1.6 run_qa form with ExplicitImports enabled. Converts the hand-rolled test/qa/qa.jl (manual Aqua.test_all + a JET report-count check) into a single declarative run_qa(...) call.

qa.jl

using SciMLTesting, MultiScaleArrays, JET
using Test
run_qa(MultiScaleArrays; explicit_imports = true,
    aqua_broken = (:ambiguities, :deps_compat),
    ei_kwargs = (; ...per-check ignore-lists...))
  • Aqua + ExplicitImports come from SciMLTesting's own deps (not threaded in / not listed as test deps); JET is opted in via using JET.
  • The two tracked-broken Aqua sub-checks (ambiguities, deps_compat; QA: Aqua/JET findings marked @test_broken pending fix #142) are preserved via aqua_broken — they are disabled in Aqua.test_all and emit @test_broken placeholders. No tracked-broken finding is lost.
  • JET stays a hard check: the prior alg_needs_extra_process finding no longer fires, so JET passes (jet_broken not used).

ExplicitImports findings (preference FIX > IGNORE > BROKEN; 0 hard FAILs)

  • no_stale_explicit_imports — FIXED: dropped unused Base imports /, print_matrix, vec (no method definitions for them; provably stale).
  • 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 (full_cache/rand_cache are owned + exported by SciMLBase, so imported from the owner).
  • all_explicit_imports_via_owners — passes.
  • all_qualified_accesses_via_owners / all_qualified_accesses_are_public / all_explicit_imports_are_public — IGNORED via ei_kwargs. These are other packages' non-owner / non-public names that become public as base libraries declare public. 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: SciMLTesting compat → "1.6"; dropped ExplicitImports (transitive via SciMLTesting), Aqua (ambiguities disabled so the Aqua child-proc isn't needed; Aqua still loads transitively), SafeTestsets and Test (transitive / stdlib). Kept JET.
  • root Project.toml: SciMLTesting compat → "1.6".

Verified locally (released SciMLTesting 1.6.0, Pkg-resolved; no dev-from-branch)

  • QA group lts (1.10): 13 Pass, 2 Broken, 0 Fail/Error
  • QA group "1" (1.11): 13 Pass, 2 Broken, 0 Fail/Error
  • Core group (1.10): passes (import changes are behavior-preserving)

The 2 Broken are the aqua_broken placeholders for ambiguities + deps_compat (tracked in #142).

🤖 Generated with Claude Code

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
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>
@ChrisRackauckas
ChrisRackauckas merged commit af02d98 into SciML:master Jul 3, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants