QA: run_qa v1.6 form + ExplicitImports#580
Draft
ChrisRackauckas-Claude wants to merge 2 commits into
Draft
Conversation
Convert the hand-rolled test/qa/qa.jl (manual Aqua sub-checks + JET @test_broken markers) to the SciMLTesting 1.6 run_qa form with ExplicitImports enabled. - run_qa(MethodOfLines; explicit_imports = true, ...) replaces the manual Aqua.test_* / JET @test_broken body. - Aqua: the five genuine findings from SciML#574 (ambiguities, undefined_exports, stale_deps, deps_compat, piracies) are preserved as aqua_broken; the passing sub-checks run via Aqua.test_all. - JET: the 10 errors previously tracked in SciML#574 no longer reproduce on the current ModelingToolkit 11 / SciMLBase 3 stack (report_package returns no reports), so JET.test_package now runs as a hard check (un-broken). - ExplicitImports: - no_stale_explicit_imports: FIXED by removing 9 genuinely-unused explicit imports (variable, parameters, varmap_to_vars, setname, rename, cardinalize_eqs!, make_pdesys_compatible, parse_bcs, generate_system). - no_implicit_imports: ~80 names reach the module via heavy `using <BigDep>`; making them explicit is a large risky refactor, kept ei_broken pending SciML#574. - the owners / public checks pass with per-check ignore-lists for other packages' non-public / re-exported names (PDEBase, Symbolics, ModelingToolkit(Base), SciMLBase, IfElse, RuntimeGeneratedFunctions, Base). test/qa/Project.toml: SciMLTesting compat -> "1.6"; drop Aqua/SafeTestsets/Pkg (Aqua/ExplicitImports come transitively via SciMLTesting, and the ambiguities sub-check that needs Aqua as a direct dep is disabled here). Verified locally on Julia 1.10 against released SciMLTesting 1.6.0: QA group 9 Pass, 6 Broken, 0 Fail, 0 Error. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The v1.6 conversion un-broke JET on the basis that report_package returned no reports, but that was observed on Julia 1.10. On the CI `julia 1` lane (1.11/1.12) JET still finds the same possible errors tracked in SciML#574: DiscreteSpace getproperty `.time`/`.ps` FieldErrors reached via ivs/params, `MethodOfLines.otherderivmaps` not defined, and a possibly-undefined `f_analytic` in MOL_discretization.jl. Restore jet_broken = true so the check is report-only (it auto-flags an Unexpected Pass once JET is clean), matching the original test/qa/qa.jl `@test_broken` for JET. Verified locally on Julia 1.12 against released SciMLTesting 1.6.0 (JET 0.11.5, ModelingToolkit 11.28, SciMLBase 3.22): QA group 8 Pass, 7 Broken, 0 Fail, 0 Error (was 8 Pass, 1 Fail, 6 Broken). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ignore until reviewed by @ChrisRackauckas.
Converts
test/qa/qa.jlfrom the hand-rolled Aqua/JET body to the SciMLTesting 1.6run_qaform with ExplicitImports enabled.run_qa v1.6 form
run_qa(MethodOfLines; explicit_imports = true, ...)replaces the manualAqua.test_*calls and JET@test_brokenplaceholders.aqua_broken = (:ambiguities, :undefined_exports, :stale_deps, :deps_compat, :piracies)(each emits a tracked@test_brokenplaceholder); the passing sub-checks (unbound_args, project_extras, persistent_tasks, julia compat) run viaAqua.test_all.otherderivmaps, staggered_discretize) no longer reproduce on the current ModelingToolkit 11 / SciMLBase 3 stack —JET.report_packagereturns no reports — soJET.test_packagenow runs as a hard check (the@test_brokenwas un-broken).ExplicitImports findings
no_stale_explicit_imports— FIXED. Removed 9 genuinely-unused explicit imports fromsrc/MethodOfLines.jl:variable,parameters,varmap_to_vars(ModelingToolkit),setname,rename(Symbolics),cardinalize_eqs!,make_pdesys_compatible,parse_bcs,generate_system(PDEBase). Verified none are bare-used, method-extended, or re-exported.no_implicit_imports—ei_broken(tracked QA: Aqua/JET findings marked @test_broken pending fix #574). ~80 names reach the module through heavyusing <BigDep>(SciMLBase, DiffEqBase, ModelingToolkit, Symbolics, SymbolicUtils, PDEBase, DomainSets, Interpolations, ...). Making them all explicit is a large, risky refactor, so it stays@test_brokenpending the tracking issue.ei_kwargsignore-lists. Each ignore is for another package's non-public or re-exported name (PDEBase, Symbolics, ModelingToolkit(Base), SciMLBase, IfElse, RuntimeGeneratedFunctions, Base); they go clean once those packages export/declare-public the names. Each ignore is grouped by source package in a comment.Deps
test/qa/Project.toml:SciMLTestingcompat →"1.6"; droppedAqua,SafeTestsets,Pkg(Aqua + ExplicitImports come transitively via SciMLTesting, and the only Aqua sub-check needing Aqua as a direct dep —ambiguities— is disabled here).Verification
Ran the QA group locally on Julia 1.10 via
GROUP=QA Pkg.test, resolving the released SciMLTesting 1.6.0 (no dev-from-branch):9 Pass (3 Aqua + JET + 5 EI), 6 Broken (5 aqua_broken + 1 ei no_implicit_imports), 0 Fail, 0 Error.
🤖 Generated with Claude Code