Skip to content

QA: run_qa v1.6 form + ExplicitImports#80

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:qa-runqa-v1.6-explicit-imports
Draft

QA: run_qa v1.6 form + ExplicitImports#80
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:qa-runqa-v1.6-explicit-imports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Please ignore until reviewed by @ChrisRackauckas.

Converts the QA group onto the SciMLTesting run_qa v1.6 form with ExplicitImports enabled. The hand-rolled test/qa/explicit_imports.jl and test/qa/jet_tests.jl are collapsed into a single test/qa/qa.jl calling run_qa. test/qa/alloc_tests.jl (AllocCheck functional check, not part of run_qa) is unchanged.

qa.jl

using SciMLTesting, DiffEqFinancial, Test
using JET

run_qa(
    DiffEqFinancial;
    explicit_imports = true,
    aqua_kwargs = (; deps_compat = (; check_extras = false)),
    ei_kwargs = (;
        all_explicit_imports_via_owners = (; ignore = (:AbstractSDEProblem,)),  # SciMLBase
        all_explicit_imports_are_public = (; ignore = (:AbstractSDEProblem,)),  # SciMLBase
    ),
)

This single call covers Aqua (10 sub-checks), JET (package-wide test_package, mode=:typo, replacing the old per-constructor @test_opt checks), and the six ExplicitImports checks.

Findings & resolution (goal: 0 hard FAILs)

Aqua

  • deps_compat (deps): Markdown had no [compat] entry. FIXED — added Markdown = "1" to the root Project.toml.
  • deps_compat (extras): the test-only stdlib extras (Pkg, Statistics, Test) lack compat. Handled with the standard deps_compat = (; check_extras = false) (not a broken-marker; extras-compat is not meaningful for test-only stdlibs).
  • All other Aqua sub-checks (ambiguities, unbound type params, undefined exports, stale deps, piracy, persistent tasks) pass. No aqua_broken needed.

JET

  • JET.test_package(DiffEqFinancial; target_modules=(DiffEqFinancial,), mode=:typo) passes clean. No jet_broken needed.

ExplicitImports (6 checks)

  • no_implicit_imports: PASS
  • no_stale_explicit_imports: PASS
  • all_explicit_imports_via_owners: FAIL on AbstractSDEProblem — owned by SciMLBase but imported from DiffEqBase. IGNORED (source: SciMLBase). Re-pointing the import to SciMLBase would require adding SciMLBase as a direct dep and would still fail the public check below, so an ignore is cleaner.
  • all_qualified_accesses_via_owners: PASS
  • all_qualified_accesses_are_public: PASS
  • all_explicit_imports_are_public: FAIL on AbstractSDEProblem — non-public in DiffEqBase (and also non-public in SciMLBase, its owner). IGNORED (source: SciMLBase). Cannot be made public-clean from any module.

No ei_broken entries: every EI check ends PASS once the two unfixable AbstractSDEProblem ignores are applied.

test/qa deps

  • DROP ExplicitImports (transitive via SciMLTesting).
  • ADD Aqua as a direct dep (needed for the ambiguities child-process check).
  • Bump SciMLTesting compat floor to "1.6".

Local verification (released SciMLTesting 1.6.0, via Pkg.test + GROUP=QA)

  • Julia 1.10 (lts): QA/qa.jl 17/17, QA/alloc_tests.jl 16/16 — tests passed.
  • Julia 1.12 (the "1" lane): QA/qa.jl 17/17, QA/alloc_tests.jl 16/16 — tests passed.

0 FAIL / 0 ERROR / 0 BROKEN on both lanes. qa.jl is Runic-clean.

🤖 Generated with Claude Code

Collapse the hand-rolled test/qa/{explicit_imports,jet_tests}.jl into a single
test/qa/qa.jl that calls SciMLTesting.run_qa (v1.6 form) with ExplicitImports
enabled. run_qa now covers Aqua (10 sub-checks), JET (package-wide test_package,
mode=:typo, replacing the per-constructor `@test_opt` checks), and the six
ExplicitImports checks.

Findings resolved:
- Aqua deps_compat: add missing `Markdown = "1"` compat (real fix);
  set `deps_compat = (; check_extras = false)` for the test-only stdlib extras.
- ExplicitImports: `AbstractSDEProblem` is owned by SciMLBase and reexported
  (non-public) by DiffEqBase, and is non-public in SciMLBase too, so it cannot
  be made owner- or public-clean by re-pointing the import; ignored in both
  all_explicit_imports_via_owners and all_explicit_imports_are_public.

test/qa deps: drop ExplicitImports (transitive via SciMLTesting), add Aqua as a
direct dep (needed for the ambiguities child-process check), bump SciMLTesting
compat floor to "1.6". alloc_tests.jl (AllocCheck) is unchanged.

Verified locally against released SciMLTesting 1.6.0 via Pkg.test + GROUP=QA:
lts (1.10) and "1" (1.12) lanes both green (qa.jl 17/17, alloc_tests.jl 16/16).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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