Skip to content

QA: run_qa v1.6 form + ExplicitImports#90

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

QA: run_qa v1.6 form + ExplicitImports#90
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v16-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.

What changed

  • test/qa/qa.jl (new): run_qa(FindFirstFunctions; explicit_imports = true, ei_kwargs = ...). One call now runs:
    • Aqua.test_all (defaults; 11 checks, including ambiguities — the old block ran recursive = false, but the default recursion also passes clean),
    • the package-wide JET pass (JET.test_package, enabled by using JET; JET.report_package returns 0 reports so mode = :typo is clean),
    • all six ExplicitImports checks.
  • test/qa/static_analysis_tests.jl (renamed from qa_tests.jl): keeps the granular JET report_call hot-path type-stability checks and the AllocCheck zero-allocation assertions. run_qa's package-wide JET pass does not cover specific call signatures or allocations, so these stay as genuine extra coverage. Still in the QA folder, so run_tests() runs them.
  • test/qa/Project.toml: drop ExplicitImports (transitive via SciMLTesting); keep Aqua (the ambiguities sub-check's child process needs Aqua as a direct dep), JET, AllocCheck; bump SciMLTesting compat to 1.6; add Test compat.

ExplicitImports findings

Check Result
no_implicit_imports pass
no_stale_explicit_imports pass
all_explicit_imports_via_owners pass
all_qualified_accesses_via_owners pass
all_explicit_imports_are_public pass
all_qualified_accesses_are_public ignore (6 Base internals)

The only finding is all_qualified_accesses_are_public: six Base internals accessed by qualification — GC.@preserve, Base.@propagate_inbounds, Base.Order, Base.RefValue, Base.libllvm_version, Base.llvmcall. None are public API and none have a public replacement, so they are ignored via ei_kwargs (source pkg: Base). No aqua_broken / jet_broken / ei_broken needed — nothing is known-broken.

Verification

Run locally against released SciMLTesting 1.6.0 on Julia 1.10 (lts), 1.11, and 1.12, via the run_tests() folder model with GROUP=QA:

  • QA/qa.jl — 18/18 Pass
  • QA/static_analysis_tests.jl — 34/34 Pass
  • 0 Fail / 0 Error / 0 Broken on every version.

🤖 Generated with Claude Code

Convert the hand-rolled test/qa Aqua + ExplicitImports + JET block onto the
SciMLTesting 1.6 run_qa form with ExplicitImports enabled.

- qa.jl: `run_qa(FindFirstFunctions; explicit_imports = true, ...)` folds the
  Aqua.test_all checks, the package-wide JET pass (JET.test_package via
  `using JET`), and all six ExplicitImports checks into one call. Aqua.test_all
  with defaults passes (11/11), including the ambiguities check the old block
  ran with recursive=false; JET.report_package returns 0 reports so the standard
  test_package mode is clean. No aqua_broken / jet_broken / ei_broken needed.
- ExplicitImports: the only finding is all_qualified_accesses_are_public, six
  Base internals accessed by qualification (GC.@preserve,
  Base.@propagate_inbounds, Base.Order, Base.RefValue, Base.libllvm_version,
  Base.llvmcall). Not public API and no public replacement, so ignored via
  ei_kwargs (source pkg: Base). The other five EI checks pass clean.
- static_analysis_tests.jl: the existing granular JET report_call hot-path
  type-stability checks and the AllocCheck zero-allocation assertions are kept
  (run_qa's package-wide JET pass does not cover specific call signatures or
  allocations). Still in the QA group folder, so run_tests runs them.
- test/qa/Project.toml: drop ExplicitImports (transitive via SciMLTesting); keep
  Aqua (the ambiguities sub-check's child process needs Aqua a direct dep), JET,
  AllocCheck; bump SciMLTesting compat to 1.6; add Test compat.

Verified locally vs released SciMLTesting 1.6.0 on Julia 1.10 (lts), 1.11, and
1.12: QA/qa.jl 18/18 + QA/static_analysis_tests.jl 34/34, 0 Fail/Error/Broken.

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:05
@ChrisRackauckas ChrisRackauckas merged commit a632503 into SciML:main Jun 27, 2026
22 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