Require strict SciMLTesting 2.4 QA - #76
Conversation
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
PATHSolver declares no `export` and no `public` names, so every qualified access into it fails `all_qualified_accesses_are_public`. There is no public alternative for reaching the PATH C API, so restore an ignore list scoped to the six names actually used, with a note to drop it once PATHSolver publishes them upstream. All other QA suppressions stay removed. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJbtE2oppQxPFNGSJbhm22
|
Pushed 7c01a19 to fix the QA lane. Diagnosis. The only failing check was PATHSolver v1.7.9 has zero Fix. Restore a single Verified locally (Julia 1.12):
Follow-up. The clean fix is upstream: declare those six names |
SciMLBase 3.40.0 dropped `@reexport using SciMLOperators`, so `using SciMLBase: FunctionOperator` fails to load on SciMLBase >= 3.40 while the declared compat still allows it. The test environments happen to pin SciMLBase to 3.39.1, but Aqua's persistent-tasks check resolves Project.toml on its own and picks 3.41.0, so enabling that check surfaced the break as a precompile failure. Depend on SciMLOperators directly and import the name from the package that owns it. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJbtE2oppQxPFNGSJbhm22
|
Pushed 498f94c. The Root cause: SciMLBase 3.40.0 removed
The The This was latent before this PR: Fix. Depend on SciMLOperators directly and import Verified locally (versions reported by
Worth flagging separately: SciMLBase 3.40.0 dropping the SciMLOperators re-export is a breaking change for any downstream doing |
|
The remaining
Evidence it is environmental rather than a code defect:
Fix opened upstream: SciML/SciMLTesting.jl#42 re-lands the race-tolerant retry (344/344 tests pass; the retry probe passes against this branch's checkout). This PR stays red until that merges and SciMLTesting 2.7.0 is registered — No suppression is being added for this. Both real bugs this PR surfaced are fixed: the PATHSolver ignore (7c01a19) and the SciMLBase re-export break (498f94c), and |
Do not review; this commit will be reverted. Aqua silences the probe subprocess, so the CI failure has no diagnostics. Reproduce the probe with stderr passed through and report exitcode/termsignal. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The diagnostic did its job: the probe's wrapper precompile exits 0 with no signal, having failed on Julia's "missing from the cache" race for SciMLBaseDifferentiationInterfaceExt. Not a crash, not resource exhaustion. Restores test/qa.jl and drops the temporary Pkg test dependency. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Resolved: the Exit code 0, no termination signal. The wrapper package fails to precompile on the "missing from the cache" race, Aqua invokes this as The same run also demonstrates the fix accidentally: because the diagnostic ran the probe once first, the cache was warm when Aqua ran its own probe, which then passed — 20/20, job green. Ruled out, with local reproductions:
Fix is SciML/SciMLTesting.jl#42, which re-lands the race-tolerant retry; its original diagnosis named this exact race and was correct. This PR needs no further change and no suppression — |
Ignore until reviewed by @ChrisRackauckas.
Summary
run_qa(ComplementaritySolve)plus a single scopedei_kwargsignore for PATHSolver's non-public C-API names.checkdocs = :public; remove non-public dependency API use and the stale FillArrays dependency.Validation
Pkg.test()completed: 281 pass, 0 fail, 7 pre-existing broken.GROUP=QA Pkg.test(): 20 pass, 0 fail — all Aqua sub-checks (ambiguities, persistent_tasks, project_extras, deps_compat), public docs, reexports, and the remaining five ExplicitImports checks now pass unsuppressed.Remaining exception
PATHSolver declares no
exportand nopublicnames at all, so any qualified access into it failsall_qualified_accesses_are_public. Its README nevertheless directs users toPATHSolver.solve_mcpand theMCP_Terminationenum values as the supported entry point, and there is no public alternative for reaching the PATH C API.test/qa.jltherefore keeps one ignore list, scoped to the six names actually used:solve_mcp,MCP_Solved,MCP_NoProgress,MCP_MajorIterationLimit,MCP_MinorIterationLimit,MCP_TimeLimitThe comment above it says to drop the ignore once PATHSolver publishes those names upstream. Making them
publicthere needs aVERSION >= v"1.11"guard, since PATHSolver'sjuliacompat is1.6.