Repository navigation
Restore TimerOutputs 0.5 compat in NonlinearSolveBase (fixes OrdinaryDiffEq downstream lanes) - #1223
Closed
ChrisRackauckas-Claude wants to merge 1 commit into
Closed
ChrisRackauckas-Claude wants to merge 1 commit into
ChrisRackauckas-Claude wants to merge 1 commit into
Conversation
AlgebraicMultigrid 2.x, the only AlgebraicMultigrid line compatible with LinearSolve >= 5.14, still pins TimerOutputs to 0.5. Dropping the 0.5 compat in SciML#1198 made any environment holding NonlinearSolveBase together with AlgebraicMultigrid and LinearSolve 5.15 unsatisfiable, which is what broke the OrdinaryDiffEq downstream lanes once OrdinaryDiffEqDifferentiation started requiring LinearSolve 5.15. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude <noreply@anthropic.com> Agent-Harness: Claude Code 2.1.251 Agent-Model: claude-fable-5 Agent-Session: https://claude.ai/code/session_016LsC6pp9z6s5EABX9DnVjE
ChrisRackauckas-Claude
force-pushed
the
downstream-compat
branch
from
August 30, 2026 11:28
5562c42 to
2d70b62
Compare
This was referenced Aug 30, 2026
Member
Author
|
Closing in favor of bumping TimerOutputs in the downstream that still pins 0.5:
Restoring 0.5 compat in NonlinearSolveBase would reverse #1198; AlgebraicMultigrid only uses documented Separately, the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
lib/NonlinearSolveBase/Project.toml:TimerOutputs = "1"→TimerOutputs = "0.5.23, 1"(restoring the range that #1198 dropped on 2026-08-26 as "stale"), plus a patch bump of NonlinearSolveBase to 2.49.2 (master released 2.49.1 via #1221 while this was being prepared; the resolution logs below were taken with the branch at 2.49.1, before rebasing) so the widened compat can be registered.The
Downstream.ymllanesOrdinaryDiffEq.jl/InterfaceI,InterfaceIIandRegression_Ifail on master since https://github.com/SciML/NonlinearSolve.jl/actions/runs/33303882132 withUnsatisfiable requirements detected for package AlgebraicMultigrid. The constraint chain:lib/OrdinaryDiffEqDifferentiationtoLinearSolve = "5.15". Downstream develops OrdinaryDiffEq master, so the test env can no longer downgrade LinearSolve.AlgebraicMultigrid = "2"in its weakdeps compat (4 - 5.13.1still allowed0.5, 1 - 2). AlgebraicMultigrid is in OrdinaryDiffEq's test target, so it must resolve to 2.0.1.TimerOutputs = "0.5.29 - 0.5".TimerOutputs = "1"→ no version left.The green run escaped this by resolving
LinearSolve v5.13.1+AlgebraicMultigrid v0.5.1; that escape hatch is gone now. Nothing in the General registry changed for these packages — the trigger was the OrdinaryDiffEq compat bump exposing the compat drop from #1198.The long-term fix belongs in AlgebraicMultigrid (widen its compat to TimerOutputs 1; it only uses
@timeit_debug). Until that is released, NonlinearSolveBase has to keep accepting TimerOutputs 0.5.Verification
Minimal reproducer (Julia 1.12.7): temp project,
Pkg.developof.,lib/NonlinearSolveBase,lib/SciMLJacobianOperators,lib/NonlinearSolveFirstOrder,lib/SimpleNonlinearSolve, thenPkg.add([AlgebraicMultigrid, LinearSolve@5.15]).Before (master
f561fb5cb):After (this branch), same script:
CI-shaped check: temp project developing the five upstream projects above plus OrdinaryDiffEq master (
ff71f2f3f) and itslib/OrdinaryDiffEqDifferentiation,Pkg.addof every non-developed name in OrdinaryDiffEq'stesttarget — resolves with the fix:Tests of
lib/NonlinearSolveBasewith the newly re-allowed version pinned (Pkg.add(PackageSpec(name="TimerOutputs", version="0.5.29")), Julia 1.12.7):typoson the diff: clean. Runic not applicable (onlyProject.tomlchanged).Not verified
InterfaceIrun); only the environment resolution the lanes die in was reproduced and shown to pass.lib/NonlinearSolveBaseCoreandQAwere run, since NonlinearSolveBase is the only project in the repo that depends on TimerOutputs.Things to push back on
0.5.23part can be dropped again.NonlinearSolveBase.@static_timeitcallsTimerOutputs.timer_expr(__module__, false, to, name, expr), buttimer_exprhas taken a leadingsource::LineNumberNodesince TimerOutputs 0.5.27, soenable_timer_outputs()makes NonlinearSolveBase fail to precompile with any TimerOutputs ≥ 0.5.27 (ArgumentError on 0.5.29, MethodError on 1.2.0). The default (timers disabled) is unaffected. Tracked separately in an issue.🤖 Generated with Claude Code (Claude Code 2.1.251, model: claude-fable-5)
https://claude.ai/code/session_016LsC6pp9z6s5EABX9DnVjE