Skip to content

QA: run_qa v1.6 form + ExplicitImports#150

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Ignore until reviewed by @ChrisRackauckas.

Brings Evolutionary.jl's QA onto the SciMLTesting 1.6 run_qa form with ExplicitImports enabled. Verified locally against the released SciMLTesting 1.6.0 (Pkg resolves it; no dev-from-branch).

What changed

  • test/qa/qa.jl: hand-rolled Aqua.test_all + JET body → run_qa(Evolutionary; explicit_imports = true, ...).
  • test/qa/Project.toml: drop Aqua/JET/SafeTestsets (now transitive via SciMLTesting); bump SciMLTesting compat floor to 1.6.
  • src/Evolutionary.jl: make the implicit LinearAlgebra/Statistics/StackViews imports explicit (the no_implicit_imports fix).

ExplicitImports findings (6 checks)

  • no_implicit_imports — FIXED. Converted using LinearAlgebra, Statistics + using StackViews to using LinearAlgebra: Diagonal, Symmetric, diag, diagm, eigen!, norm, using Statistics: mean, using StackViews: StackView. The names rank/tr/var that EI also reported are shadowed by local bindings (a nested function rank, a tr function parameter, a var tuple-unpack local), not genuine uses of LinearAlgebra.rank/tr/Statistics.var, so they are intentionally not imported. Core functional suite re-run green to confirm no runtime breakage.
  • no_stale_explicit_imports — passes.
  • all_explicit_imports_via_owners / all_qualified_accesses_via_owners / all_qualified_accesses_are_public — pass.
  • all_explicit_imports_are_public — IGNORE the three other-package non-public names via ei_kwargs (they go public as the base libs declare them):
    • default_rng (Random, stdlib non-public)
    • nconstraints, nconstraints_x (NLSolversBase non-public)

Preserved tracked-broken findings (issue #145)

  • Aqua ambiguities (18), unbound_args (3), piracies (7) → aqua_broken (tracked, QA: Aqua/JET findings marked @test_broken pending fix #145).
  • JET → kept as a static @test_broken placeholder rather than jet_broken = true. The JET report findings (+(::Nothing,::Int), kwcall on SPX/deprecated aliases, Evolutionary.expr) surface only on Julia >= 1.12 (the QA 1 lane); the LTS lane (1.10/1.11) is clean. jet_broken = true would auto-flag an Unexpected-Pass Error on the clean LTS lane, and a hard JET check would fail the 1 lane — so a static tracked placeholder is the only form correct across the ["lts", "1"] matrix. Tracked in QA: Aqua/JET findings marked @test_broken pending fix #145.

Local verification (released SciMLTesting 1.6.0)

QA group via GROUP=QA Pkg.test, both lanes:

Julia Pass Broken Fail Error
1.10 (lts) 14 4 0 0
1.12 (1) 14 4 0 0

Aqua enabled sub-checks (8 pass): undefined exports, project-extras, stale deps, compat bounds (4), persistent tasks. ExplicitImports: 6 pass. The 4 broken = 3 Aqua placeholders + 1 JET placeholder.

🤖 Generated with Claude Code

Convert test/qa/qa.jl from the hand-rolled Aqua/JET body to SciMLTesting 1.6's
run_qa, and enable the ExplicitImports checks.

- run_qa(Evolutionary; explicit_imports = true, ...): Aqua + ExplicitImports run
  via SciMLTesting's own deps; the QA env drops Aqua/JET/SafeTestsets (transitive)
  and bumps the SciMLTesting compat floor to 1.6.
- Preserve the tracked-broken Aqua sub-checks (ambiguities/unbound_args/piracies)
  via aqua_broken, keeping the issue SciML#145 reference.
- ExplicitImports: make the implicit LinearAlgebra/Statistics/StackViews names
  explicit in src/Evolutionary.jl (only the genuinely-used names; rank/tr/var are
  shadowed by local bindings and were not imported). Ignore the three other-package
  non-public explicit imports (Random.default_rng, NLSolversBase.nconstraints[_x]).
- JET: the report findings only surface on Julia >= 1.12 (the QA `1` lane) while
  the LTS lane is clean, so jet_broken = true would Unexpected-Pass on LTS and a
  hard check would fail 1.12; keep it as a static tracked-broken placeholder (SciML#145).

Verified locally against released SciMLTesting 1.6.0 on both lanes:
QA group 14 pass / 4 broken / 0 fail / 0 error on Julia 1.10 (lts) and 1.12 (`1`).

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