Skip to content

Fix the three QA failures on master (explicit import, piracy whitelist, check_reexports)#1112

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:qa-fixes
Jul 25, 2026
Merged

Fix the three QA failures on master (explicit import, piracy whitelist, check_reexports)#1112
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:qa-fixes

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Important

This PR should be ignored until reviewed by @ChrisRackauckas.

Fixes the tests / QA job on master, which has been failing with 16 passed, 2 failed, 1 errored. Three failures, two unrelated causes — none of them a defect in shipped behavior:

Failure Cause Fix
no_implicit_importsHomotopyPolyAlgorithm at src/poly_algs.jl:137 #1105 used the name via a reexport rather than an explicit import add it to the using NonlinearSolveBase: ... list
Piracyinitialization_alg(::SciMLBase.HomotopyProblem, autodiff) at src/default.jl:61 #1105 added the continuation-problem dispatch; the sibling AbstractNonlinearProblem method was already whitelisted, this one wasn't add SciMLBase.HomotopyProblem to the existing piracies.treat_as_own
No unapproved public reexports dependency bump, not a code change: SciMLTesting 2.3.0 → 2.4.0 added check_reexports defaulting to true. First failing run was b92a835e (2026-07-21), the first to resolve 2.4.0 pass reexports_allow — NonlinearSolve is a facade that deliberately reexports the whole stack

For the third one I built the allow-list the same way the file already builds its docs-check ignore list: the public API names of each sublibrary (NonlinearSolveBase, NonlinearSolveFirstOrder, NonlinearSolveSpectralMethods, NonlinearSolveQuasiNewton, SimpleNonlinearSolve, BracketingNonlinearSolve) plus the module names, unioned with the existing external-reexport set (ADTypes/SciMLBase/LineSearch/LinearSolve). That keeps the check meaningful — an accidental public reexport from some other package would still fail — while accepting the intentional facade surface.

Verification

GROUP=QA julia --project -e 'using Pkg; Pkg.test()' locally on Julia 1.12.4: 19/19 pass (from 16 passed / 2 failed / 1 errored on the same checkout without these changes).

Not fixed here (master is still red for two other reasons)

🤖 Generated with Claude Code

https://claude.ai/code/session_01B9GHoo4pFa3DU9yhyTkevL

- ExplicitImports: `HomotopyPolyAlgorithm` is used in `src/poly_algs.jl` but was
  only reaching the module through a reexport; import it explicitly from
  NonlinearSolveBase (introduced by SciML#1105).
- Aqua piracy: `initialization_alg(::SciMLBase.HomotopyProblem, autodiff)` in
  `src/default.jl` is an intentional dispatch on the continuation problem type,
  alongside the `AbstractNonlinearProblem` method that is already whitelisted;
  add `HomotopyProblem` to `treat_as_own` (also SciML#1105).
- check_reexports: SciMLTesting 2.4.0 enabled this check by default. NonlinearSolve
  is a facade that deliberately reexports the whole solver stack, so pass a
  `reexports_allow` list built from the sublibraries' public API names and module
  names, unioned with the existing external-reexport set already computed for the
  docs check.

Verified locally: `GROUP=QA Pkg.test()` now passes 19/19 (was 16 passed,
2 failed, 1 errored).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 25, 2026 13:48
@ChrisRackauckas
ChrisRackauckas merged commit 06740f8 into SciML:master Jul 25, 2026
56 of 71 checks passed
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