QA: run_qa v1.6 form + ExplicitImports#86
Merged
ChrisRackauckas merged 2 commits intoJul 3, 2026
Merged
Conversation
Convert test/qa/qa.jl from hand-rolled Aqua + JET to the SciMLTesting 1.6 run_qa form with ExplicitImports enabled (explicit_imports = true). - Aqua and JET keep running (JET hard via run_qa's default test_package). - ExplicitImports: 4 of 6 checks pass clean; the two qualified-access checks pass with per-name ignore lists for SciMLBase-owned names re-exported through DiffEqBase (AbstractODEAlgorithm, AbstractODEProblem, __solve, build_solution, Stats) and the Symbolics-owned MATLABTarget re-exported through ModelingToolkit. - no_implicit_imports is @test_broken (ei_broken) pending the explicit-import refactor of the heavy using/@reexport surface, tracked in SciML#85. test/qa/Project.toml: SciMLTesting compat -> 1.6; ExplicitImports dropped (transitive via SciMLTesting); Aqua kept (ambiguities child-proc needs it a direct dep); JET kept. Local QA group vs released SciMLTesting 1.6.0: 17 pass, 1 broken, 0 fail/error. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Now that SciMLBase 3.27.0 makes the abstract problem/algorithm types, build_solution and DEStats public, migrate the qualified accesses in src/ off the DiffEqBase re-exporter onto their SciMLBase owner: DiffEqBase.AbstractODEAlgorithm -> SciMLBase.AbstractODEAlgorithm DiffEqBase.AbstractODEProblem -> SciMLBase.AbstractODEProblem DiffEqBase.build_solution -> SciMLBase.build_solution DiffEqBase.Stats -> SciMLBase.DEStats (canonical public name) Add SciMLBase to [deps]/[compat] (>=3.27). DiffEqBase.__solve stays the solver extension point (SciMLBase-owned but non-public) and MATLABTarget stays reached through ModelingToolkit (Symbolics-owned, non-public). Empty the public-API ExplicitImports ignore lists of the now-public, owner-accessed names, leaving only the genuinely-still-non-public :__solve and :MATLABTarget in all_qualified_accesses_are_public and all_qualified_accesses_via_owners. Bump the qa env SciMLTesting floor to 1.7 (gates the public-API checks to Julia >= 1.11). Verified QA group locally against the registered releases (CI=true so MATLAB.jl loads with dummy deps, matching CI): Julia 1.12 17 pass / 1 broken (no_implicit_imports) / 0 fail with the public checks running; Julia 1.10 15 pass / 1 broken / 0 fail with the public checks skipped. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ChrisRackauckas-Claude
marked this pull request as ready for review
June 27, 2026 20:59
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.
Please ignore until reviewed by @ChrisRackauckas.
Brings
test/qa/qa.jlonto the SciMLTesting 1.6run_qaform with ExplicitImports enabled (explicit_imports = true).What changed
test/qa/qa.jl: hand-rolledAqua.test_all+ JETreport_package/@testreplaced by a singlerun_qa(MATLABDiffEq; ...)call. Aqua and JET still run (JET hard, viarun_qa's defaulttest_package); ExplicitImports' 6 checks are added.test/qa/Project.toml:SciMLTestingcompat bumped to1.6;ExplicitImportsdropped from[deps](it is a SciMLTesting direct dep, so transitive);Aquakept (theambiguitiessub-check spawns a child process that needs Aqua a direct dep);JETkept.ExplicitImports findings (6 checks)
no_stale_explicit_importsno_implicit_importsei_broken; tracked in #85 — heavy@reexport using DiffEqBase+using MATLAB/ModelingToolkit/PrecompileToolssurface, explicit-import refactor deferredall_explicit_imports_via_ownersall_qualified_accesses_via_ownersAbstractODEAlgorithm,AbstractODEProblem,__solve,build_solution) + Symbolics-ownedMATLABTargetvia ModelingToolkitall_qualified_accesses_are_publicStats(SciMLBase, re-exported via DiffEqBase)all_explicit_imports_are_publicThe ignored names are other packages' (SciMLBase, Symbolics) non-public names accessed through their canonical re-exporters (DiffEqBase, ModelingToolkit); they go away on their own once declared public upstream.
Local verification (released SciMLTesting 1.6.0, Julia 1.12.5)
QA group run via the folder model:
0 Fail / 0 Error. Per-check: all 8 Aqua sub-checks pass, JET passes, 5/6 EI checks pass,
no_implicit_importsis the single tracked@test_broken.🤖 Generated with Claude Code