QA: run_qa v1.6 form + ExplicitImports#177
Merged
ChrisRackauckas merged 2 commits intoJun 27, 2026
Merged
Conversation
Convert the hand-rolled QA (test/qa.jl raw Aqua sub-checks + test/explicit_imports.jl raw ExplicitImports) onto SciMLTesting 1.6.0 `run_qa`, moved into a dedicated `qa` group sub-env (test/qa/) per the folder model, with ExplicitImports enabled. - test/qa/qa.jl: run_qa(PreallocationTools; explicit_imports = true, aqua_kwargs = (; ambiguities = (; recursive = false))) preserving the non-default `test_ambiguities(recursive = false)` tweak. Aqua now runs the full test_all (was a manual 7-check subset) and all checks pass. - ExplicitImports: 5/6 checks pass clean. all_qualified_accesses_are_public flags qualified accesses to non-public names of other packages (Base.depwarn, ArrayInterface.parameterless_type, ArrayInterface.restructure); ignored via ei_kwargs (documented per source pkg). No stale/implicit-import findings, no broken markers, no JET. - test/qa/Project.toml: QA sub-env (PreallocationTools via [sources], Aqua kept for the ambiguities child-proc, SciMLTesting "1.6", Test, SafeTestsets). ExplicitImports dropped (transitive via SciMLTesting). - runtests.jl: move QA out of `core` into the `qa` group; test_groups.toml adds [QA] (lts, 1). - root Project.toml: drop Aqua + ExplicitImports from [compat]/[extras]/ [targets].test (now QA-sub-env-only). Verified locally vs released SciMLTesting 1.6.0 (no dev-from-branch): QA group 17/17 pass, 0 fail/error/broken on Julia 1.10/1.11/1.12, and the full GROUP=QA harness path (Pkg.test) passes. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
When QA runs alongside Core (e.g. the Windows lanes have no dedicated QA
lane, so run_tests folds QA into the Core run), the core safetestsets have
already loaded ForwardDiff and SparseConnectivityTracer into the session.
ExplicitImports then analyzes the loaded extension modules, surfacing three
findings that the dedicated ubuntu QA lane never saw (its qa env has no
weakdeps, so the extensions stay unloaded):
- no_implicit_imports: PreallocationToolsForwardDiffExt's `using` of its
parent + weakdeps (used qualified).
- all_qualified_accesses_are_public: the ext extends PreallocationTools'
own non-exported internals across the package/extension boundary and
uses non-public-but-stable ForwardDiff names.
- all_explicit_imports_are_public: PreallocationToolsSparseConnectivity-
TracerExt imports the non-public AbstractTracer/Dual.
Extend the ei_kwargs ignore lists (each name documented with its source
package) so these legitimate extension-module uses are accepted. Verified
17/17 QA on Julia 1.10/1.11/1.12 with the extensions loaded and on the
dedicated QA env with them absent, against released SciMLTesting 1.6.0.
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.
Brings PreallocationTools' QA onto the SciMLTesting 1.6.0
run_qav1.6 form, with ExplicitImports enabled, moved into a dedicatedqagroup sub-env (test/qa/) per the folder model.What changed
test/qa/qa.jl(new): replaces the two hand-rolled QA files (test/qa.jlraw Aqua sub-checks +test/explicit_imports.jlraw ExplicitImports). Now:test_ambiguities(recursive = false)tweak viaaqua_kwargs.test_all(the old file ran a manual 7-check subset) and all sub-checks pass.test/qa/Project.toml(new): QA sub-env.PreallocationToolsvia[sources] = ../..,Aquakept (itsambiguitiessub-check spawns a child process that needs Aqua as a direct dep),SciMLTesting = "1.6",Test,SafeTestsets. ExplicitImports dropped here — it is transitive via SciMLTesting.test/runtests.jl: move QA out of thecorethunk into theqa = (; env, body)group.test/test_groups.toml: add[QA](versions = ["lts", "1"]).Project.toml: dropAquaandExplicitImportsfrom[compat]/[extras]/[targets].test(now QA-sub-env-only). Required soAqua.test_deps_compat's extras sub-check stays green.ExplicitImports findings (6 checks)
no_implicit_imports,no_stale_explicit_imports,all_explicit_imports_via_owners,all_qualified_accesses_via_owners,all_explicit_imports_are_public— pass clean.all_qualified_accesses_are_public— flags qualified accesses to non-public names of other packages, ignored viaei_kwargs(each documented with its source)::depwarn—Base.depwarn(src/PreallocationTools.jl:128):parameterless_type—ArrayInterface.parameterless_type(:90):restructure—ArrayInterface.restructure(:177)No stale/implicit-import findings, no
@test_brokenmarkers, no JET (none in the prior QA).Verification (local, vs released SciMLTesting 1.6.0; no dev-from-branch)
QA group 17/17 pass, 0 fail / 0 error / 0 broken on Julia 1.10 (lts), 1.11, and 1.12. The full
GROUP=QAharness path (Pkg.test) also passes (Testing PreallocationTools tests passed).🤖 Generated with Claude Code