Skip to content

QA: run_qa v1.6 form + ExplicitImports#387

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

QA: run_qa v1.6 form + ExplicitImports#387
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:qa/run_qa-v1.6-explicit-imports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Please ignore until reviewed by @ChrisRackauckas.

Brings test/qa onto the SciMLTesting 1.6 run_qa form with ExplicitImports enabled. The two hand-rolled files (aqua_tests.jl, jet_tests.jl) collapse into a single qa.jl.

ExplicitImports findings (6 checks, resolved FIX > IGNORE; 0 hard FAIL/BROKEN)

Fixed (4 checks now pass clean):

  • no_stale_explicit_imports: dropped stale SMatrix (imported, never used).
  • no_implicit_imports: made the 11 implicit LinearAlgebra names explicit — using LinearAlgebra: LinearAlgebra, Adjoint, Cholesky, Diagonal, I, LU, Transpose, UniformScaling, axpby!, axpy!, ldiv!.
  • all_qualified_accesses_via_owners: Broadcast.unaliasBase.unalias (unalias is owned by Base).
  • all_explicit_imports_via_owners: already passing.

Ignored (other packages'/Base internals, all method-extension imports; go public as base libs declare them):

  • all_qualified_accesses_are_public: Base / Base.Broadcast / Base.Iterators internals (@propagate_inbounds, Bottom, BroadcastStyle, Generator, OneTo, ProductIterator, ReshapedArray, axistype, broadcast_unalias, combine_axes, dataids, elsize, maybeview, print_array, print_matrix, to_index, unalias, unsafe_convert), plus non-public names from LinearAlgebra (BlasInt, lutype), Adapt (adapt_storage, adapt_structure), ChainRulesCore (backing), ArrayInterface (indices_do_not_alias, instances_do_not_alias, lu_instance, parent_type), StaticArrayInterface (static_size), Functors (functor). Each ignore is annotated with its source package.
  • all_explicit_imports_are_public: StaticArray from StaticArraysCore (not declared public there yet).

No ei_broken needed — every EI check is FIX or IGNORE.

Aqua / JET

  • Aqua ambiguities and unbound_args stay disabled via aqua_kwargs (real, long-standing findings in the vcat/hcat/getindex/Axis overloads — genuine design realities, not tracked-broken placeholders; preserves the prior Aqua.test_all(..., ambiguities=false, unbound_args=false) behavior).
  • JET runs hard (test_package, clean on Julia 1.10), replacing the prior targeted @report_opt/@report_call set (the whole-package check is broader).

Deps (test/qa/Project.toml)

  • Dropped Aqua (provided transitively by SciMLTesting; the ambiguities child-proc requirement doesn't apply since it's disabled) and the transitive ExplicitImports.
  • Bumped SciMLTesting compat to "1.6".

Verified locally (Julia 1.10, released SciMLTesting 1.6.0, no dev-from-branch)

  • GROUP=QA via run_tests: 16 pass, 0 fail, 0 error, 0 broken.
  • ExplicitImports nested testset: 6/6 pass.
  • GROUP=Core: all files pass (pre-existing @test_broken in broadcasting_tests unchanged), confirming the explicit LinearAlgebra imports and Base.unalias don't change runtime behavior.

🤖 Generated with Claude Code

Convert the hand-rolled test/qa Aqua + JET files to a single qa.jl on the
SciMLTesting 1.6 `run_qa` form, with ExplicitImports enabled.

ExplicitImports findings, resolved FIX > IGNORE:
- no_stale_explicit_imports: drop stale `SMatrix` import.
- no_implicit_imports: make the 11 implicit LinearAlgebra names explicit
  (`using LinearAlgebra: LinearAlgebra, Adjoint, ...`).
- all_qualified_accesses_via_owners: `Broadcast.unalias` -> `Base.unalias`
  (owner is Base).
- all_qualified_accesses_are_public / all_explicit_imports_are_public: ignore
  Base/Base.Broadcast/Base.Iterators internals plus non-public names from
  Adapt/ChainRulesCore/ArrayInterface/StaticArrayInterface/StaticArraysCore/
  Functors/LinearAlgebra (method-extension imports).

Aqua `ambiguities`/`unbound_args` stay disabled as genuine aqua_kwargs (real,
long-standing vcat/hcat/getindex/Axis findings, not tracked-broken). JET runs
hard (test_package clean on 1.10). test/qa/Project.toml: drop Aqua + transitive
ExplicitImports, bump SciMLTesting compat to "1.6".

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:07
@ChrisRackauckas ChrisRackauckas merged commit 69f9f16 into SciML:main Jun 27, 2026
18 of 20 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