Skip to content

Unpin / widen test/ad Project.toml compat to resolve Mooncake ↔ SciMLSensitivity conflict#3503

Closed
ChrisRackauckas-Claude wants to merge 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:fix-ad-project-mooncake-sensitivity
Closed

Unpin / widen test/ad Project.toml compat to resolve Mooncake ↔ SciMLSensitivity conflict#3503
ChrisRackauckas-Claude wants to merge 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:fix-ad-project-mooncake-sensitivity

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Apr 22, 2026

Summary

The test (AD, 1.11) job on #3502 fails at Pkg.instantiate with:

ERROR: LoadError: Unsatisfiable requirements detected for package SciMLSensitivity [1ed8b502]:
 SciMLSensitivity log:
 ├─possible versions are: 7.0.0 - 7.105.0 or uninstalled
 ├─restricted to versions 7.104.0 - 7 by project, leaving only versions: 7.104.0 - 7.105.0
 └─restricted by compatibility requirements with Mooncake [da2b9cff] to versions:
   [7.0.0 - 7.71.2, 7.95.0 - 7.103.0] or uninstalled — no versions left

Root cause

  • SciMLSensitivity 7.104 and 7.105 both pin Mooncake = "0.5.25" in their Project.toml.
  • In the test/ad env, the resolvable Mooncake is capped at 0.5.24 by DifferentiationInterface 0.7.16's WeakCompat entry (Mooncake = "0.5.1 - 0.5.24").
  • test/ad/Project.toml had SciMLSensitivity = "7.104", which forced the resolver into the 7.104-7.105 range — but no Mooncake version in that range satisfies both SciMLSensitivity's 0.5.25+ floor and DI's 0.5.24 cap.

Change in this PR

Lower the SciMLSensitivity floor in test/ad/Project.toml from "7.104" to "7.89". SciMLSensitivity 7.89-7.103 have no direct Mooncake compat entry in the registry, so they would not re-apply that specific constraint. Mooncake = "0.4, 0.5" is left unchanged — already the widest range compatible with OrdinaryDiffEqCore v4's Mooncake = "0.4, 0.5" compat pin.

This is a test-env compat widening only; no source changes.

Honest caveat — this PR alone is not sufficient

Even after lowering the floor, the resolver is separately forced back into the 7.104-7.105 window by other deps in the env (SciMLBase 3 via OrdinaryDiffEqTsit5, FunctionWrappersWrappers 1 via OrdinaryDiffEqCore v4, FastBroadcast 1.3+, SciMLOperators 1.15+). So this one-line pin change does not on its own make Pkg.instantiate() succeed — verified locally.

The genuine unblock requires at least one of:

  1. Mooncake 0.5.25 compat JuliaDiff/DifferentiationInterface.jl#988 — bump DI's Mooncake WeakCompat to include 0.5.25+, so SciMLSensitivity 7.105 and DI 0.7.16 can co-resolve.
  2. A matching SciMLSensitivity Mooncake-compat relaxation so 7.105+ stops pinning Mooncake = "0.5.25" strictly (registry compat patch).
  3. A targeted LinearSolve WeakCompat relaxation (today caps via "0.5.15 - 0.5" — not the immediate binding constraint but in the chain).

Opening this PR as the test/ad-side half of the fix: once any of the three above lands, this pin is already loosened and the resolver will succeed.

Test plan

  • Confirmed the original failure locally (same Unsatisfiable log as CI).
  • Confirmed that with this PR alone the resolver still fails (now blocked downstream of SciMLBase 3 / FunctionWrappersWrappers 1 forcing 7.104-7.105 regardless of the project floor). So the test/ad/Project.toml side is loosened correctly, but CI will only turn green once one of the three upstream fixes is in.
  • Re-run test (AD, 1.11) after the upstream DI/SciMLSensitivity fix.

Co-Authored-By: Chris Rackauckas accounts@chrisrackauckas.com

…ncake compat

The `test (AD, 1.11)` job on SciML#3502 was failing with:

    ERROR: LoadError: Unsatisfiable requirements detected for package
    SciMLSensitivity [1ed8b502]:
     ├─restricted to versions 7.104.0 - 7 by project, leaving only
       versions: 7.104.0 - 7.105.0
     └─restricted by compatibility requirements with Mooncake [da2b9cff]
       to versions: [7.0.0 - 7.71.2, 7.95.0 - 7.103.0] or uninstalled
       — no versions left

SciMLSensitivity 7.104 and 7.105 both pin `Mooncake = "0.5.25"` in
their Project.toml, but the Mooncake version resolvable in the
test/ad env is capped at 0.5.24 by DifferentiationInterface 0.7.16's
WeakCompat (`Mooncake = "0.5.1 - 0.5.24"`) — there is no Mooncake in
the intersection of SciMLSensitivity 7.104+'s floor and DI 0.7.16's
cap.

SciMLSensitivity 7.89 - 7.103 have no direct Mooncake compat entry in
the registry, so they accept any Mooncake that the rest of the env
picks (here, 0.5.24). Lowering the test-env floor from "7.104" to
"7.89" unblocks the resolver by letting it pick a SciMLSensitivity
version whose Mooncake constraint is compatible with what
DifferentiationInterface 0.7.x admits.

This is a test-env compat widening only; no source changes. The
upstream fixes that would let the test env run on SciMLSensitivity
7.105 directly are (a) JuliaDiff/DifferentiationInterface.jl#988
(bump DI's Mooncake WeakCompat to 0.5.25) and (b) a matching
SciMLSensitivity Mooncake-compat relaxation — both tracked
separately.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor Author

Closing per request — SciMLSensitivity is out of scope for the v7 release unblock. The fix here was also incomplete (agent's own caveat: SciMLBase 3 / FastBroadcast 1.3 / SciMLOperators 1.15+ independently force 7.104-7.105, so the Mooncake conflict recurs regardless of the test/ad/Project.toml floor). Real fix lives upstream in JuliaDiff/DifferentiationInterface.jl#988 or a SciMLSensitivity registry compat patch.

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