Skip to content

Correct ImplicitDiscreteSolve NonlinearSolveBase compat - #4051

Closed
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-ids-nlsbase-compat
Closed

ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-ids-nlsbase-compat

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore this PR until it has been reviewed by @ChrisRackauckas.

Summary

ImplicitDiscreteSolve 2.1.5 from #4042 requires the public NonlinearSolveBase.solve_cache! API. That API was ultimately registered in NonlinearSolveBase 2.38.0, after the unreleased version sequence was normalized, but the merged project compat still requires nonexistent 2.40.

This one-line metadata fix changes the lower bound from 2.40 to 2.38. Version 2.1.5 is not registered yet (General currently ends at 2.1.4), so no additional ImplicitDiscreteSolve version bump is needed.

Local verification

Exact head 5a12aafe72, Julia 1.12.6, resolving registered NonlinearSolveBase 2.38.0 and NonlinearSolve 4.24.0:

  • official functional Pkg.test() path: 53/53 passed;
  • reinitialization: 15/15 passed;
  • cached zero-allocation operations: 2/2 passed;
  • official QA: JET 1/1 and Aqua 20/20 passed;
  • whole-repository Runic 1.7 --check: exit 0;
  • git diff --check: exit 0.

Process notes

This was found while validating the registered dependency chain for #3985. I checked General to confirm that ImplicitDiscreteSolve 2.1.5 is unreleased and NonlinearSolveBase 2.38.0 is the registered API release, searched open OrdinaryDiffEq PRs for an existing correction, synced the fork master to upstream, made the single compat edit, and ran the package resolver, functional tests, QA, and repository formatter before committing.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Early CI triage: PositiveIntegrators.jl/Downstream/1.10 stops during Pkg.develop resolution before loading or testing this PR. The log fixes current local OrdinaryDiffEqRosenbrock/OrdinaryDiffEqNonlinearSolve, which require LinearSolve 5.1/5.2, while PositiveIntegrators 0.2.19-DEV requires LinearSolve 3.75; the resolver therefore has no version left. This PR changes only the ImplicitDiscreteSolve NonlinearSolveBase compat line. Per the repository policy, I am reserving a separate clean-master reproduction/bisect investigation rather than dismissing the red; no test or compat is being weakened here.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Additional verification on the exact reported downgrade path (commit 5a12aafe72): replaying julia-actions/julia-downgrade-compat@2c401f8b47edbcafc2e1edbff8e71f33dce71822 locally with Julia 1.11 successfully resolved the merged ImplicitDiscreteSolve project at NonlinearSolveBase v2.38.0. The targeted official Core test command (ODEDIFFEQ_TEST_GROUP=Core; Pkg.test("ImplicitDiscreteSolve")) also completed with Testing ImplicitDiscreteSolve tests passed.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI confirms this one-line metadata correction is the first required fix. The exact upstream/master base run 30414223142 failed ProbNumDiffEq and all five SciMLSensitivity jobs during resolution because ImplicitDiscreteSolve 2.1.5 required the unregistered NonlinearSolveBase 2.40; this PR moves those jobs past that error, and the ImplicitDiscreteSolve Core (Julia 1/LTS/pre), QA, and downgrade jobs are green.

The downstream jobs then expose separate stale constraints: PositiveIntegrators pins LinearSolve 3.75 while current OrdinaryDiffEq requires 5.2; SciMLSensitivity test groups pin AlgebraicMultigrid 1, which only supports old LinearSolve; and ProbNumDiffEq pins JET 0.11 while this job runs Julia 1.10 (with a second resolver conflict through its PrecompileTools pin). These are independent downstream follow-ups, not failures of the ImplicitDiscreteSolve compat change. I am reproducing and splitting them into focused fixes rather than adding unrelated changes here.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

The additional DiffEqDevTools downgrade red is infrastructure, not a test assertion: GitHub’s sole check annotation is “The self-hosted runner lost communication with the server,” and the test step never received a terminal conclusion or uploaded logs. Current classification is therefore seven independent downstream resolver constraints plus one runner-loss failure; 113 checks are green so far, including all ImplicitDiscreteSolve-specific jobs.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

The GPU red is also an exact clean-master failure: upstream run 30414223517 at base 938dae56bf reports the same single Hairer4 [jac=CSC, mass=diag_cu] GPU mismatch (160 passed, 1 failed, 11 existing broken) as this PR. The compared residual errors are unchanged between master and this one-line metadata branch. A separate clean-master GPU-history investigation is queued as required; no GPU test is being skipped or loosened here.

@ChrisRackauckas

Copy link
Copy Markdown
Member

A higher bound is okay too.

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