Skip to content

Drop unused NLsolve test extra - #242

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:compat-drop-unused-nlsolve
Aug 26, 2026
Merged

ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:compat-drop-unused-nlsolve

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Drop unused NLsolve from [extras] / [targets].test / [compat]. Tests use NewtonRaphson and SimpleLimitedMemoryBroyden from NonlinearSolve, not NLsolve. NLsolve was only pulled so NonlinearSolveNLsolveExt would load.

Registered NonlinearSolve 4.x WeakCompat is NLsolve = "4.5.0-4" (["3 - 4.9"] and ["4.10 - 4"] in General). NLsolve 5 is live. With NLsolve kept as a test extra, Downgrade promotes extras into the merged resolve, so --min=@deps requires NLsolve 5 next to NonlinearSolve 4 and is unsatisfiable. SciML/NonlinearSolve.jl#1198 set NLsolve = "5" in source; that is not registered yet (latest NS is 4.28.0, still pinned to NLsolve 4.5-4).

This supersedes #241 (NLsolve = "4, 5"), which keeps extra major 4 so the min floor can still pick 4.5.1. NLsolve is unused here, so the extra should go rather than keep major 4.

file change
Project.toml remove NLsolve from [compat], [extras], [targets].test

NonlinearSolve stays at "4".

Verification

Local Julia 1.10.11. Resolver.jl --min=@deps --julia=1.10 on a merged extras project (same extras-to-deps promotion as julia-downgrade-compat):

Before (origin/main, NLsolve = "5" extra): Unsatisfiable

Unsatisfiable — 1 conflict:

Conflict 1: NLsolve, NonlinearSolve and OrdinaryDiffEqAdamsBashforthMoulton cannot all be satisfied.
  • you require NLsolve
  • you require NonlinearSolve
  • you require OrdinaryDiffEqAdamsBashforthMoulton
  • NonlinearSolve 4.0.0–4.25.0 works with NLsolve only at 4.5.0–4.5.1
  • your compat leaves NLsolve at ≥ 5.0.0
  Fix it by any one of:
    1. relax your compat on NLsolve
       → allows: NLsolve 4.5.1, NonlinearSolve 4.17.1,
         OrdinaryDiffEqAdamsBashforthMoulton 2.0.0
    2. drop requirement NLsolve
       → allows: NonlinearSolve 4.17.1, OrdinaryDiffEqAdamsBashforthMoulton
         2.0.0

After (NLsolve extra removed): EXIT 0. NLsolve is not in the resolved set. Direct floors include NonlinearSolve 4.17.1, OrdinaryDiffEq 7.0.0, OrdinaryDiffEqAdamsBashforthMoulton 2.0.0, ForwardDiff 1.0.1, Lux 1.16.0, SciMLSensitivity 7.105.0.

GROUP=Core Pkg.test() without NLsolve extra (test env Status has NonlinearSolve v4.28.0 and no NLsolve):

Test Summary: | Pass  Total     Time
Utils Tests   |   13     13  1m01.3s
Test Summary: | Pass  Total      Time
Layers Tests  | 1538   1538  24m19.3s
     Testing DeepEquilibriumNetworks tests passed

Started 2026-08-26T11:07:27-04:00, finished 2026-08-26T11:38:44-04:00.

Not verified

  • GPU group (self-hosted CUDA)
  • QA group
  • docs build (no docstring / docs/ / public API change)
  • Downstream

This PR should be ignored until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

NLsolve is not used in src or test/*.jl. It was only in [extras] so
NonlinearSolveNLsolveExt would load; tests never call it.

Registered NonlinearSolve 4.x WeakCompat pins NLsolve to 4.5.0-4, so
requiring NLsolve 5 makes Downgrade --min=@deps unsatisfiable.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review August 26, 2026 16:45
@ChrisRackauckas
ChrisRackauckas merged commit a4dc3d3 into SciML:main Aug 26, 2026
2 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