Skip to content

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

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports
Jun 27, 2026
Merged

ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Please ignore until reviewed by @ChrisRackauckas.

Converts test/qa/qa.jl from the hand-rolled Aqua.test_all + raw @test_broken form to the SciMLTesting 1.6 run_qa form, with ExplicitImports enabled. Both findings tracked in #36 are now genuinely resolved (FIX, not silence) — there are no remaining @test_broken markers.

ExplicitImports findings (6 checks)

  • no_implicit_imports: FIXED — made the base module's imports explicit:
    • using LinearAlgebra: Hermitian, LowerTriangular, Symmetric, UpperTriangular, ishermitian, issymmetric, istril, istriu, svdvals
    • using SparseArrays: AbstractSparseMatrix, SparseMatrixCSC, nonzeros
    • using ArrayInterface: ArrayInterface
      The extensions only call SparseMatrixIdentification.<helper> and do not rely on LinearAlgebra/SparseArrays names leaking from the base module, so this is safe (verified: full Core suite + extension tests pass).
  • no_stale_explicit_imports, all_explicit_imports_via_owners, all_qualified_accesses_via_owners, all_explicit_imports_are_public: pass clean.
  • all_qualified_accesses_are_public: IGNORE — ArrayInterface.fast_scalar_indexing is non-public (unexported, not declared public) in ArrayInterface 7.25. It is the only non-public name this package accesses; ignored via ei_kwargs.all_qualified_accesses_are_public = (; ignore = (:fast_scalar_indexing,)) (documented; goes away if ArrayInterface makes it public).

Resolves #36

  • Aqua deps_compat (was @test_broken): FIXED by adding LinearAlgebra = "1" and SparseArrays = "1" to the root [compat]. (No Pkg extra exists in this repo, contrary to the issue text, so check_extras already passed.) Now runs as a real passing check.
  • JET (was a hardcoded @test_broken false that never ran JET): runs and passes under the run_qa v1.6 default jet_kwargs (mode = :typo, target_modules = (pkg,)). The earlier "no matching method" reports for the try_* extension helpers were an artifact of target_defined_modules = true; with target_modules = (pkg,) the package is clean.

Deps (test/qa/Project.toml)

  • SciMLTesting compat -> "1.6".
  • Dropped SafeTestsets (unused by qa.jl).
  • ExplicitImports stays transitive via SciMLTesting (not a direct dep).
  • Aqua and JET kept as direct deps (Aqua direct is required for the ambiguities child-process subcheck).

Verification (local, released SciMLTesting 1.6.0)

  • QA group: Quality Assurance | 18 18 — 0 fail / 0 error / 0 broken. Breakdown: 11 Aqua subchecks + 1 JET + 6 ExplicitImports.
  • Core group (Pkg.test GROUP=Core): all subgroups green, including the BandedMatrices/BlockBanded/FastAlmostBanded/SpecialMatrices/Toeplitz extension tests, confirming the explicit-import refactor is behavior-preserving.

🤖 Generated with Claude Code

Convert test/qa/qa.jl from the hand-rolled Aqua/JET form to SciMLTesting
1.6 run_qa with ExplicitImports enabled. Both findings tracked in SciML#36 are
now resolved rather than @test_broken:

- Aqua deps_compat: add [compat] entries for LinearAlgebra and SparseArrays
  (the only missing deps; no Pkg extra exists in this repo). deps_compat now
  passes as a real check.
- JET: report_package/test_package is clean under the run_qa v1.6 default
  jet_kwargs (mode = :typo, target_modules = (pkg,)); the prior SciML#36 reports
  were an artifact of target_defined_modules = true. JET now runs as a real
  passing check (the old qa.jl never actually ran JET).

ExplicitImports (6 checks): made the base module's imports explicit
(using LinearAlgebra: ...; using SparseArrays: ...; using ArrayInterface:
ArrayInterface), clearing no_implicit_imports. The only remaining finding is
ArrayInterface.fast_scalar_indexing, which is non-public in ArrayInterface,
ignored via ei_kwargs.all_qualified_accesses_are_public.

test/qa/Project.toml: SciMLTesting compat -> "1.6"; drop SafeTestsets (unused
by qa.jl); ExplicitImports stays transitive via SciMLTesting. Aqua and JET
kept as direct deps (Aqua for the ambiguities child-process subcheck).

Verified locally against released SciMLTesting 1.6.0: QA group 18/18 pass,
0 fail/error/broken; Core group fully green after the import refactor.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review June 27, 2026 13:06
@ChrisRackauckas
ChrisRackauckas merged commit 8cc1c54 into SciML:main Jun 27, 2026
9 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.

QA: Aqua/JET findings marked @test_broken pending fix

2 participants