Skip to content

QA: run_qa v1.6 form + ExplicitImports#231

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#231
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 this repo's QA group onto the SciMLTesting 1.6 run_qa form with ExplicitImports enabled (all 6 checks).

What changed

  • Consolidated the hand-rolled test/qa/{aqua,jet,explicitimports}_tests.jl into a single test/qa/qa.jl using run_qa(RootedTrees; explicit_imports = true, ...).
  • test/qa/Project.toml: dropped ExplicitImports (transitive via SciMLTesting), bumped SciMLTesting compat to "1.6". Kept Aqua direct (the ambiguities sub-check's child process needs Aqua as a direct dep) and JET.

ExplicitImports findings

The hand-rolled explicitimports_tests.jl only ran 2 of the 6 checks (no_implicit_imports, no_stale_explicit_imports). Enabling the full set surfaced:

  • all_qualified_accesses_via_owners + all_qualified_accesses_are_public flagged Latexify.LaTeXString in src/latexify.jl:90LaTeXString's owner is LaTeXStrings (re-exported by Latexify). FIXED: access it as LaTeXStrings.LaTeXString (LaTeXStrings is already a direct dep; LaTeXString is exported/public there). Added the LaTeXStrings module binding to the existing using LaTeXStrings: latexstring import. Verified the @latexrecipe path still returns a LaTeXStrings.LaTeXString with identical output.
  • all_qualified_accesses_are_public still flags 5 Base internals with no public equivalent, accessed qualified — Base.IteratorSize/HasLength/SizeUnknown (the canonical iterator-trait interface), Base.Iterators.filter, Base.Threads.resize_nthreads!. These are ignored via ei_kwargs (documented inline).
  • The other 4 checks (no_implicit_imports, no_stale_explicit_imports, all_explicit_imports_via_owners, all_explicit_imports_are_public) pass clean — no stale imports, no ei_broken needed.

Aqua / JET

  • Aqua kwargs preserved verbatim: ambiguities = (; exclude = [getindex]), stale_deps = (; ignore = [:Requires]).
  • JET kept as a hard check (no jet_broken). run_qa's default JET.test_package(mode = :typo, target_modules = (RootedTrees,)) passes on both LTS and 1.12. report_package (full mode) surfaces 3 union-split/extension-stub artifacts on 1.12 only; mode = :typo correctly does not treat those as failures, matching the intent of the old curated @test_opt set.

Verification (vs released SciMLTesting 1.6.0, no dev-from-branch)

QA group via GROUP=QA folder-discovery (run_tests()):

  • Julia 1.10 (lts): QA/qa.jl | 18 18 — 0 fail / 0 error / 0 broken
  • Julia 1.12 (1): QA/qa.jl | 18 18 — 0 fail / 0 error / 0 broken

🤖 Generated with Claude Code

Consolidate the hand-rolled test/qa/{aqua,jet,explicitimports}_tests.jl into a
single test/qa/qa.jl on the SciMLTesting 1.6 run_qa form, with ExplicitImports
enabled (all 6 checks).

ExplicitImports findings:
- all_qualified_accesses_via_owners + all_qualified_accesses_are_public both
  flagged Latexify.LaTeXString (owner is LaTeXStrings, re-exported by Latexify).
  FIXED in src: access it as LaTeXStrings.LaTeXString (LaTeXStrings is already a
  direct dep; LaTeXString is exported/public there). Adds the LaTeXStrings module
  to the existing `using LaTeXStrings: latexstring` import for the qualified access.
- all_qualified_accesses_are_public still flags 5 Base internals with no public
  equivalent, accessed qualified: Base.IteratorSize/HasLength/SizeUnknown (the
  iterator-trait interface), Base.Iterators.filter, Base.Threads.resize_nthreads!.
  Ignored via ei_kwargs.
- The other 4 checks pass clean.

Aqua kwargs preserved verbatim (ambiguities exclude getindex, stale_deps ignore
Requires). JET kept as a hard check: run_qa's JET.test_package(mode=:typo,
target_modules=(RootedTrees,)) passes on both LTS and 1.12 (report_package full
mode surfaces 3 union-split/extension-stub artifacts on 1.12 only, which mode=:typo
correctly does not treat as failures).

Deps: drop ExplicitImports (transitive via SciMLTesting), bump SciMLTesting compat
to "1.6", keep Aqua (ambiguities child-proc needs it direct) and JET.

Verified locally vs released SciMLTesting 1.6.0: QA group 18/18 pass, 0 fail/error/
broken, on Julia 1.10 (lts) and 1.12.

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 6b76017 into SciML:main Jun 27, 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