From 644cdb9f79cff334f759aa20b1841eb84c9e2405 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sun, 28 Jun 2026 12:49:42 -0400 Subject: [PATCH] Fix DataDrivenLux downgrade CI: raise IntervalArithmetic and Optim floors The Downgrade Sublibraries / test (lib/DataDrivenLux) lane is red on master (run 28267588245, commit eb11901): the main Downgrade lane is green, only the DataDrivenLux sublibrary fails, and only at minimum compat versions. It resolves and builds, then fails at runtime with 5 errors. Two distinct root causes, both gated by [compat] lower bounds: 1. IntervalArithmetic floor 0.22.0 (4 errors). safe_sin/safe_cos in src/utils.jl evaluate real((Complex(x))) on x::Interval{Float64} during path-interval propagation. Base's sin(::Complex) does `zr == 0`, which dispatches to ==(::Interval, ::Interval). IntervalArithmetic 0.22.0-0.22.9 throw ArgumentError("== is purposely not supported for intervals"); 0.22.10 added the thin-interval fallback so the comparison returns a value and sin(Complex{Interval}) works. Raise floor to 0.22.10. 2. Optim floor 1.7.6 (1 BoundsError). BoundsError: attempt to access Float64 at index [2] in LineSearches.var"#phidphi#2". LineSearches <= 7.5.x make_phidphi does `f, g = value_gradient!(df, x_new)` and fails to unpack the scalar return of ManifoldObjective.value_gradient!. LineSearches 7.6.0 switched to value_jvp!(df, x_new, s) (a 2-tuple) and requires NLSolversBase 8. No Optim 1.x admits NLSolversBase 8 (all cap 7.9.0), so at the Optim 1.7 floor LineSearches stays <= 7.5.x and the BoundsError persists. Optim 2.0.0 pulls LineSearches 7.6+ / NLSolversBase 8. Require Optim = "2". Verified locally on Julia 1.10 LTS by pinning the new floors to their minimums (IntervalArithmetic v0.22.10, Optim v2.0.0): resolver co-installs IntervalArithmetic 0.22.10, Optim 2.0.0, LineSearches 7.7.1, NLSolversBase 8.0.0; DataDrivenLux Core test group is 96/96 pass, 0 fail, 0 error (was 0 pass / 5 errored on the old floors). Co-Authored-By: Chris Rackauckas --- lib/DataDrivenLux/Project.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/DataDrivenLux/Project.toml b/lib/DataDrivenLux/Project.toml index 07591e38..6816c8c5 100644 --- a/lib/DataDrivenLux/Project.toml +++ b/lib/DataDrivenLux/Project.toml @@ -1,6 +1,6 @@ name = "DataDrivenLux" uuid = "47881146-99d0-492a-8425-8f2f33327637" -version = "0.2.4" +version = "0.2.5" authors = ["JuliusMartensen "] [deps] @@ -45,13 +45,13 @@ Distributions = "0.25.123" DistributionsAD = "0.6" DocStringExtensions = "0.9.3" ForwardDiff = "0.10, 1" -IntervalArithmetic = "0.22, 0.23, 1" +IntervalArithmetic = "0.22.10, 0.23, 1" InverseFunctions = "0.1" LinearAlgebra = "1.10" Logging = "1.10" Lux = "1" LuxCore = "1" -Optim = "1.7, 2" +Optim = "2" Optimisers = "0.3, 0.4" OrdinaryDiffEq = "6, 7" Pkg = "1.10"