Raise NonlinearSolveBase floor for operator Jacobians#3917
Conversation
|
Follow-up diagnosis before the next branch update:
The recursive |
|
Correction to my previous follow-up: do not add the proposed duplicated MuladdMacro floors or raise this package to NonlinearSolveBase 2.35. Those apparent extra floors came from the shared downgrade action resolving registered dependencies after removing local SciML/.github #118 fixes that resolution boundary. With its reconciler around the exact deployed action and only this PR's |
|
Four-hour CI checkpoint (2026-07-16 19:38 EDT) The checks that directly exercise this dependency-floor change are green:
The aggregate PR status is still red, but each completed failure was reproduced or matched against unmodified
One unrelated At this checkpoint the worktree is clean, the branch is 0 commits behind |
|
Independent confirmation from the master-CI investigation at 4e1a434 (Downgrade Sublibraries run 29629348539): The OrdinaryDiffEqNonlinearSolve, OrdinaryDiffEqBDF, and OrdinaryDiffEqSDIRK downgrade jobs all die with exactly the failure this PR targets — the downgrade env resolves NonlinearSolveBase v2.33.0 (the BDF job log shows reached from Version archaeology agrees with the floor chosen here: Note this fixes 3 of the 9 failing downgrade jobs; the four resolution failures are #3905's SciMLOperators floors, TaylorSeries is #3958, DiffEqDevTools at 4e1a434 was a runner-communication flake. 🤖 Generated with Claude Code |
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Declare the first NonlinearSolveBase release that supports SciMLOperator Jacobian prototypes so downgrade resolution cannot select the incompatible 2.33 series. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
032176e to
3bf63c9
Compare
|
Post-rebase publication scratchpad:
CI expectation: until this floor is present, the NonlinearSolve, BDF, and SDIRK downgrade lanes resolve |
Scheduled four-hour CI checkpoint — 2026-07-21 01:07 EDTHead
No source-bearing CPU test exposed a new #3917 regression. The exact published Core graph already passed locally as recorded in the publication evidence. No branch change or rerun was made at this checkpoint. |
Important
Please ignore this draft until it has been reviewed by @ChrisRackauckas.
Summary
NonlinearSolveBaseas a direct dependency ofOrdinaryDiffEqNonlinearSolveNonlinearSolveBase2.34.1 or newer, the first tested floor with the operator-Jacobian support this sublibrary usesRoot cause
PR #3885 began passing
SciMLOperatorsJacobian prototypes into NonlinearSolve. Its implementation requires newerNonlinearSolveBase, but the package metadata raised only the umbrellaNonlinearSolvefloor. Registry compatibility for that umbrella release still permitsNonlinearSolveBase 2.33.0.The deployed downgrade action therefore selects 2.33.0 and fails in
safe_similarwhile constructing a cache for aSciMLOperators.MatrixOperator. A frozen-environment bisect identified9a2f7e7b79141951df24a0f2191a8aa20e94f49a(the commit for #3885) as the first bad commit;3b799e583was the adjacent passing control.Source prerequisite and temporary stack
#3971 fixes the independent resize path that dropped configured nonlinear verbosity. It takes version 2.3.1 and must land before this compatibility-floor patch.
GitHub cannot use a fork-only branch as this PR's upstream base, so the currently published branch temporarily contains #3971 followed by this PR's focused commit. The focused top commit changes only the direct dependency, its 2.34.1 compatibility floor, the corresponding import, and this package's 2.3.2 version. After #3971 merges, this branch must be rebased onto updated
masterso the final #3917 diff contains only that focused commit.#3927 is intentionally outside this stack. Its unique
SparseConnectivityTracer = "1"compatibility metadata can follow independently as 2.3.3 after these two patches.Shared-workflow prerequisite
This package patch deliberately does not duplicate
SciMLOperators,NonlinearSolveBase, or downstreamMuladdMacrofloors across unrelated sublibraries.The currently deployed downgrade action removes path-source packages before minimum resolution, so their transitive constraints are invisible until the action appends those sources afterward. SciML/.github #118 fixes that shared workflow by exposing source constraints before resolution and restoring the original project for the final locked test. Its
v1release is required for every path-source downgrade lane to consume this floor correctly.Validation
NonlinearSolveBase 2.34.1,SciMLOperators 1.24.3,LinearSolve 4.3.0,MuladdMacro 0.2.4, andSciMLLogging 1.10.1; its manifest SHA-256 wasdcb935a041618f14baa966fc95f7348071b145bf5bbc31d3c2882bc8b0a34880.ODEDIFFEQ_TEST_GROUP=Corepackage suite exited 0: Newton 6/6, sparse DAE initialization 27/27, linear nonlinear solver 44/44, linear solver 113/113, split solver 10/10, mass matrix 225 passed with 42 pre-existing broken, W-operator 18/18, DAE initialization 19/19, CheckInit 4/4, nested AD 5/5, Jacobian reuse 8/8, homotopy 25/25, sparse Jacobian 11/11, and matrix-free W-operator 14/14. The manifest hash was unchanged after the run.git diff --check, and parsing every trackedProject.tomlpassed with the final 2.3.2 bump.NonlinearSolveBase 2.33.0safe_similar(::MatrixOperator)failure. The earlier Raise NonlinearSolveBase floor for operator Jacobians #3917 NonlinearSolve downgrade lane passed after selecting 2.34.1.Process
The incompatibility was reproduced under the deployed downgrade workflow, bisected with a frozen graph, reduced to the missing direct dependency floor, validated under the reconciled exact graph, then rebased as a focused commit on top of the independently tested #3971 prerequisite.