Skip to content

QA: run_qa v1.6 form + ExplicitImports#72

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#72
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Ignore until reviewed by @ChrisRackauckas.

Brings the QA group onto SciMLTesting 1.6's run_qa v1.6 form with ExplicitImports enabled, replacing the hand-rolled Aqua.test_all(FastAlmostBandedMatrices; ambiguities = false) in test/qa/qa.jl.

What changed

  • test/qa/qa.jl: now run_qa(FastAlmostBandedMatrices; explicit_imports = true, ...).
  • src/FastAlmostBandedMatrices.jl: two ExplicitImports FIXes (no source-behavior change; Core tests unaffected).
  • test/qa/Project.toml: drop Aqua (the ambiguities child-proc no longer runs, so Aqua need not be a direct dep — run_qa uses SciMLTesting's own Aqua); SciMLTesting compat -> "1.6". SafeTestsets kept because run_tests wraps the group body in @safetestset.

ExplicitImports findings (6 checks)

Check Outcome
no_stale_explicit_imports FIX — removed 4 stale imports: sub_materialize, zero!, _copyto! (ArrayLayouts), bandeddata (BandedMatrices).
all_explicit_imports_via_owners FIXQRPackedQLayout/AdjQRPackedQLayout now imported from owner ArrayLayouts (were from re-export MatrixFactorizations).
all_qualified_accesses_via_owners PASS.
all_explicit_imports_are_public IGNORE — 15 upstream non-public names this package legitimately extends/uses (ArrayLayouts/BandedMatrices/MatrixFactorizations internal QR APIs).
all_qualified_accesses_are_public IGNORE — 9 upstream non-public qualified accesses (Base OneTo/array_summary/dims2string/inds2string/materialize!, LinearAlgebra QRPackedQ, LazyArrays arguments, ArrayInterface fast_scalar_indexing/qr_instance).
no_implicit_imports BROKEN (ei_broken) — 31 names via the heavy using set + @reexport using BandedMatrices; explicit-import refactor deferred. Tracked in #71.

Aqua

aqua_broken = (:ambiguities,) preserves the prior silent ambiguities = false disable as a visible, counted @test_broken placeholder. The 19 ambiguities are all in this package's own ldiv!/__arguments methods. Tracked in #71.

Verification (released SciMLTesting v1.6.0, no dev-from-branch)

Ran the QA group exactly as CI does (GROUP=QA, run_tests()) on Julia 1.10 and 1.11:

Test Summary: | Pass  Broken  Total   Time
QA/qa.jl      |   15       2     17

0 Fail / 0 Error. The 2 Broken are aqua: ambiguities and no_implicit_imports (both -> #71). Core group unaffected (28 pass + 2 pre-existing broken in core_tests.jl, 11 alloc_tests). Runic clean.

🤖 Generated with Claude Code

Bring the QA group onto SciMLTesting 1.6's run_qa with ExplicitImports
enabled, replacing the hand-rolled Aqua.test_all(...; ambiguities=false).

test/qa/qa.jl:
- run_qa(FastAlmostBandedMatrices; explicit_imports = true, ...).
- aqua_broken = (:ambiguities,): preserves the prior `ambiguities = false`
  silent disable as a visible, counted @test_broken placeholder (19 real
  ambiguities in this package's own ldiv!/__arguments). Tracked in SciML#71.
- ei_broken = (:no_implicit_imports,): 31 names used via implicit imports
  through the heavy `using` set + `@reexport using BandedMatrices`; the
  explicit-import refactor is deferred to its own PR. Tracked in SciML#71.
- ei_kwargs ignore-lists for all_explicit_imports_are_public and
  all_qualified_accesses_are_public: upstream non-public names this package
  legitimately extends/uses (ArrayLayouts/BandedMatrices/MatrixFactorizations
  internal QR APIs; Base/LinearAlgebra/LazyArrays/ArrayInterface internals).

src/FastAlmostBandedMatrices.jl (ExplicitImports FIXes -> 0 hard FAIL):
- Remove 4 stale explicit imports (no_stale_explicit_imports): ArrayLayouts
  sub_materialize/zero!/_copyto!, BandedMatrices bandeddata.
- Import QRPackedQLayout/AdjQRPackedQLayout from their owner ArrayLayouts
  instead of re-export MatrixFactorizations (all_explicit_imports_via_owners).

test/qa/Project.toml:
- Drop Aqua: with ambiguities disabled, the Aqua.test_ambiguities child
  process never runs, so Aqua need not be a direct dep (run_qa uses
  SciMLTesting's own Aqua). SafeTestsets kept (run_tests wraps the group body
  in @safetestset).
- SciMLTesting compat -> "1.6".

Verified locally against released SciMLTesting v1.6.0 (Julia 1.10 and 1.11):
QA group 15 Pass / 2 Broken / 0 Fail / 0 Error; Core group unaffected
(28+2 broken core_tests, 11 alloc_tests).

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 b2a78f5 into SciML:main Jun 27, 2026
14 of 15 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