From 18993e6f874840231ba0c8cb3882da3cc145003b Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 13:05:16 +0530 Subject: [PATCH 01/70] Fix downgrade tests --- Project.toml | 8 +++--- lib/OrdinaryDiffEqBDF/Project.toml | 28 ++++++------------- lib/OrdinaryDiffEqCore/Project.toml | 2 +- lib/OrdinaryDiffEqDefault/Project.toml | 8 +++--- .../Project.toml | 6 ++-- lib/OrdinaryDiffEqExponentialRK/Project.toml | 8 +++--- lib/OrdinaryDiffEqExtrapolation/Project.toml | 6 ++-- lib/OrdinaryDiffEqFIRK/Project.toml | 8 +++--- lib/OrdinaryDiffEqIMEXMultistep/Project.toml | 4 +-- lib/OrdinaryDiffEqLowStorageRK/Project.toml | 2 +- lib/OrdinaryDiffEqNonlinearSolve/Project.toml | 6 ++-- lib/OrdinaryDiffEqPDIRK/Project.toml | 6 ++-- lib/OrdinaryDiffEqRKIP/Project.toml | 2 +- lib/OrdinaryDiffEqRosenbrock/Project.toml | 8 +++--- lib/OrdinaryDiffEqSDIRK/Project.toml | 6 ++-- lib/OrdinaryDiffEqSIMDRK/Project.toml | 8 +++--- lib/OrdinaryDiffEqSSPRK/Project.toml | 2 +- lib/OrdinaryDiffEqStabilizedIRK/Project.toml | 8 +++--- lib/OrdinaryDiffEqTaylorSeries/Project.toml | 2 +- lib/OrdinaryDiffEqTsit5/Project.toml | 2 +- lib/OrdinaryDiffEqVerner/Project.toml | 2 +- 21 files changed, 60 insertions(+), 72 deletions(-) diff --git a/Project.toml b/Project.toml index 19043384b66..f6910b26dda 100644 --- a/Project.toml +++ b/Project.toml @@ -110,7 +110,7 @@ ADTypes = "1.16" Adapt = "4.3" ArrayInterface = "7.19" CommonSolve = "0.2.4" -DataStructures = "0.18.22, 0.19" +DataStructures = "0.19" DiffEqBase = "6.194" DocStringExtensions = "0.9.5" EnumX = "1.0.5" @@ -165,11 +165,11 @@ OrdinaryDiffEqVerner = "1.5.0" Polyester = "0.7.18" PreallocationTools = "0.4.31, 1" PrecompileTools = "1.2.1" -Preferences = "1.4.3" +Preferences = "1.5" RecursiveArrayTools = "3.36" Reexport = "1.2.2" -SciMLBase = "2.116" -SciMLOperators = "1.8" +SciMLBase = "2.128" +SciMLOperators = "1.15" SciMLStructures = "1.7" SimpleNonlinearSolve = "2.7" Static = "1.2" diff --git a/lib/OrdinaryDiffEqBDF/Project.toml b/lib/OrdinaryDiffEqBDF/Project.toml index a2e6f09da23..3b79e324621 100644 --- a/lib/OrdinaryDiffEqBDF/Project.toml +++ b/lib/OrdinaryDiffEqBDF/Project.toml @@ -13,8 +13,8 @@ OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" TruncatedStacktraces = "781d530d-4396-4725-bb49-402e4bee1e77" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" -ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" Preferences = "21216c6a-2e73-6563-6e65-726566657250" +ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" @@ -31,9 +31,9 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" -DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" ODEProblemLibrary = "fdc4e326-1af4-4b90-96e7-779fcce2daa5" AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" @@ -47,23 +47,23 @@ Test = "<0.0.1, 1" FastBroadcast = "0.3" Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" -DifferentiationInterface = "0.6.54, 0.7" MuladdMacro = "0.2" -LinearSolve = "3.46" +DifferentiationInterface = "0.6.54, 0.7" +LinearSolve = "3.54" PrecompileTools = "1.2, 1.3" LinearAlgebra = "1.10" OrdinaryDiffEqDifferentiation = "2" OrdinaryDiffEqSDIRK = "1.6.0" TruncatedStacktraces = "1.4" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3.4" Aqua = "0.8.11" ArrayInterface = "7.19" Enzyme = "0.13" -Preferences = "1.4" +Preferences = "1.5" MacroTools = "0.5.6" JET = "0.9, 0.11" -StaticArrays = "1.9" +StaticArrays = "1.9.7" julia = "1.10" ADTypes = "1.16" RecursiveArrayTools = "3.36" @@ -71,20 +71,8 @@ ODEProblemLibrary = "1" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] test = ["DiffEqDevTools", "DifferentiationInterface", "ForwardDiff", "Random", "SafeTestsets", "Test", "ODEProblemLibrary", "NonlinearSolve", "Enzyme", "LinearSolve", "Pkg", "JET", "Aqua", "AllocCheck"] - -[sources.OrdinaryDiffEqSDIRK] -path = "../OrdinaryDiffEqSDIRK" - -[sources.OrdinaryDiffEqDifferentiation] -path = "../OrdinaryDiffEqDifferentiation" - -[sources.OrdinaryDiffEqNonlinearSolve] -path = "../OrdinaryDiffEqNonlinearSolve" - -[sources.OrdinaryDiffEqCore] -path = "../OrdinaryDiffEqCore" diff --git a/lib/OrdinaryDiffEqCore/Project.toml b/lib/OrdinaryDiffEqCore/Project.toml index 7dab9bea498..76d4ac84db0 100644 --- a/lib/OrdinaryDiffEqCore/Project.toml +++ b/lib/OrdinaryDiffEqCore/Project.toml @@ -79,7 +79,7 @@ Static = "1.2" Aqua = "0.8.11" DocStringExtensions = "0.9" ArrayInterface = "7.19" -Preferences = "1.4" +Preferences = "1.5" SymbolicIndexingInterface = "0.3.31" MacroTools = "0.5.6" JET = "0.9, 0.11" diff --git a/lib/OrdinaryDiffEqDefault/Project.toml b/lib/OrdinaryDiffEqDefault/Project.toml index 13dd53ab036..5c514006b0c 100644 --- a/lib/OrdinaryDiffEqDefault/Project.toml +++ b/lib/OrdinaryDiffEqDefault/Project.toml @@ -39,22 +39,22 @@ Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" OrdinaryDiffEqBDF = "1.9.0" OrdinaryDiffEqVerner = "1.5.0" -LinearSolve = "3.46" +LinearSolve = "3.54" PrecompileTools = "1.2, 1.3" EnumX = "1.0" LinearAlgebra = "1.10" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" SparseArrays = "1.10" Aqua = "0.8.11" -Preferences = "1.4" +Preferences = "1.5" StaticArrays = "1.9" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" OrdinaryDiffEqRosenbrock = "1.15.1" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" AllocCheck = "0.2" diff --git a/lib/OrdinaryDiffEqDifferentiation/Project.toml b/lib/OrdinaryDiffEqDifferentiation/Project.toml index f0b38007c92..094d0131a32 100644 --- a/lib/OrdinaryDiffEqDifferentiation/Project.toml +++ b/lib/OrdinaryDiffEqDifferentiation/Project.toml @@ -20,14 +20,14 @@ DifferentiationInterface = "0.6.54, 0.7" LinearSolve = "3.54" ConstructionBase = "1.5.8" LinearAlgebra = "1.10" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" SparseArrays = "1.10" ConcreteStructs = "0.2" Aqua = "0.8.11" ArrayInterface = "7.19" -StaticArrays = "1.9" -SparseMatrixColorings = "0.4.14" +StaticArrays = "1.9.7" +SparseMatrixColorings = "0.4.23" julia = "1.10" ADTypes = "1.16" JET = "0.9, 0.11" diff --git a/lib/OrdinaryDiffEqExponentialRK/Project.toml b/lib/OrdinaryDiffEqExponentialRK/Project.toml index 87660df8aa7..a643cf9e722 100644 --- a/lib/OrdinaryDiffEqExponentialRK/Project.toml +++ b/lib/OrdinaryDiffEqExponentialRK/Project.toml @@ -40,22 +40,22 @@ Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" MuladdMacro = "0.2" OrdinaryDiffEqVerner = "1.5.0" -LinearSolve = "3.46" +LinearSolve = "3.54" ExponentialUtilities = "1.27" LinearAlgebra = "1.10" OrdinaryDiffEqDifferentiation = "2" OrdinaryDiffEqSDIRK = "1.6.0" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" SparseArrays = "1.10" Aqua = "0.8.11" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] diff --git a/lib/OrdinaryDiffEqExtrapolation/Project.toml b/lib/OrdinaryDiffEqExtrapolation/Project.toml index ff2048a5e3b..2e62b3bb826 100644 --- a/lib/OrdinaryDiffEqExtrapolation/Project.toml +++ b/lib/OrdinaryDiffEqExtrapolation/Project.toml @@ -34,10 +34,10 @@ FastBroadcast = "0.3" Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" MuladdMacro = "0.2" -LinearSolve = "3.46" +LinearSolve = "3.54" Polyester = "0.7" OrdinaryDiffEqDifferentiation = "2" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3.4" Aqua = "0.8.11" julia = "1.10" @@ -47,7 +47,7 @@ RecursiveArrayTools = "3.36" FastPower = "1.1" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] diff --git a/lib/OrdinaryDiffEqFIRK/Project.toml b/lib/OrdinaryDiffEqFIRK/Project.toml index 55ed14e3613..f9e8edaba78 100644 --- a/lib/OrdinaryDiffEqFIRK/Project.toml +++ b/lib/OrdinaryDiffEqFIRK/Project.toml @@ -41,11 +41,11 @@ Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" FastGaussQuadrature = "1.0.2" MuladdMacro = "0.2" -LinearSolve = "3.46" +LinearSolve = "3.54" Polyester = "0.7" LinearAlgebra = "1.10" OrdinaryDiffEqDifferentiation = "2" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3.4" Aqua = "0.8.11" GenericSchur = "0.5" @@ -58,9 +58,9 @@ ODEProblemLibrary = "1" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" -SciMLOperators = "1.4" +SciMLOperators = "1.15" [targets] test = ["DiffEqDevTools", "GenericSchur", "Random", "SafeTestsets", "Test", "ODEProblemLibrary", "Pkg"] diff --git a/lib/OrdinaryDiffEqIMEXMultistep/Project.toml b/lib/OrdinaryDiffEqIMEXMultistep/Project.toml index a8e1862baae..c429c41d214 100644 --- a/lib/OrdinaryDiffEqIMEXMultistep/Project.toml +++ b/lib/OrdinaryDiffEqIMEXMultistep/Project.toml @@ -30,7 +30,7 @@ FastBroadcast = "0.3" Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" OrdinaryDiffEqDifferentiation = "2" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" Aqua = "0.8.11" julia = "1.10" @@ -39,7 +39,7 @@ ADTypes = "1.16" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] diff --git a/lib/OrdinaryDiffEqLowStorageRK/Project.toml b/lib/OrdinaryDiffEqLowStorageRK/Project.toml index aa97f17076f..9bf567ae9ba 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/Project.toml +++ b/lib/OrdinaryDiffEqLowStorageRK/Project.toml @@ -44,7 +44,7 @@ SciMLBase = "2.116" OrdinaryDiffEqCore = "3.4" Static = "1.2" Aqua = "0.8.11" -Preferences = "1.4" +Preferences = "1.5" StaticArrays = "1.9" julia = "1.10" JET = "0.9, 0.11" diff --git a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml index de47749ada0..9a91ce8075f 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml +++ b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml @@ -47,19 +47,19 @@ FastBroadcast = "0.3" Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" MuladdMacro = "0.2" -LinearSolve = "3.46" +LinearSolve = "3.54" LineSearches = "7.4" LinearAlgebra = "1.10" OrdinaryDiffEqDifferentiation = "2" OrdinaryDiffEqSDIRK = "1.6.0" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" SimpleNonlinearSolve = "2.7" FastClosures = "0.3" SparseArrays = "1" Aqua = "0.8.11" ArrayInterface = "7.19" -StaticArrays = "1.9" +StaticArrays = "1.9.7" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" diff --git a/lib/OrdinaryDiffEqPDIRK/Project.toml b/lib/OrdinaryDiffEqPDIRK/Project.toml index e49325d37b0..d8bc715292d 100644 --- a/lib/OrdinaryDiffEqPDIRK/Project.toml +++ b/lib/OrdinaryDiffEqPDIRK/Project.toml @@ -35,17 +35,17 @@ DiffEqDevTools = "2.44.4" MuladdMacro = "0.2" Polyester = "0.7" OrdinaryDiffEqDifferentiation = "2" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" Aqua = "0.8.11" -StaticArrays = "1.9" +StaticArrays = "1.9.7" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] diff --git a/lib/OrdinaryDiffEqRKIP/Project.toml b/lib/OrdinaryDiffEqRKIP/Project.toml index a48dc4aac25..c8a28830b3a 100644 --- a/lib/OrdinaryDiffEqRKIP/Project.toml +++ b/lib/OrdinaryDiffEqRKIP/Project.toml @@ -33,7 +33,7 @@ StaticArrays = "1.9.13" julia = "1.10" DiffEqBase = "6.194" SafeTestsets = "0.1.0" -SciMLOperators = "1.3.1" +SciMLOperators = "1.4" FFTW = "1.8.0" [targets] diff --git a/lib/OrdinaryDiffEqRosenbrock/Project.toml b/lib/OrdinaryDiffEqRosenbrock/Project.toml index b4758239532..c57a0121602 100644 --- a/lib/OrdinaryDiffEqRosenbrock/Project.toml +++ b/lib/OrdinaryDiffEqRosenbrock/Project.toml @@ -47,16 +47,16 @@ DiffEqDevTools = "2.44.4" FiniteDiff = "2.27" MuladdMacro = "0.2" DifferentiationInterface = "0.6.54, 0.7" -LinearSolve = "3.46" +LinearSolve = "3.54" Polyester = "0.7" PrecompileTools = "1.2, 1.3" LinearAlgebra = "1.10" OrdinaryDiffEqDifferentiation = "2" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" Static = "1.2" Aqua = "0.8.11" -Preferences = "1.4" +Preferences = "1.5" Enzyme = "0.13" MacroTools = "0.5.6" julia = "1.10" @@ -67,7 +67,7 @@ ODEProblemLibrary = "1" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] diff --git a/lib/OrdinaryDiffEqSDIRK/Project.toml b/lib/OrdinaryDiffEqSDIRK/Project.toml index d2aa0798498..27787bdcb35 100644 --- a/lib/OrdinaryDiffEqSDIRK/Project.toml +++ b/lib/OrdinaryDiffEqSDIRK/Project.toml @@ -38,18 +38,18 @@ MuladdMacro = "0.2" LinearAlgebra = "1.10" OrdinaryDiffEqDifferentiation = "2" TruncatedStacktraces = "1.4" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" Aqua = "0.8.11" MacroTools = "0.5.6" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] diff --git a/lib/OrdinaryDiffEqSIMDRK/Project.toml b/lib/OrdinaryDiffEqSIMDRK/Project.toml index 691e82343ae..c4e55b028be 100644 --- a/lib/OrdinaryDiffEqSIMDRK/Project.toml +++ b/lib/OrdinaryDiffEqSIMDRK/Project.toml @@ -23,16 +23,16 @@ SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" Pkg = "1" Test = "<0.0.1, 1" DiffEqDevTools = "2.44.4" -MuladdMacro = "0.2" +MuladdMacro = "0.2.1" OrdinaryDiffEqCore = "3" -Static = "0.7, 0.8, 1" +Static = "1.2" SLEEFPirates = "0.6" -VectorizationBase = "0.21" +VectorizationBase = "0.21.59" JET = "0.9, 0.11" StaticArrays = "1.9" julia = "1.10" SafeTestsets = "0.1.0" -Reexport = "1" +Reexport = "1.2.2" [targets] test = ["DiffEqDevTools", "SafeTestsets", "StaticArrays", "Test", "Pkg"] diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 217d8f6c655..2329229c437 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -44,7 +44,7 @@ SciMLBase = "2.116" OrdinaryDiffEqCore = "3" Static = "1.2" Aqua = "0.8.11" -Preferences = "1.4" +Preferences = "1.5" StaticArrays = "1.9" julia = "1.10" JET = "0.9, 0.11" diff --git a/lib/OrdinaryDiffEqStabilizedIRK/Project.toml b/lib/OrdinaryDiffEqStabilizedIRK/Project.toml index 704ed419eae..e0e65075528 100644 --- a/lib/OrdinaryDiffEqStabilizedIRK/Project.toml +++ b/lib/OrdinaryDiffEqStabilizedIRK/Project.toml @@ -37,19 +37,19 @@ DiffEqDevTools = "2.44.4" MuladdMacro = "0.2" LinearAlgebra = "1.10" OrdinaryDiffEqDifferentiation = "2" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" Aqua = "0.8.11" OrdinaryDiffEqStabilizedRK = "1.4.0" -StaticArrays = "1.9" +StaticArrays = "1.9.7" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SafeTestsets = "0.1.0" [targets] diff --git a/lib/OrdinaryDiffEqTaylorSeries/Project.toml b/lib/OrdinaryDiffEqTaylorSeries/Project.toml index 4be4da627d2..393f3b74baa 100644 --- a/lib/OrdinaryDiffEqTaylorSeries/Project.toml +++ b/lib/OrdinaryDiffEqTaylorSeries/Project.toml @@ -44,7 +44,7 @@ ODEProblemLibrary = "1" OrdinaryDiffEqCore = "3" Pkg = "1" PrecompileTools = "1.2, 1.3" -Preferences = "1.4" +Preferences = "1.5" Random = "<0.0.1, 1" RecursiveArrayTools = "3.36" Reexport = "1.2" diff --git a/lib/OrdinaryDiffEqTsit5/Project.toml b/lib/OrdinaryDiffEqTsit5/Project.toml index cb848e9930d..f8b47ea2d01 100644 --- a/lib/OrdinaryDiffEqTsit5/Project.toml +++ b/lib/OrdinaryDiffEqTsit5/Project.toml @@ -41,7 +41,7 @@ SciMLBase = "2.116" OrdinaryDiffEqCore = "3" Static = "1.2" Aqua = "0.8.11" -Preferences = "1.4" +Preferences = "1.5" julia = "1.10" JET = "0.9, 0.11" RecursiveArrayTools = "3.36" diff --git a/lib/OrdinaryDiffEqVerner/Project.toml b/lib/OrdinaryDiffEqVerner/Project.toml index b3dabccf51f..a3ebe2c5e15 100644 --- a/lib/OrdinaryDiffEqVerner/Project.toml +++ b/lib/OrdinaryDiffEqVerner/Project.toml @@ -46,7 +46,7 @@ SciMLBase = "2.116" OrdinaryDiffEqCore = "3" Static = "1.2" Aqua = "0.8.11" -Preferences = "1.4" +Preferences = "1.5" julia = "1.10" JET = "0.9, 0.11" RecursiveArrayTools = "3.36" From a1b7b8acd70ae7217e00a2f042fecbf829424496 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 15:27:57 +0530 Subject: [PATCH 02/70] enable downgrade tests --- .github/workflows/Downgrade.yml | 2 +- .github/workflows/DowngradeSublibraries.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index a097b67b526..713441bfec5 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -17,7 +17,7 @@ concurrency: cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: test: - if: false + if: true runs-on: ubuntu-latest strategy: matrix: diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 15da0e8aa74..972013265aa 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -19,7 +19,7 @@ jobs: test: runs-on: ubuntu-latest # Disabled: julia-downgrade-compat@v2 removes local path deps from manifest, see #3021 - if: false + if: true strategy: fail-fast: false matrix: From 2d56e743a984dd3edbcf56ab5b7b97bbb0ad51a2 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 15:39:23 +0530 Subject: [PATCH 03/70] Updates --- .github/workflows/Downgrade.yml | 5 +++++ .github/workflows/DowngradeSublibraries.yml | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 713441bfec5..5fda1355a3d 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,6 +33,11 @@ jobs: with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} + - name: Re-resolve manifest after downgrade + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.resolve() - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 972013265aa..4adbc96594c 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -18,7 +18,7 @@ concurrency: jobs: test: runs-on: ubuntu-latest - # Disabled: julia-downgrade-compat@v2 removes local path deps from manifest, see #3021 + # Workaround for julia-downgrade-compat@v2 dropping local path deps from Manifest.toml (#3021). if: true strategy: fail-fast: false @@ -69,6 +69,11 @@ jobs: projects: ${{ matrix.project }} skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation julia_version: ${{ matrix.julia-version }} + - name: Re-resolve manifest after downgrade + shell: julia --color=yes --project=${{ matrix.project }} {0} + run: | + using Pkg + Pkg.resolve() - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} From 1ce8a41168c3cf6dc18502d889a1b7997195ab5b Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 15:58:16 +0530 Subject: [PATCH 04/70] Fixed benchmark and downgrade tests --- .github/workflows/Downgrade.yml | 1 + .github/workflows/DowngradeSublibraries.yml | 38 ++++++++++++--------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 5fda1355a3d..d903566cd53 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -38,6 +38,7 @@ jobs: run: | using Pkg Pkg.resolve() + Pkg.instantiate() - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 4adbc96594c..207cb3ea350 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -26,39 +26,42 @@ jobs: downgrade_mode: ['alldeps'] julia-version: ['1.11'] project: - # - 'lib/ImplicitDiscreteSolve' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqAdamsBashforthMoulton' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqBDF' # disabled: see #2977 + - 'lib/ImplicitDiscreteSolve' + - 'lib/OrdinaryDiffEqAdamsBashforthMoulton' + - 'lib/OrdinaryDiffEqBDF' - 'lib/OrdinaryDiffEqCore' - # - 'lib/OrdinaryDiffEqDefault' # disabled: see #2977 + - 'lib/OrdinaryDiffEqDefault' - 'lib/OrdinaryDiffEqDifferentiation' - 'lib/OrdinaryDiffEqExplicitRK' - # - 'lib/OrdinaryDiffEqExponentialRK' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqExtrapolation' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqFIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqExponentialRK' + - 'lib/OrdinaryDiffEqExtrapolation' + - 'lib/OrdinaryDiffEqFIRK' - 'lib/OrdinaryDiffEqFeagin' - 'lib/OrdinaryDiffEqFunctionMap' - 'lib/OrdinaryDiffEqHighOrderRK' - # - 'lib/OrdinaryDiffEqIMEXMultistep' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqLinear' # disabled: see #2977 + - 'lib/OrdinaryDiffEqIMEXMultistep' + - 'lib/OrdinaryDiffEqLinear' - 'lib/OrdinaryDiffEqLowOrderRK' - 'lib/OrdinaryDiffEqLowStorageRK' - # - 'lib/OrdinaryDiffEqNonlinearSolve' # disabled: see #2977 + - 'lib/OrdinaryDiffEqNewmark' + - 'lib/OrdinaryDiffEqNonlinearSolve' - 'lib/OrdinaryDiffEqNordsieck' - # - 'lib/OrdinaryDiffEqPDIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqPDIRK' - 'lib/OrdinaryDiffEqPRK' - 'lib/OrdinaryDiffEqQPRK' - # - 'lib/OrdinaryDiffEqRKN' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqRosenbrock' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqSDIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqRKIP' + - 'lib/OrdinaryDiffEqRKN' + - 'lib/OrdinaryDiffEqRosenbrock' + - 'lib/OrdinaryDiffEqSDIRK' + - 'lib/OrdinaryDiffEqSIMDRK' - 'lib/OrdinaryDiffEqSSPRK' - # - 'lib/OrdinaryDiffEqStabilizedIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqStabilizedIRK' - 'lib/OrdinaryDiffEqStabilizedRK' - 'lib/OrdinaryDiffEqSymplecticRK' - # - 'lib/OrdinaryDiffEqTaylorSeries' # disabled: see #2977 + - 'lib/OrdinaryDiffEqTaylorSeries' - 'lib/OrdinaryDiffEqTsit5' - 'lib/OrdinaryDiffEqVerner' - # - 'lib/SimpleImplicitDiscreteSolve' # disabled: see #2977 + - 'lib/SimpleImplicitDiscreteSolve' steps: - uses: actions/checkout@v6 - uses: julia-actions/setup-julia@v2 @@ -74,6 +77,7 @@ jobs: run: | using Pkg Pkg.resolve() + Pkg.instantiate() - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} From 629f23e7c58475368029898371fefd0450c30492 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 16:10:46 +0530 Subject: [PATCH 05/70] Fixed benchmark and downgrade tests --- .github/workflows/Downgrade.yml | 6 +----- .github/workflows/DowngradeSublibraries.yml | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index d903566cd53..42545c6c978 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -34,11 +34,7 @@ jobs: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.resolve() - Pkg.instantiate() + run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 207cb3ea350..ad1c4b86263 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -73,11 +73,7 @@ jobs: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade - shell: julia --color=yes --project=${{ matrix.project }} {0} - run: | - using Pkg - Pkg.resolve() - Pkg.instantiate() + run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} From 6a9c2aa061937aea5db684a836d26e3c465c963b Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 16:16:44 +0530 Subject: [PATCH 06/70] Fixed sublibraries --- .github/workflows/DowngradeSublibraries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index ad1c4b86263..7732a9f724b 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -70,7 +70,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqBDF,OrdinaryDiffEqCore,OrdinaryDiffEqDifferentiation,OrdinaryDiffEqExplicitRK,OrdinaryDiffEqLowOrderRK,OrdinaryDiffEqLowStorageRK,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqRKN,OrdinaryDiffEqRosenbrock,OrdinaryDiffEqSDIRK,OrdinaryDiffEqStabilizedRK,OrdinaryDiffEqTsit5,OrdinaryDiffEqVerner julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' From 90f2b0a69f6282ee466077a3e8a6dff02a0b83e2 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:20:11 +0530 Subject: [PATCH 07/70] Fixed sublibraries --- .github/workflows/Downgrade.yml | 2 - .github/workflows/DowngradeSublibraries.yml | 43 +++++++++----------- lib/OrdinaryDiffEqExponentialRK/Project.toml | 5 +++ 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 42545c6c978..713441bfec5 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,8 +33,6 @@ jobs: with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} - - name: Re-resolve manifest after downgrade - run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 7732a9f724b..972013265aa 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -18,7 +18,7 @@ concurrency: jobs: test: runs-on: ubuntu-latest - # Workaround for julia-downgrade-compat@v2 dropping local path deps from Manifest.toml (#3021). + # Disabled: julia-downgrade-compat@v2 removes local path deps from manifest, see #3021 if: true strategy: fail-fast: false @@ -26,42 +26,39 @@ jobs: downgrade_mode: ['alldeps'] julia-version: ['1.11'] project: - - 'lib/ImplicitDiscreteSolve' - - 'lib/OrdinaryDiffEqAdamsBashforthMoulton' - - 'lib/OrdinaryDiffEqBDF' + # - 'lib/ImplicitDiscreteSolve' # disabled: see #2977 + # - 'lib/OrdinaryDiffEqAdamsBashforthMoulton' # disabled: see #2977 + # - 'lib/OrdinaryDiffEqBDF' # disabled: see #2977 - 'lib/OrdinaryDiffEqCore' - - 'lib/OrdinaryDiffEqDefault' + # - 'lib/OrdinaryDiffEqDefault' # disabled: see #2977 - 'lib/OrdinaryDiffEqDifferentiation' - 'lib/OrdinaryDiffEqExplicitRK' - - 'lib/OrdinaryDiffEqExponentialRK' - - 'lib/OrdinaryDiffEqExtrapolation' - - 'lib/OrdinaryDiffEqFIRK' + # - 'lib/OrdinaryDiffEqExponentialRK' # disabled: see #2977 + # - 'lib/OrdinaryDiffEqExtrapolation' # disabled: see #2977 + # - 'lib/OrdinaryDiffEqFIRK' # disabled: see #2977 - 'lib/OrdinaryDiffEqFeagin' - 'lib/OrdinaryDiffEqFunctionMap' - 'lib/OrdinaryDiffEqHighOrderRK' - - 'lib/OrdinaryDiffEqIMEXMultistep' - - 'lib/OrdinaryDiffEqLinear' + # - 'lib/OrdinaryDiffEqIMEXMultistep' # disabled: see #2977 + # - 'lib/OrdinaryDiffEqLinear' # disabled: see #2977 - 'lib/OrdinaryDiffEqLowOrderRK' - 'lib/OrdinaryDiffEqLowStorageRK' - - 'lib/OrdinaryDiffEqNewmark' - - 'lib/OrdinaryDiffEqNonlinearSolve' + # - 'lib/OrdinaryDiffEqNonlinearSolve' # disabled: see #2977 - 'lib/OrdinaryDiffEqNordsieck' - - 'lib/OrdinaryDiffEqPDIRK' + # - 'lib/OrdinaryDiffEqPDIRK' # disabled: see #2977 - 'lib/OrdinaryDiffEqPRK' - 'lib/OrdinaryDiffEqQPRK' - - 'lib/OrdinaryDiffEqRKIP' - - 'lib/OrdinaryDiffEqRKN' - - 'lib/OrdinaryDiffEqRosenbrock' - - 'lib/OrdinaryDiffEqSDIRK' - - 'lib/OrdinaryDiffEqSIMDRK' + # - 'lib/OrdinaryDiffEqRKN' # disabled: see #2977 + # - 'lib/OrdinaryDiffEqRosenbrock' # disabled: see #2977 + # - 'lib/OrdinaryDiffEqSDIRK' # disabled: see #2977 - 'lib/OrdinaryDiffEqSSPRK' - - 'lib/OrdinaryDiffEqStabilizedIRK' + # - 'lib/OrdinaryDiffEqStabilizedIRK' # disabled: see #2977 - 'lib/OrdinaryDiffEqStabilizedRK' - 'lib/OrdinaryDiffEqSymplecticRK' - - 'lib/OrdinaryDiffEqTaylorSeries' + # - 'lib/OrdinaryDiffEqTaylorSeries' # disabled: see #2977 - 'lib/OrdinaryDiffEqTsit5' - 'lib/OrdinaryDiffEqVerner' - - 'lib/SimpleImplicitDiscreteSolve' + # - 'lib/SimpleImplicitDiscreteSolve' # disabled: see #2977 steps: - uses: actions/checkout@v6 - uses: julia-actions/setup-julia@v2 @@ -70,10 +67,8 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqBDF,OrdinaryDiffEqCore,OrdinaryDiffEqDifferentiation,OrdinaryDiffEqExplicitRK,OrdinaryDiffEqLowOrderRK,OrdinaryDiffEqLowStorageRK,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqRKN,OrdinaryDiffEqRosenbrock,OrdinaryDiffEqSDIRK,OrdinaryDiffEqStabilizedRK,OrdinaryDiffEqTsit5,OrdinaryDiffEqVerner + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation julia_version: ${{ matrix.julia-version }} - - name: Re-resolve manifest after downgrade - run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} diff --git a/lib/OrdinaryDiffEqExponentialRK/Project.toml b/lib/OrdinaryDiffEqExponentialRK/Project.toml index a643cf9e722..fa12a1e2e1f 100644 --- a/lib/OrdinaryDiffEqExponentialRK/Project.toml +++ b/lib/OrdinaryDiffEqExponentialRK/Project.toml @@ -16,6 +16,11 @@ RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +[weakdeps] +OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" +OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2" +OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" + [extras] Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" From 2654921c808d1cc74ee24af297328e547dd4adf7 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:25:55 +0530 Subject: [PATCH 08/70] Fixed sublibraries --- .github/workflows/Downgrade.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 713441bfec5..42545c6c978 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,6 +33,8 @@ jobs: with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} + - name: Re-resolve manifest after downgrade + run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: From 8e81681a00581366b4aa5ba53ef9867740c07152 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:30:03 +0530 Subject: [PATCH 09/70] Fixes --- .github/workflows/DowngradeSublibraries.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 972013265aa..bbdc1def298 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -69,6 +69,8 @@ jobs: projects: ${{ matrix.project }} skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation julia_version: ${{ matrix.julia-version }} + - name: Re-resolve manifest after downgrade + run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} From 05fde5a7fa5980562364cc52aa125d4c492b00ab Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:40:56 +0530 Subject: [PATCH 10/70] Fix remaining sublibraries --- lib/OrdinaryDiffEqSSPRK/Project.toml | 3 +++ lib/OrdinaryDiffEqSymplecticRK/Project.toml | 4 +++- lib/OrdinaryDiffEqVerner/Project.toml | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 2329229c437..15f82a0d433 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -17,6 +17,9 @@ RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +[weakdeps] +OrdinaryDiffEqLowStorageRK = "b0944070-b475-4768-8dec-fb6eb410534d" + [extras] Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/lib/OrdinaryDiffEqSymplecticRK/Project.toml b/lib/OrdinaryDiffEqSymplecticRK/Project.toml index 05017ab8709..e146672c198 100644 --- a/lib/OrdinaryDiffEqSymplecticRK/Project.toml +++ b/lib/OrdinaryDiffEqSymplecticRK/Project.toml @@ -13,10 +13,12 @@ Reexport = "189a3867-3050-52da-a836-e630ba90ab69" OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +[weakdeps] +OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" + [extras] Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" diff --git a/lib/OrdinaryDiffEqVerner/Project.toml b/lib/OrdinaryDiffEqVerner/Project.toml index a3ebe2c5e15..022d5136395 100644 --- a/lib/OrdinaryDiffEqVerner/Project.toml +++ b/lib/OrdinaryDiffEqVerner/Project.toml @@ -18,6 +18,9 @@ RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +[weakdeps] +OrdinaryDiffEqExplicitRK = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" + [extras] JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" @@ -27,7 +30,6 @@ DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" ODEProblemLibrary = "fdc4e326-1af4-4b90-96e7-779fcce2daa5" AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" -OrdinaryDiffEqExplicitRK = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" [compat] From 21bf43a112d31a3eb0bf3741e2da0d6c7670994a Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:44:27 +0530 Subject: [PATCH 11/70] Fix remaining sublibraries --- lib/OrdinaryDiffEqVerner/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/OrdinaryDiffEqVerner/Project.toml b/lib/OrdinaryDiffEqVerner/Project.toml index 022d5136395..b5fd249bf13 100644 --- a/lib/OrdinaryDiffEqVerner/Project.toml +++ b/lib/OrdinaryDiffEqVerner/Project.toml @@ -30,6 +30,7 @@ DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" ODEProblemLibrary = "fdc4e326-1af4-4b90-96e7-779fcce2daa5" AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" +OrdinaryDiffEqExplicitRK = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" [compat] From b718fd5b84651a3bb7685a295f2e398eb85afda0 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:46:06 +0530 Subject: [PATCH 12/70] Fix remaining sublibraries --- lib/OrdinaryDiffEqSymplecticRK/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/OrdinaryDiffEqSymplecticRK/Project.toml b/lib/OrdinaryDiffEqSymplecticRK/Project.toml index e146672c198..44a1e19d603 100644 --- a/lib/OrdinaryDiffEqSymplecticRK/Project.toml +++ b/lib/OrdinaryDiffEqSymplecticRK/Project.toml @@ -19,6 +19,7 @@ OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" [extras] Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" From 7639026088a59c5ce51476fda3db231d7a15db18 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:49:06 +0530 Subject: [PATCH 13/70] Retrigger From f29e0c4aecd7138138f5cdf2787848cc7072747d Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 17:54:37 +0530 Subject: [PATCH 14/70] Fixes and Retrigger --- lib/OrdinaryDiffEqSymplecticRK/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/OrdinaryDiffEqSymplecticRK/Project.toml b/lib/OrdinaryDiffEqSymplecticRK/Project.toml index 44a1e19d603..115a9802b40 100644 --- a/lib/OrdinaryDiffEqSymplecticRK/Project.toml +++ b/lib/OrdinaryDiffEqSymplecticRK/Project.toml @@ -15,6 +15,7 @@ SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" [weakdeps] OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" +OrdinaryDiffEqRKN = "af6ede74-add8-4cfd-b1df-9a4dbb109d7a" [extras] Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" From d5585ff1105325e70457254135a5aab34bac145e Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 19:20:25 +0530 Subject: [PATCH 15/70] Fixes --- .github/workflows/CI.yml | 27 ++++++++++++++++++++- .github/workflows/DowngradeSublibraries.yml | 27 ++++++++++++++++++++- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2e1d5504cf6..2ad6f625dc5 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -355,9 +355,34 @@ jobs: version: 'pre' steps: - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v2 + - name: Setup Julia (first attempt) + id: setup-julia + continue-on-error: true + uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.version }} + - name: Verify Julia on PATH + id: verify-julia + continue-on-error: true + run: julia --version + - name: Clear Julia tool cache before retry + if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' + shell: bash + run: | + set -euo pipefail + if [ -n "${RUNNER_TOOL_CACHE:-}" ] && [ -d "${RUNNER_TOOL_CACHE}/julia" ]; then + echo "Clearing ${RUNNER_TOOL_CACHE}/julia before retry." + rm -rf "${RUNNER_TOOL_CACHE}/julia" + else + echo "No Julia tool cache found to clear." + fi + - name: Setup Julia (retry) + if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' + uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + - name: Verify Julia after setup + run: julia --version - uses: actions/cache@v5 env: cache-name: cache-artifacts diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index bbdc1def298..3c269f0ed40 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -61,9 +61,34 @@ jobs: # - 'lib/SimpleImplicitDiscreteSolve' # disabled: see #2977 steps: - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v2 + - name: Setup Julia (first attempt) + id: setup-julia + continue-on-error: true + uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.julia-version }} + - name: Verify Julia on PATH + id: verify-julia + continue-on-error: true + run: julia --version + - name: Clear Julia tool cache before retry + if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' + shell: bash + run: | + set -euo pipefail + if [ -n "${RUNNER_TOOL_CACHE:-}" ] && [ -d "${RUNNER_TOOL_CACHE}/julia" ]; then + echo "Clearing ${RUNNER_TOOL_CACHE}/julia before retry." + rm -rf "${RUNNER_TOOL_CACHE}/julia" + else + echo "No Julia tool cache found to clear." + fi + - name: Setup Julia (retry) + if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' + uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.julia-version }} + - name: Verify Julia after setup + run: julia --version - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} From c9772924f4985e267c143832b7e72c6ab94f784c Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 22:37:10 +0530 Subject: [PATCH 16/70] Fixes --- .github/workflows/Downgrade.yml | 27 ++++++++- .github/workflows/DowngradeSublibraries.yml | 61 ++++++--------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 42545c6c978..bc416b003c4 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -26,9 +26,34 @@ jobs: group: ['InterfaceI'] steps: - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v2 + - name: Setup Julia (first attempt) + id: setup-julia + continue-on-error: true + uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.julia-version }} + - name: Verify Julia on PATH + id: verify-julia + continue-on-error: true + run: julia --version + - name: Clear Julia tool cache before retry + if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' + shell: bash + run: | + set -euo pipefail + if [ -n "${RUNNER_TOOL_CACHE:-}" ] && [ -d "${RUNNER_TOOL_CACHE}/julia" ]; then + echo "Clearing ${RUNNER_TOOL_CACHE}/julia before retry." + rm -rf "${RUNNER_TOOL_CACHE}/julia" + else + echo "No Julia tool cache found to clear." + fi + - name: Setup Julia (retry) + if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' + uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.julia-version }} + - name: Verify Julia after setup + run: julia --version - uses: julia-actions/julia-downgrade-compat@v2 with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 3c269f0ed40..57b71d3ea8d 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -26,69 +26,44 @@ jobs: downgrade_mode: ['alldeps'] julia-version: ['1.11'] project: - # - 'lib/ImplicitDiscreteSolve' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqAdamsBashforthMoulton' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqBDF' # disabled: see #2977 + - 'lib/ImplicitDiscreteSolve' + - 'lib/OrdinaryDiffEqAdamsBashforthMoulton' + - 'lib/OrdinaryDiffEqBDF' - 'lib/OrdinaryDiffEqCore' - # - 'lib/OrdinaryDiffEqDefault' # disabled: see #2977 + - 'lib/OrdinaryDiffEqDefault' - 'lib/OrdinaryDiffEqDifferentiation' - 'lib/OrdinaryDiffEqExplicitRK' - # - 'lib/OrdinaryDiffEqExponentialRK' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqExtrapolation' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqFIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqExponentialRK' + - 'lib/OrdinaryDiffEqExtrapolation' + - 'lib/OrdinaryDiffEqFIRK' - 'lib/OrdinaryDiffEqFeagin' - 'lib/OrdinaryDiffEqFunctionMap' - 'lib/OrdinaryDiffEqHighOrderRK' - # - 'lib/OrdinaryDiffEqIMEXMultistep' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqLinear' # disabled: see #2977 + - 'lib/OrdinaryDiffEqIMEXMultistep' + - 'lib/OrdinaryDiffEqLinear' - 'lib/OrdinaryDiffEqLowOrderRK' - 'lib/OrdinaryDiffEqLowStorageRK' - # - 'lib/OrdinaryDiffEqNonlinearSolve' # disabled: see #2977 + - 'lib/OrdinaryDiffEqNonlinearSolve' - 'lib/OrdinaryDiffEqNordsieck' - # - 'lib/OrdinaryDiffEqPDIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqPDIRK' - 'lib/OrdinaryDiffEqPRK' - 'lib/OrdinaryDiffEqQPRK' - # - 'lib/OrdinaryDiffEqRKN' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqRosenbrock' # disabled: see #2977 - # - 'lib/OrdinaryDiffEqSDIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqRKN' + - 'lib/OrdinaryDiffEqRosenbrock' + - 'lib/OrdinaryDiffEqSDIRK' - 'lib/OrdinaryDiffEqSSPRK' - # - 'lib/OrdinaryDiffEqStabilizedIRK' # disabled: see #2977 + - 'lib/OrdinaryDiffEqStabilizedIRK' - 'lib/OrdinaryDiffEqStabilizedRK' - 'lib/OrdinaryDiffEqSymplecticRK' - # - 'lib/OrdinaryDiffEqTaylorSeries' # disabled: see #2977 + - 'lib/OrdinaryDiffEqTaylorSeries' - 'lib/OrdinaryDiffEqTsit5' - 'lib/OrdinaryDiffEqVerner' - # - 'lib/SimpleImplicitDiscreteSolve' # disabled: see #2977 + - 'lib/SimpleImplicitDiscreteSolve' steps: - uses: actions/checkout@v6 - - name: Setup Julia (first attempt) - id: setup-julia - continue-on-error: true - uses: julia-actions/setup-julia@v2 + - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.julia-version }} - - name: Verify Julia on PATH - id: verify-julia - continue-on-error: true - run: julia --version - - name: Clear Julia tool cache before retry - if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' - shell: bash - run: | - set -euo pipefail - if [ -n "${RUNNER_TOOL_CACHE:-}" ] && [ -d "${RUNNER_TOOL_CACHE}/julia" ]; then - echo "Clearing ${RUNNER_TOOL_CACHE}/julia before retry." - rm -rf "${RUNNER_TOOL_CACHE}/julia" - else - echo "No Julia tool cache found to clear." - fi - - name: Setup Julia (retry) - if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.julia-version }} - - name: Verify Julia after setup - run: julia --version - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} From 6c4bc9c160c608e98c8f18a7840b4701c2c9de47 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 22:44:13 +0530 Subject: [PATCH 17/70] Fixes --- lib/OrdinaryDiffEqLinear/Project.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/OrdinaryDiffEqLinear/Project.toml b/lib/OrdinaryDiffEqLinear/Project.toml index f53bae62f5a..e76ecae6f0e 100644 --- a/lib/OrdinaryDiffEqLinear/Project.toml +++ b/lib/OrdinaryDiffEqLinear/Project.toml @@ -13,6 +13,10 @@ SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +[weakdeps] +OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce" +OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2" + [extras] Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" From 5acecf6171c2f3be0b9086afa4f634ab195ff9cd Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 22:49:06 +0530 Subject: [PATCH 18/70] Fixes --- lib/ImplicitDiscreteSolve/Project.toml | 3 +++ lib/OrdinaryDiffEqNonlinearSolve/Project.toml | 3 +++ lib/SimpleImplicitDiscreteSolve/Project.toml | 3 +++ 3 files changed, 9 insertions(+) diff --git a/lib/ImplicitDiscreteSolve/Project.toml b/lib/ImplicitDiscreteSolve/Project.toml index 5f1c5f7798f..740e92d3510 100644 --- a/lib/ImplicitDiscreteSolve/Project.toml +++ b/lib/ImplicitDiscreteSolve/Project.toml @@ -13,6 +13,9 @@ Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" +[weakdeps] +OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" + [extras] JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" diff --git a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml index 9a91ce8075f..81a70c21bd0 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml +++ b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml @@ -25,6 +25,9 @@ DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" SciMLStructures = "53ae85a6-f571-4167-b2af-e1d143709226" SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +[weakdeps] +OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" + [extras] Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/lib/SimpleImplicitDiscreteSolve/Project.toml b/lib/SimpleImplicitDiscreteSolve/Project.toml index 1e56f77a925..1318a069f7c 100644 --- a/lib/SimpleImplicitDiscreteSolve/Project.toml +++ b/lib/SimpleImplicitDiscreteSolve/Project.toml @@ -9,6 +9,9 @@ Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7" +[weakdeps] +OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" + [extras] JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" From 9b297e7f32745cba359d74c525cf1e4429b74580 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 23:39:06 +0530 Subject: [PATCH 19/70] Fixes --- lib/ImplicitDiscreteSolve/Project.toml | 2 ++ lib/OrdinaryDiffEqLinear/Project.toml | 1 + lib/OrdinaryDiffEqRosenbrock/Project.toml | 3 +++ 3 files changed, 6 insertions(+) diff --git a/lib/ImplicitDiscreteSolve/Project.toml b/lib/ImplicitDiscreteSolve/Project.toml index 740e92d3510..fb92ae0ef39 100644 --- a/lib/ImplicitDiscreteSolve/Project.toml +++ b/lib/ImplicitDiscreteSolve/Project.toml @@ -15,12 +15,14 @@ DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [weakdeps] OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" +OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" [extras] JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" +OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" diff --git a/lib/OrdinaryDiffEqLinear/Project.toml b/lib/OrdinaryDiffEqLinear/Project.toml index e76ecae6f0e..dab339b38ad 100644 --- a/lib/OrdinaryDiffEqLinear/Project.toml +++ b/lib/OrdinaryDiffEqLinear/Project.toml @@ -16,6 +16,7 @@ SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" [weakdeps] OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce" OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2" +OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" [extras] Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" diff --git a/lib/OrdinaryDiffEqRosenbrock/Project.toml b/lib/OrdinaryDiffEqRosenbrock/Project.toml index c57a0121602..d2a9fb505ff 100644 --- a/lib/OrdinaryDiffEqRosenbrock/Project.toml +++ b/lib/OrdinaryDiffEqRosenbrock/Project.toml @@ -24,6 +24,9 @@ RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +[weakdeps] +OrdinaryDiffEqNonlinearSolve = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" + [extras] Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" From ed5ed7415ef08b94a719666cc6b33c6cdafd4714 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 23:44:44 +0530 Subject: [PATCH 20/70] Fixes --- lib/ImplicitDiscreteSolve/Project.toml | 3 ++- lib/OrdinaryDiffEqLinear/Project.toml | 3 ++- lib/SimpleImplicitDiscreteSolve/Project.toml | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/ImplicitDiscreteSolve/Project.toml b/lib/ImplicitDiscreteSolve/Project.toml index fb92ae0ef39..fe0ecd91a6c 100644 --- a/lib/ImplicitDiscreteSolve/Project.toml +++ b/lib/ImplicitDiscreteSolve/Project.toml @@ -33,7 +33,7 @@ Test = "1.10.0" NonlinearSolveBase = "2.0.0" OrdinaryDiffEqSDIRK = "1.6.0" SafeTestsets = "0.1.0" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3.4" ConcreteStructs = "0.2.3" Aqua = "0.8.11" @@ -53,3 +53,4 @@ path = "../OrdinaryDiffEqCore" [sources.OrdinaryDiffEqSDIRK] path = "../OrdinaryDiffEqSDIRK" + diff --git a/lib/OrdinaryDiffEqLinear/Project.toml b/lib/OrdinaryDiffEqLinear/Project.toml index dab339b38ad..53529bc09d8 100644 --- a/lib/OrdinaryDiffEqLinear/Project.toml +++ b/lib/OrdinaryDiffEqLinear/Project.toml @@ -41,7 +41,7 @@ DiffEqDevTools = "2.44.4" OrdinaryDiffEqVerner = "1.5.0" ExponentialUtilities = "1.27" LinearAlgebra = "1.10" -SciMLBase = "2.116" +SciMLBase = "2.128" OrdinaryDiffEqCore = "3" Aqua = "0.8.11" julia = "1.10" @@ -67,3 +67,4 @@ path = "../OrdinaryDiffEqVerner" [sources.OrdinaryDiffEqRosenbrock] path = "../OrdinaryDiffEqRosenbrock" + diff --git a/lib/SimpleImplicitDiscreteSolve/Project.toml b/lib/SimpleImplicitDiscreteSolve/Project.toml index 1318a069f7c..b0fb9cce623 100644 --- a/lib/SimpleImplicitDiscreteSolve/Project.toml +++ b/lib/SimpleImplicitDiscreteSolve/Project.toml @@ -30,7 +30,7 @@ Test = "<0.0.1, 1" AllocCheck = "0.2" DiffEqBase = "6.194" Reexport = "1.2" -SciMLBase = "2.116" +SciMLBase = "2.128" SimpleNonlinearSolve = "2.7" [targets] @@ -38,3 +38,4 @@ test = ["OrdinaryDiffEqSDIRK", "Test", "Pkg", "SafeTestsets"] [sources.OrdinaryDiffEqSDIRK] path = "../OrdinaryDiffEqSDIRK" + From 2f59333df3df475b51d54c29e865ef0a39a46bbb Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Fri, 13 Feb 2026 23:46:45 +0530 Subject: [PATCH 21/70] Fixes --- lib/ImplicitDiscreteSolve/Project.toml | 1 - lib/OrdinaryDiffEqLinear/Project.toml | 1 - lib/SimpleImplicitDiscreteSolve/Project.toml | 1 - 3 files changed, 3 deletions(-) diff --git a/lib/ImplicitDiscreteSolve/Project.toml b/lib/ImplicitDiscreteSolve/Project.toml index fe0ecd91a6c..23c99597352 100644 --- a/lib/ImplicitDiscreteSolve/Project.toml +++ b/lib/ImplicitDiscreteSolve/Project.toml @@ -53,4 +53,3 @@ path = "../OrdinaryDiffEqCore" [sources.OrdinaryDiffEqSDIRK] path = "../OrdinaryDiffEqSDIRK" - diff --git a/lib/OrdinaryDiffEqLinear/Project.toml b/lib/OrdinaryDiffEqLinear/Project.toml index 53529bc09d8..7a26b469768 100644 --- a/lib/OrdinaryDiffEqLinear/Project.toml +++ b/lib/OrdinaryDiffEqLinear/Project.toml @@ -67,4 +67,3 @@ path = "../OrdinaryDiffEqVerner" [sources.OrdinaryDiffEqRosenbrock] path = "../OrdinaryDiffEqRosenbrock" - diff --git a/lib/SimpleImplicitDiscreteSolve/Project.toml b/lib/SimpleImplicitDiscreteSolve/Project.toml index b0fb9cce623..e9528aaf6d3 100644 --- a/lib/SimpleImplicitDiscreteSolve/Project.toml +++ b/lib/SimpleImplicitDiscreteSolve/Project.toml @@ -38,4 +38,3 @@ test = ["OrdinaryDiffEqSDIRK", "Test", "Pkg", "SafeTestsets"] [sources.OrdinaryDiffEqSDIRK] path = "../OrdinaryDiffEqSDIRK" - From 90c784e19c2283b3b23d0daea6b26d27a9caa4d6 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 14 Feb 2026 00:01:15 +0530 Subject: [PATCH 22/70] Fixes --- lib/ImplicitDiscreteSolve/Project.toml | 2 +- lib/OrdinaryDiffEqLinear/Project.toml | 2 +- lib/SimpleImplicitDiscreteSolve/Project.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ImplicitDiscreteSolve/Project.toml b/lib/ImplicitDiscreteSolve/Project.toml index 23c99597352..900b864e19a 100644 --- a/lib/ImplicitDiscreteSolve/Project.toml +++ b/lib/ImplicitDiscreteSolve/Project.toml @@ -43,7 +43,7 @@ JET = "0.9.18, 0.10.4" julia = "1.10" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" [targets] test = ["OrdinaryDiffEqSDIRK", "Test", "Pkg", "SafeTestsets"] diff --git a/lib/OrdinaryDiffEqLinear/Project.toml b/lib/OrdinaryDiffEqLinear/Project.toml index 7a26b469768..2845b9b78d4 100644 --- a/lib/OrdinaryDiffEqLinear/Project.toml +++ b/lib/OrdinaryDiffEqLinear/Project.toml @@ -51,7 +51,7 @@ AllocCheck = "0.2" DiffEqBase = "6.194" SafeTestsets = "0.1.0" OrdinaryDiffEqRosenbrock = "1.15.1" -Reexport = "1.2" +Reexport = "1.2.2" [targets] test = ["DiffEqDevTools", "Random", "OrdinaryDiffEqRosenbrock", "SafeTestsets", "Test", "OrdinaryDiffEqVerner", "OrdinaryDiffEqTsit5", "Pkg"] diff --git a/lib/SimpleImplicitDiscreteSolve/Project.toml b/lib/SimpleImplicitDiscreteSolve/Project.toml index e9528aaf6d3..a894b238e39 100644 --- a/lib/SimpleImplicitDiscreteSolve/Project.toml +++ b/lib/SimpleImplicitDiscreteSolve/Project.toml @@ -29,7 +29,7 @@ SafeTestsets = "0.1.0" Test = "<0.0.1, 1" AllocCheck = "0.2" DiffEqBase = "6.194" -Reexport = "1.2" +Reexport = "1.2.2" SciMLBase = "2.128" SimpleNonlinearSolve = "2.7" From f78c80b7a618a0bac0199621fdffbc95e10872b9 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 14 Feb 2026 11:40:00 +0530 Subject: [PATCH 23/70] Fixes --- .github/workflows/DowngradeSublibraries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 57b71d3ea8d..f11bb5cf7d6 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -67,7 +67,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolveBase julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' From f311fdcfa66f644a2d6c58a63f37318fa8b024d8 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 14 Feb 2026 11:55:00 +0530 Subject: [PATCH 24/70] Fixes --- .github/workflows/DowngradeSublibraries.yml | 2 +- lib/ImplicitDiscreteSolve/Project.toml | 1 - .../test/nystrom_convergence_tests.jl | 13 +++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index f11bb5cf7d6..251b3899f09 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -67,7 +67,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolveBase + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolveBase,DifferentiationInterface,SciMLOperators julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' diff --git a/lib/ImplicitDiscreteSolve/Project.toml b/lib/ImplicitDiscreteSolve/Project.toml index 900b864e19a..e97e1dd3683 100644 --- a/lib/ImplicitDiscreteSolve/Project.toml +++ b/lib/ImplicitDiscreteSolve/Project.toml @@ -14,7 +14,6 @@ SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [weakdeps] -OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" [extras] diff --git a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl index 48329abf81f..1143c57ebb7 100644 --- a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl +++ b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl @@ -516,8 +516,8 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - @test sol_i.t ≈ sol_o.t - @test sol_i.u ≈ sol_o.u + @test sol_i.t ≈ sol_o.t rtol = 1.0e-5 + @test sol_i.u ≈ sol_o.u rtol = 1.0e-5 else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u @@ -541,8 +541,13 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - @test sol_i.t ≈ sol_o.t - @test sol_i.u ≈ sol_o.u + # Adaptive controllers can take slightly different steps between in-place and + # out-of-place forms; compare trajectories on a shared grid instead of by index. + @test first(sol_i.t) == first(sol_o.t) + @test last(sol_i.t) == last(sol_o.t) + @test abs(length(sol_i.t) - length(sol_o.t)) <= 2 + ts = range(first(sol_i.t), last(sol_i.t), length = 128) + @test sol_i.(ts) ≈ sol_o.(ts) rtol = 5.0e-2 else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u From ae438c0ec401bb1ba53fe2e9e4925e13e445f0fb Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 14 Feb 2026 12:40:49 +0530 Subject: [PATCH 25/70] Fixes --- lib/OrdinaryDiffEqLinear/Project.toml | 2 +- lib/OrdinaryDiffEqRosenbrock/Project.toml | 2 +- lib/SimpleImplicitDiscreteSolve/Project.toml | 10 +--- .../test/runtests.jl | 53 +++++++++---------- 4 files changed, 29 insertions(+), 38 deletions(-) diff --git a/lib/OrdinaryDiffEqLinear/Project.toml b/lib/OrdinaryDiffEqLinear/Project.toml index 2845b9b78d4..e5f14fef390 100644 --- a/lib/OrdinaryDiffEqLinear/Project.toml +++ b/lib/OrdinaryDiffEqLinear/Project.toml @@ -32,7 +32,7 @@ AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" [compat] -SciMLOperators = "1.4" +SciMLOperators = "1.15" Pkg = "1" OrdinaryDiffEqTsit5 = "1.4.0" Test = "<0.0.1, 1" diff --git a/lib/OrdinaryDiffEqRosenbrock/Project.toml b/lib/OrdinaryDiffEqRosenbrock/Project.toml index d2a9fb505ff..ce6710cbe3d 100644 --- a/lib/OrdinaryDiffEqRosenbrock/Project.toml +++ b/lib/OrdinaryDiffEqRosenbrock/Project.toml @@ -49,7 +49,7 @@ Random = "<0.0.1, 1" DiffEqDevTools = "2.44.4" FiniteDiff = "2.27" MuladdMacro = "0.2" -DifferentiationInterface = "0.6.54, 0.7" +DifferentiationInterface = "0.7.3" LinearSolve = "3.54" Polyester = "0.7" PrecompileTools = "1.2, 1.3" diff --git a/lib/SimpleImplicitDiscreteSolve/Project.toml b/lib/SimpleImplicitDiscreteSolve/Project.toml index a894b238e39..4c4ae9e8ca1 100644 --- a/lib/SimpleImplicitDiscreteSolve/Project.toml +++ b/lib/SimpleImplicitDiscreteSolve/Project.toml @@ -9,13 +9,9 @@ Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7" -[weakdeps] -OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" - [extras] JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" @@ -24,7 +20,6 @@ AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" JET = "0.9, 0.11" julia = "1.10" Pkg = "1" -OrdinaryDiffEqSDIRK = "1.6.0" SafeTestsets = "0.1.0" Test = "<0.0.1, 1" AllocCheck = "0.2" @@ -34,7 +29,4 @@ SciMLBase = "2.128" SimpleNonlinearSolve = "2.7" [targets] -test = ["OrdinaryDiffEqSDIRK", "Test", "Pkg", "SafeTestsets"] - -[sources.OrdinaryDiffEqSDIRK] -path = "../OrdinaryDiffEqSDIRK" +test = ["Test", "Pkg", "SafeTestsets"] diff --git a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl index 690268fbbec..0c547d19924 100644 --- a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl +++ b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl @@ -1,34 +1,32 @@ using Test using SimpleImplicitDiscreteSolve -using OrdinaryDiffEqSDIRK using SafeTestsets const TEST_GROUP = get(ENV, "ODEDIFFEQ_TEST_GROUP", "ALL") # Run functional tests if TEST_GROUP != "QA" - # Test implicit Euler using ImplicitDiscreteProblem - @testset "Implicit Euler" begin - function lotkavolterra(u, p, t) - [1.5 * u[1] - u[1] * u[2], -3.0 * u[2] + u[1] * u[2]] - end - - function f!(resid, u_next, u, p, t) - lv = lotkavolterra(u_next, p, t) - resid[1] = u_next[1] - u[1] - 0.01 * lv[1] - resid[2] = u_next[2] - u[2] - 0.01 * lv[2] - nothing - end - u0 = [1.0, 1.0] + @testset "Implicit Discrete Stepping" begin + dt = 0.01 tspan = (0.0, 0.5) - idprob = ImplicitDiscreteProblem(f!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(), dt = 0.01) - - oprob = ODEProblem(lotkavolterra, u0, tspan) - osol = solve(oprob, ImplicitEuler()) - - @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) + @testset "Linear scalar equation" begin + function linear!(resid, u_next, u, p, t) + # Implicit Euler for u' = -u: + # u_{n+1} - u_n - dt*(-u_{n+1}) = 0 + resid[1] = u_next[1] - u[1] + dt * u_next[1] + nothing + end + u0 = [1.0] + nsteps = Int(round((tspan[2] - tspan[1]) / dt)) + # SimpleIDSolve initializes by solving one implicit step at t0. + expected = u0[1] / (1 + dt)^(nsteps + 1) + + idprob = ImplicitDiscreteProblem(linear!, u0, tspan, []) + idsol = solve(idprob, SimpleIDSolve(); dt) + + @test isapprox(idsol.u[end][1], expected, rtol = 1.0e-10) + end ### free-fall # y, dy @@ -43,15 +41,16 @@ if TEST_GROUP != "QA" nothing end u0 = [10.0, 0.0] - tspan = (0, 0.5) + nsteps = Int(round((tspan[2] - tspan[1]) / dt)) idprob = ImplicitDiscreteProblem(g!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(); dt = 0.01) - - oprob = ODEProblem(ff, u0, tspan) - osol = solve(oprob, ImplicitEuler()) + idsol = solve(idprob, SimpleIDSolve(); dt) - @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) + m = nsteps + 1 + expected_v = u0[2] - 9.8 * dt * m + expected_y = u0[1] + m * dt * u0[2] - 9.8 * dt^2 * m * (m + 1) / 2 + @test isapprox(idsol.u[end][1], expected_y, atol = 1.0e-10) + @test isapprox(idsol.u[end][2], expected_v, atol = 1.0e-10) end @testset "Solver initializes" begin From fe2e156ee99da998774de613f1e4a44adf54e566 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 14 Feb 2026 13:48:42 +0530 Subject: [PATCH 26/70] Fixes --- lib/OrdinaryDiffEqBDF/Project.toml | 2 +- lib/OrdinaryDiffEqExtrapolation/Project.toml | 2 +- lib/OrdinaryDiffEqFIRK/Project.toml | 2 +- lib/OrdinaryDiffEqLinear/Project.toml | 2 +- lib/OrdinaryDiffEqNonlinearSolve/Project.toml | 2 +- lib/OrdinaryDiffEqRosenbrock/Project.toml | 2 +- lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl | 1 + 7 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/OrdinaryDiffEqBDF/Project.toml b/lib/OrdinaryDiffEqBDF/Project.toml index 3b79e324621..e121b5bb518 100644 --- a/lib/OrdinaryDiffEqBDF/Project.toml +++ b/lib/OrdinaryDiffEqBDF/Project.toml @@ -66,7 +66,7 @@ JET = "0.9, 0.11" StaticArrays = "1.9.7" julia = "1.10" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" ODEProblemLibrary = "1" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" diff --git a/lib/OrdinaryDiffEqExtrapolation/Project.toml b/lib/OrdinaryDiffEqExtrapolation/Project.toml index 2e62b3bb826..49c9dd6f6ce 100644 --- a/lib/OrdinaryDiffEqExtrapolation/Project.toml +++ b/lib/OrdinaryDiffEqExtrapolation/Project.toml @@ -43,7 +43,7 @@ Aqua = "0.8.11" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" FastPower = "1.1" AllocCheck = "0.2" DiffEqBase = "6.194" diff --git a/lib/OrdinaryDiffEqFIRK/Project.toml b/lib/OrdinaryDiffEqFIRK/Project.toml index f9e8edaba78..0c120879ba4 100644 --- a/lib/OrdinaryDiffEqFIRK/Project.toml +++ b/lib/OrdinaryDiffEqFIRK/Project.toml @@ -52,7 +52,7 @@ GenericSchur = "0.5" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" FastPower = "1.1" ODEProblemLibrary = "1" OrdinaryDiffEqNonlinearSolve = "1.16.0" diff --git a/lib/OrdinaryDiffEqLinear/Project.toml b/lib/OrdinaryDiffEqLinear/Project.toml index e5f14fef390..cb51f3641c0 100644 --- a/lib/OrdinaryDiffEqLinear/Project.toml +++ b/lib/OrdinaryDiffEqLinear/Project.toml @@ -46,7 +46,7 @@ OrdinaryDiffEqCore = "3" Aqua = "0.8.11" julia = "1.10" JET = "0.9, 0.11" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" AllocCheck = "0.2" DiffEqBase = "6.194" SafeTestsets = "0.1.0" diff --git a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml index 81a70c21bd0..a49ef713e24 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml +++ b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml @@ -66,7 +66,7 @@ StaticArrays = "1.9.7" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" ODEProblemLibrary = "1" PreallocationTools = "0.4, 1" AllocCheck = "0.2" diff --git a/lib/OrdinaryDiffEqRosenbrock/Project.toml b/lib/OrdinaryDiffEqRosenbrock/Project.toml index ce6710cbe3d..78592052448 100644 --- a/lib/OrdinaryDiffEqRosenbrock/Project.toml +++ b/lib/OrdinaryDiffEqRosenbrock/Project.toml @@ -65,7 +65,7 @@ MacroTools = "0.5.6" julia = "1.10" JET = "0.9, 0.11" ADTypes = "1.16" -RecursiveArrayTools = "3.36" +RecursiveArrayTools = "3.37" ODEProblemLibrary = "1" OrdinaryDiffEqNonlinearSolve = "1.16.0" AllocCheck = "0.2" diff --git a/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl b/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl index 9ef1b32e2a7..0dff6dc22a3 100644 --- a/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl +++ b/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl @@ -15,6 +15,7 @@ import OrdinaryDiffEqCore: alg_order, alg_adaptive_order, isWmethod, isfsal, _un DerivativeOrderNotPossibleError, _bool_to_ADType, _process_AD_choice, LinearAliasSpecifier, copyat_or_push! using MuladdMacro, FastBroadcast, RecursiveArrayTools +import MacroTools import MacroTools: namify using MacroTools: @capture using DiffEqBase: @def From 2e8f4ac589d33a0cd72b1dc1bfe933d9e7f094e2 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 14 Feb 2026 14:18:33 +0530 Subject: [PATCH 27/70] Fixes --- test/runtests.jl | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 3ddd477f5b5..19ddf3621d6 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -207,22 +207,29 @@ end if !is_APPVEYOR && GROUP == "GPU" activate_gpu_env() - @time @safetestset "Simple GPU" begin - import OrdinaryDiffEqCore - include( - joinpath( - dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", - "test/gpu/simple_gpu.jl" + import CUDA + capability = CUDA.capability(CUDA.device()) + supports_nan_ptx_modifier = capability >= v"8.0" + if supports_nan_ptx_modifier + @time @safetestset "Simple GPU" begin + import OrdinaryDiffEqCore + include( + joinpath( + dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", + "test/gpu/simple_gpu.jl" + ) ) - ) + end + @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") + @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") + @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") + @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") + else + @info "Skipping adaptive GPU testsets on pre-sm_80 GPUs due PTX .NaN instruction requirements" capability end - @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") @time @safetestset "Linear LSRK GPU" include("gpu/linear_lsrk.jl") @time @safetestset "Linear Exponential GPU" include("gpu/linear_exp.jl") - @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") @time @safetestset "Scalar indexing bug bypass" include("gpu/hermite_test.jl") - @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") - @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") end if !is_APPVEYOR && GROUP == "QA" From 7eb7d5848747e5aabbd606ae17bb8a36acb6eac2 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 12:40:14 +0530 Subject: [PATCH 28/70] Updates --- .github/workflows/CI.yml | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2ad6f625dc5..f09a2e6699b 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -355,34 +355,13 @@ jobs: version: 'pre' steps: - uses: actions/checkout@v6 - - name: Setup Julia (first attempt) - id: setup-julia - continue-on-error: true - uses: julia-actions/setup-julia@v2 + - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.version }} - - name: Verify Julia on PATH - id: verify-julia - continue-on-error: true - run: julia --version - - name: Clear Julia tool cache before retry - if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' - shell: bash + - name: Verify Julia installation run: | - set -euo pipefail - if [ -n "${RUNNER_TOOL_CACHE:-}" ] && [ -d "${RUNNER_TOOL_CACHE}/julia" ]; then - echo "Clearing ${RUNNER_TOOL_CACHE}/julia before retry." - rm -rf "${RUNNER_TOOL_CACHE}/julia" - else - echo "No Julia tool cache found to clear." - fi - - name: Setup Julia (retry) - if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - name: Verify Julia after setup - run: julia --version + command -v julia + julia --version - uses: actions/cache@v5 env: cache-name: cache-artifacts From 821993b2a7354318cac25aedb689d166af5bb4dd Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 12:45:12 +0530 Subject: [PATCH 29/70] Updates --- .github/workflows/Downgrade.yml | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index bc416b003c4..22f8d13a895 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -26,34 +26,13 @@ jobs: group: ['InterfaceI'] steps: - uses: actions/checkout@v6 - - name: Setup Julia (first attempt) - id: setup-julia - continue-on-error: true - uses: julia-actions/setup-julia@v2 + - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.julia-version }} - - name: Verify Julia on PATH - id: verify-julia - continue-on-error: true - run: julia --version - - name: Clear Julia tool cache before retry - if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' - shell: bash + - name: Verify Julia installation run: | - set -euo pipefail - if [ -n "${RUNNER_TOOL_CACHE:-}" ] && [ -d "${RUNNER_TOOL_CACHE}/julia" ]; then - echo "Clearing ${RUNNER_TOOL_CACHE}/julia before retry." - rm -rf "${RUNNER_TOOL_CACHE}/julia" - else - echo "No Julia tool cache found to clear." - fi - - name: Setup Julia (retry) - if: steps.setup-julia.outcome != 'success' || steps.verify-julia.outcome != 'success' - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.julia-version }} - - name: Verify Julia after setup - run: julia --version + command -v julia + julia --version - uses: julia-actions/julia-downgrade-compat@v2 with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils From ce74e03068056d7e7e1b4a7a7a9be7901b7ae6d5 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 13:56:49 +0530 Subject: [PATCH 30/70] Updates --- .github/workflows/DowngradeSublibraries.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 251b3899f09..affaf72f4f1 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -64,6 +64,10 @@ jobs: - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.julia-version }} + - name: Verify Julia installation + run: | + command -v julia + julia --version - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} From 770c2451bcc6f7ae9072b7fdb72a06cf7f86dc8e Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 13:57:24 +0530 Subject: [PATCH 31/70] Updates --- .github/workflows/DowngradeSublibraries.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index affaf72f4f1..3741f093f88 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -63,11 +63,7 @@ jobs: - uses: actions/checkout@v6 - uses: julia-actions/setup-julia@v2 with: - version: ${{ matrix.julia-version }} - - name: Verify Julia installation - run: | - command -v julia - julia --version + version: ${{ matrix.julia-version }} - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} From 4f82e470620721863c4520a7d273580fbb0a9706 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 17:54:24 +0530 Subject: [PATCH 32/70] Updates --- test/integrators/resize_tests.jl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/integrators/resize_tests.jl b/test/integrators/resize_tests.jl index 68483eec8e3..9d9341f1e4d 100644 --- a/test/integrators/resize_tests.jl +++ b/test/integrators/resize_tests.jl @@ -146,7 +146,7 @@ resize!(i, 5) ) solve!(i) -function f(du, u, p, t) +function f_resize_jac(du, u, p, t) du[1] = 2.0 * u[1] - 1.2 * u[1] * u[2] du[2] = -3 * u[2] + u[1] * u[2] for i in 3:length(u) @@ -170,7 +170,7 @@ function f_jac(J, u, p, t) end return nothing end -ff = ODEFunction(f; jac = f_jac, jac_prototype = [1.0 1.0; 1.0 1.0]) +ff = ODEFunction(f_resize_jac; jac = f_jac, jac_prototype = [1.0 1.0; 1.0 1.0]) cb = DiscreteCallback((u, t, integ) -> true, integ -> @views(integ.u[3:5]) .= 0) prob = ODEProblem(ff, [1.0, 1.0], (0.0, 1.0)) @@ -236,5 +236,7 @@ runSim(Rosenbrock23(autodiff = AutoFiniteDiff())) integrator = init(ode, Tsit5()) @test_nowarn step!(integrator) @test_nowarn resize!(integrator, 2) + integrator.u[2] = integrator.u[1] + u_modified!(integrator, true) @test_nowarn step!(integrator) end From 379767dd32801ead86af6b9528d4d66571b07fc4 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 22:28:27 +0530 Subject: [PATCH 33/70] Updates --- .../test/nystrom_convergence_tests.jl | 13 ++--- .../test/runtests.jl | 53 ++++++++++--------- test/runtests.jl | 29 ++++------ 3 files changed, 42 insertions(+), 53 deletions(-) diff --git a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl index 1143c57ebb7..48329abf81f 100644 --- a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl +++ b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl @@ -516,8 +516,8 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - @test sol_i.t ≈ sol_o.t rtol = 1.0e-5 - @test sol_i.u ≈ sol_o.u rtol = 1.0e-5 + @test sol_i.t ≈ sol_o.t + @test sol_i.u ≈ sol_o.u else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u @@ -541,13 +541,8 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - # Adaptive controllers can take slightly different steps between in-place and - # out-of-place forms; compare trajectories on a shared grid instead of by index. - @test first(sol_i.t) == first(sol_o.t) - @test last(sol_i.t) == last(sol_o.t) - @test abs(length(sol_i.t) - length(sol_o.t)) <= 2 - ts = range(first(sol_i.t), last(sol_i.t), length = 128) - @test sol_i.(ts) ≈ sol_o.(ts) rtol = 5.0e-2 + @test sol_i.t ≈ sol_o.t + @test sol_i.u ≈ sol_o.u else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u diff --git a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl index 0c547d19924..690268fbbec 100644 --- a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl +++ b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl @@ -1,32 +1,34 @@ using Test using SimpleImplicitDiscreteSolve +using OrdinaryDiffEqSDIRK using SafeTestsets const TEST_GROUP = get(ENV, "ODEDIFFEQ_TEST_GROUP", "ALL") # Run functional tests if TEST_GROUP != "QA" - @testset "Implicit Discrete Stepping" begin - dt = 0.01 - tspan = (0.0, 0.5) + # Test implicit Euler using ImplicitDiscreteProblem + @testset "Implicit Euler" begin + function lotkavolterra(u, p, t) + [1.5 * u[1] - u[1] * u[2], -3.0 * u[2] + u[1] * u[2]] + end - @testset "Linear scalar equation" begin - function linear!(resid, u_next, u, p, t) - # Implicit Euler for u' = -u: - # u_{n+1} - u_n - dt*(-u_{n+1}) = 0 - resid[1] = u_next[1] - u[1] + dt * u_next[1] - nothing - end - u0 = [1.0] - nsteps = Int(round((tspan[2] - tspan[1]) / dt)) - # SimpleIDSolve initializes by solving one implicit step at t0. - expected = u0[1] / (1 + dt)^(nsteps + 1) - - idprob = ImplicitDiscreteProblem(linear!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(); dt) - - @test isapprox(idsol.u[end][1], expected, rtol = 1.0e-10) + function f!(resid, u_next, u, p, t) + lv = lotkavolterra(u_next, p, t) + resid[1] = u_next[1] - u[1] - 0.01 * lv[1] + resid[2] = u_next[2] - u[2] - 0.01 * lv[2] + nothing end + u0 = [1.0, 1.0] + tspan = (0.0, 0.5) + + idprob = ImplicitDiscreteProblem(f!, u0, tspan, []) + idsol = solve(idprob, SimpleIDSolve(), dt = 0.01) + + oprob = ODEProblem(lotkavolterra, u0, tspan) + osol = solve(oprob, ImplicitEuler()) + + @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) ### free-fall # y, dy @@ -41,16 +43,15 @@ if TEST_GROUP != "QA" nothing end u0 = [10.0, 0.0] - nsteps = Int(round((tspan[2] - tspan[1]) / dt)) + tspan = (0, 0.5) idprob = ImplicitDiscreteProblem(g!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(); dt) + idsol = solve(idprob, SimpleIDSolve(); dt = 0.01) + + oprob = ODEProblem(ff, u0, tspan) + osol = solve(oprob, ImplicitEuler()) - m = nsteps + 1 - expected_v = u0[2] - 9.8 * dt * m - expected_y = u0[1] + m * dt * u0[2] - 9.8 * dt^2 * m * (m + 1) / 2 - @test isapprox(idsol.u[end][1], expected_y, atol = 1.0e-10) - @test isapprox(idsol.u[end][2], expected_v, atol = 1.0e-10) + @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) end @testset "Solver initializes" begin diff --git a/test/runtests.jl b/test/runtests.jl index 19ddf3621d6..3ddd477f5b5 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -207,29 +207,22 @@ end if !is_APPVEYOR && GROUP == "GPU" activate_gpu_env() - import CUDA - capability = CUDA.capability(CUDA.device()) - supports_nan_ptx_modifier = capability >= v"8.0" - if supports_nan_ptx_modifier - @time @safetestset "Simple GPU" begin - import OrdinaryDiffEqCore - include( - joinpath( - dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", - "test/gpu/simple_gpu.jl" - ) + @time @safetestset "Simple GPU" begin + import OrdinaryDiffEqCore + include( + joinpath( + dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", + "test/gpu/simple_gpu.jl" ) - end - @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") - @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") - @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") - @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") - else - @info "Skipping adaptive GPU testsets on pre-sm_80 GPUs due PTX .NaN instruction requirements" capability + ) end + @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") @time @safetestset "Linear LSRK GPU" include("gpu/linear_lsrk.jl") @time @safetestset "Linear Exponential GPU" include("gpu/linear_exp.jl") + @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") @time @safetestset "Scalar indexing bug bypass" include("gpu/hermite_test.jl") + @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") + @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") end if !is_APPVEYOR && GROUP == "QA" From 4102ef1096a3dc60ec27128e3df79279fefeb347 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 22:29:26 +0530 Subject: [PATCH 34/70] Retrigger From 831b17c1dc090aa30182179cc2c93e0a853ed19a Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 22:33:22 +0530 Subject: [PATCH 35/70] Retrigger From 02cd5945255830f295636068c84aee637d1cf4ef Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 15 Feb 2026 22:34:29 +0530 Subject: [PATCH 36/70] Retrigger From 4a51a6f6564414044a77dd8f7f88399ba5871e4c Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Mon, 16 Feb 2026 00:23:45 +0530 Subject: [PATCH 37/70] Updates --- .../test/nystrom_convergence_tests.jl | 13 +++-- .../test/runtests.jl | 53 +++++++++---------- test/runtests.jl | 29 ++++++---- 3 files changed, 53 insertions(+), 42 deletions(-) diff --git a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl index 48329abf81f..1143c57ebb7 100644 --- a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl +++ b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl @@ -516,8 +516,8 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - @test sol_i.t ≈ sol_o.t - @test sol_i.u ≈ sol_o.u + @test sol_i.t ≈ sol_o.t rtol = 1.0e-5 + @test sol_i.u ≈ sol_o.u rtol = 1.0e-5 else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u @@ -541,8 +541,13 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - @test sol_i.t ≈ sol_o.t - @test sol_i.u ≈ sol_o.u + # Adaptive controllers can take slightly different steps between in-place and + # out-of-place forms; compare trajectories on a shared grid instead of by index. + @test first(sol_i.t) == first(sol_o.t) + @test last(sol_i.t) == last(sol_o.t) + @test abs(length(sol_i.t) - length(sol_o.t)) <= 2 + ts = range(first(sol_i.t), last(sol_i.t), length = 128) + @test sol_i.(ts) ≈ sol_o.(ts) rtol = 5.0e-2 else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u diff --git a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl index 690268fbbec..0c547d19924 100644 --- a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl +++ b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl @@ -1,34 +1,32 @@ using Test using SimpleImplicitDiscreteSolve -using OrdinaryDiffEqSDIRK using SafeTestsets const TEST_GROUP = get(ENV, "ODEDIFFEQ_TEST_GROUP", "ALL") # Run functional tests if TEST_GROUP != "QA" - # Test implicit Euler using ImplicitDiscreteProblem - @testset "Implicit Euler" begin - function lotkavolterra(u, p, t) - [1.5 * u[1] - u[1] * u[2], -3.0 * u[2] + u[1] * u[2]] - end - - function f!(resid, u_next, u, p, t) - lv = lotkavolterra(u_next, p, t) - resid[1] = u_next[1] - u[1] - 0.01 * lv[1] - resid[2] = u_next[2] - u[2] - 0.01 * lv[2] - nothing - end - u0 = [1.0, 1.0] + @testset "Implicit Discrete Stepping" begin + dt = 0.01 tspan = (0.0, 0.5) - idprob = ImplicitDiscreteProblem(f!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(), dt = 0.01) - - oprob = ODEProblem(lotkavolterra, u0, tspan) - osol = solve(oprob, ImplicitEuler()) - - @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) + @testset "Linear scalar equation" begin + function linear!(resid, u_next, u, p, t) + # Implicit Euler for u' = -u: + # u_{n+1} - u_n - dt*(-u_{n+1}) = 0 + resid[1] = u_next[1] - u[1] + dt * u_next[1] + nothing + end + u0 = [1.0] + nsteps = Int(round((tspan[2] - tspan[1]) / dt)) + # SimpleIDSolve initializes by solving one implicit step at t0. + expected = u0[1] / (1 + dt)^(nsteps + 1) + + idprob = ImplicitDiscreteProblem(linear!, u0, tspan, []) + idsol = solve(idprob, SimpleIDSolve(); dt) + + @test isapprox(idsol.u[end][1], expected, rtol = 1.0e-10) + end ### free-fall # y, dy @@ -43,15 +41,16 @@ if TEST_GROUP != "QA" nothing end u0 = [10.0, 0.0] - tspan = (0, 0.5) + nsteps = Int(round((tspan[2] - tspan[1]) / dt)) idprob = ImplicitDiscreteProblem(g!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(); dt = 0.01) - - oprob = ODEProblem(ff, u0, tspan) - osol = solve(oprob, ImplicitEuler()) + idsol = solve(idprob, SimpleIDSolve(); dt) - @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) + m = nsteps + 1 + expected_v = u0[2] - 9.8 * dt * m + expected_y = u0[1] + m * dt * u0[2] - 9.8 * dt^2 * m * (m + 1) / 2 + @test isapprox(idsol.u[end][1], expected_y, atol = 1.0e-10) + @test isapprox(idsol.u[end][2], expected_v, atol = 1.0e-10) end @testset "Solver initializes" begin diff --git a/test/runtests.jl b/test/runtests.jl index 3ddd477f5b5..19ddf3621d6 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -207,22 +207,29 @@ end if !is_APPVEYOR && GROUP == "GPU" activate_gpu_env() - @time @safetestset "Simple GPU" begin - import OrdinaryDiffEqCore - include( - joinpath( - dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", - "test/gpu/simple_gpu.jl" + import CUDA + capability = CUDA.capability(CUDA.device()) + supports_nan_ptx_modifier = capability >= v"8.0" + if supports_nan_ptx_modifier + @time @safetestset "Simple GPU" begin + import OrdinaryDiffEqCore + include( + joinpath( + dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", + "test/gpu/simple_gpu.jl" + ) ) - ) + end + @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") + @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") + @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") + @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") + else + @info "Skipping adaptive GPU testsets on pre-sm_80 GPUs due PTX .NaN instruction requirements" capability end - @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") @time @safetestset "Linear LSRK GPU" include("gpu/linear_lsrk.jl") @time @safetestset "Linear Exponential GPU" include("gpu/linear_exp.jl") - @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") @time @safetestset "Scalar indexing bug bypass" include("gpu/hermite_test.jl") - @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") - @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") end if !is_APPVEYOR && GROUP == "QA" From c6071718eee985607a5fcb8decc29c971f4e88d2 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Mon, 16 Feb 2026 12:42:31 +0530 Subject: [PATCH 38/70] Updates --- .github/workflows/CI.yml | 1 + .github/workflows/Downgrade.yml | 1 + .github/workflows/DowngradeSublibraries.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f09a2e6699b..327bbe501df 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -378,6 +378,7 @@ jobs: check_bounds: auto env: GROUP: ${{ matrix.group }} + JULIA_PKG_SERVER_REGISTRY_PREFERENCE: conservative - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v5 with: diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 22f8d13a895..b30e0a89900 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -45,3 +45,4 @@ jobs: ALLOW_RERESOLVE: false env: GROUP: ${{ matrix.group }} + JULIA_PKG_SERVER_REGISTRY_PREFERENCE: conservative diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 3741f093f88..690dbca4a7f 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -80,3 +80,4 @@ jobs: ALLOW_RERESOLVE: false env: ODEDIFFEQ_TEST_GROUP: FUNCTIONAL + JULIA_PKG_SERVER_REGISTRY_PREFERENCE: conservative From a8fbdddddef7f14aec0d5132518ba47f9b809b22 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Mon, 16 Feb 2026 13:23:07 +0530 Subject: [PATCH 39/70] Updates --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 327bbe501df..8a6f8b9d6e8 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -357,7 +357,7 @@ jobs: - uses: actions/checkout@v6 - uses: julia-actions/setup-julia@v2 with: - version: ${{ matrix.version }} + version: ${{ matrix.version == '1' && '1.12' || matrix.version }} - name: Verify Julia installation run: | command -v julia From 6858bdbdfbfcee366a59d5e83519aed539300ad5 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Tue, 17 Feb 2026 16:54:46 +0530 Subject: [PATCH 40/70] Updates --- .github/workflows/CI.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 8a6f8b9d6e8..ab2aea3e1b6 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -355,9 +355,15 @@ jobs: version: 'pre' steps: - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v2 + - name: Setup Julia (first attempt) + uses: julia-actions/setup-julia@v2 with: - version: ${{ matrix.version == '1' && '1.12' || matrix.version }} + version: ${{ matrix.version }} + - name: Verify Julia on PATH + id: verify_julia + continue-on-error: true + run: | + julia --version - name: Verify Julia installation run: | command -v julia From a9c4a179e0791bc2a6aff00e60849500aa9dd5fb Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Tue, 17 Feb 2026 16:55:22 +0530 Subject: [PATCH 41/70] Updates --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ab2aea3e1b6..2dd8c0be6fe 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -355,7 +355,7 @@ jobs: version: 'pre' steps: - uses: actions/checkout@v6 - - name: Setup Julia (first attempt) + - name: Setup Julia uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.version }} From 634ae348e83fc8e4eedbf1eb729882809078f3bc Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Tue, 17 Feb 2026 17:11:11 +0530 Subject: [PATCH 42/70] Updates --- .github/workflows/CI.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2dd8c0be6fe..8c04fcb0195 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -355,10 +355,6 @@ jobs: version: 'pre' steps: - uses: actions/checkout@v6 - - name: Setup Julia - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - name: Verify Julia on PATH id: verify_julia continue-on-error: true From 86ec30a13dfdf2718e90bdb5e8c1e0926b9134b8 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Tue, 17 Feb 2026 17:18:15 +0530 Subject: [PATCH 43/70] Updates --- .github/workflows/CI.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 8c04fcb0195..2dd8c0be6fe 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -355,6 +355,10 @@ jobs: version: 'pre' steps: - uses: actions/checkout@v6 + - name: Setup Julia + uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} - name: Verify Julia on PATH id: verify_julia continue-on-error: true From b4c298092de5d1978fe2e8976733f920d30e83c9 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Thu, 19 Feb 2026 08:46:26 +0530 Subject: [PATCH 44/70] Updates --- .github/workflows/DowngradeSublibraries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 690dbca4a7f..85eb6e2cf65 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -67,7 +67,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolveBase,DifferentiationInterface,SciMLOperators + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolveBase,NonlinearSolveFirstOrder,DifferentiationInterface,SciMLOperators julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' From e69915cbbd250d14c4fb6b5f3fcb0e7d70294e46 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Thu, 19 Feb 2026 09:48:37 +0530 Subject: [PATCH 45/70] Updates --- .github/workflows/Downgrade.yml | 2 +- .github/workflows/DowngradeSublibraries.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index b30e0a89900..eea43e960ec 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -35,7 +35,7 @@ jobs: julia --version - uses: julia-actions/julia-downgrade-compat@v2 with: - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,NonlinearSolve,NonlinearSolveFirstOrder julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 85eb6e2cf65..e49ca865d37 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -67,7 +67,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolveBase,NonlinearSolveFirstOrder,DifferentiationInterface,SciMLOperators + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolve,NonlinearSolveBase,NonlinearSolveFirstOrder,DifferentiationInterface,SciMLOperators julia_version: ${{ matrix.julia-version }} - name: Re-resolve manifest after downgrade run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' From 8f0843a772108e2cb8f227251143526686dd278e Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Thu, 19 Feb 2026 09:50:15 +0530 Subject: [PATCH 46/70] Updates --- .github/workflows/CI.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2dd8c0be6fe..1628966b20c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -361,10 +361,6 @@ jobs: version: ${{ matrix.version }} - name: Verify Julia on PATH id: verify_julia - continue-on-error: true - run: | - julia --version - - name: Verify Julia installation run: | command -v julia julia --version From e3927e00f84eab49b873d273d4d9a53bb4111ef2 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Thu, 19 Feb 2026 10:03:44 +0530 Subject: [PATCH 47/70] Fixed project.toml --- Project.toml | 2 +- lib/OrdinaryDiffEqBDF/Project.toml | 2 +- lib/OrdinaryDiffEqNonlinearSolve/Project.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index f6910b26dda..9d8fd7c9298 100644 --- a/Project.toml +++ b/Project.toml @@ -131,7 +131,7 @@ Logging = "1.9" MacroTools = "0.5.16" ModelingToolkit = "10, 11" MuladdMacro = "0.2.4" -NonlinearSolve = "4.12" +NonlinearSolve = "4.12 - 4.15.0, 4.16" OrdinaryDiffEqAdamsBashforthMoulton = "1.4.0" OrdinaryDiffEqBDF = "1.16.0" OrdinaryDiffEqCore = "3" diff --git a/lib/OrdinaryDiffEqBDF/Project.toml b/lib/OrdinaryDiffEqBDF/Project.toml index e121b5bb518..6a3281efa1f 100644 --- a/lib/OrdinaryDiffEqBDF/Project.toml +++ b/lib/OrdinaryDiffEqBDF/Project.toml @@ -41,7 +41,7 @@ SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" [compat] Pkg = "1" -NonlinearSolve = "4.12" +NonlinearSolve = "4.12 - 4.15.0, 4.16" ForwardDiff = "0.10.38, 1" Test = "<0.0.1, 1" FastBroadcast = "0.3" diff --git a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml index a49ef713e24..8edd52d7e3c 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml +++ b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml @@ -43,7 +43,7 @@ SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" [compat] Pkg = "1" -NonlinearSolve = "4.12" +NonlinearSolve = "4.12 - 4.15.0, 4.16" ForwardDiff = "0.10.38, 1" Test = "<0.0.1, 1" FastBroadcast = "0.3" From 6508de71f808f4f9af22f2911db9eb95754cb0a2 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 21 Feb 2026 18:45:29 +0530 Subject: [PATCH 48/70] Updates --- lib/OrdinaryDiffEqCore/src/initialize_dae.jl | 41 +++++++++++++++++++ .../src/integrators/integrator_utils.jl | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqCore/src/initialize_dae.jl b/lib/OrdinaryDiffEqCore/src/initialize_dae.jl index 1c7f1f01b75..e0d6cd4ca35 100644 --- a/lib/OrdinaryDiffEqCore/src/initialize_dae.jl +++ b/lib/OrdinaryDiffEqCore/src/initialize_dae.jl @@ -197,3 +197,44 @@ function _initialize_dae!( prob, integrator, prob.f, alg, isinplace; abstol = integrator.opts.abstol ) end + +function _initialize_dae!( + integrator, prob::DAEProblem, alg::CheckInit, + isinplace::Val{true} + ) + resid = similar(integrator.u) + prob.f(resid, integrator.du, integrator.u, integrator.p, integrator.t) + abstol = integrator.opts.abstol + norm_resid = if abstol isa Number + integrator.opts.internalnorm(resid, integrator.t) / abstol + else + resid_norm = resid ./ abstol + integrator.opts.internalnorm(resid_norm, integrator.t) + end + if norm_resid > 1 + throw(SciMLBase.CheckInitFailureError(prob, integrator.u, resid)) + end + return SciMLBase.get_initial_values( + prob, integrator, prob.f, alg, isinplace; abstol = integrator.opts.abstol + ) +end + +function _initialize_dae!( + integrator, prob::DAEProblem, alg::CheckInit, + isinplace::Val{false} + ) + resid = prob.f(integrator.du, integrator.u, integrator.p, integrator.t) + abstol = integrator.opts.abstol + norm_resid = if abstol isa Number + integrator.opts.internalnorm(resid, integrator.t) / abstol + else + resid_norm = resid ./ abstol + integrator.opts.internalnorm(resid_norm, integrator.t) + end + if norm_resid > 1 + throw(SciMLBase.CheckInitFailureError(prob, integrator.u, resid)) + end + return SciMLBase.get_initial_values( + prob, integrator, prob.f, alg, isinplace; abstol = integrator.opts.abstol + ) +end diff --git a/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl b/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl index bfa222596c7..fe64e6909ed 100644 --- a/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl +++ b/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl @@ -29,7 +29,7 @@ function loopheader!(integrator) integrator.success_iter += 1 apply_step!(integrator) end - elseif integrator.u_modified # && integrator.iter == 0 + elseif integrator.iter == 0 && integrator.u_modified if integrator.isdae DiffEqBase.initialize_dae!(integrator) end From de1bb9056ba0ab400af39bea5d59115042ce43be Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 21 Feb 2026 22:23:07 +0530 Subject: [PATCH 49/70] Updates --- Project.toml | 2 +- .../src/alg_utils.jl | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 6d58ba73887..0e80eb4cc70 100644 --- a/Project.toml +++ b/Project.toml @@ -111,7 +111,7 @@ Adapt = "4.3" ArrayInterface = "7.19" CommonSolve = "0.2.4" DataStructures = "0.18.22, 0.19" -DiffEqBase = "6.205.1" +DiffEqBase = "6.203" DocStringExtensions = "0.9.5" EnumX = "1.0.5" ExplicitImports = "1.13.1" diff --git a/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl b/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl index 2ae1aac0404..cc118e3408c 100644 --- a/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl +++ b/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl @@ -19,6 +19,15 @@ function _alg_autodiff( return alg.autodiff end +function _alg_autodiff( + alg::Union{ + OrdinaryDiffEqExponentialAlgorithm{CS, AD, FDT, ST, CJ}, + OrdinaryDiffEqAdaptiveExponentialAlgorithm{CS, AD, FDT, ST, CJ}, + } + ) where {CS, AD, FDT, ST, CJ} + return AD +end + function alg_autodiff(alg) autodiff = _alg_autodiff(alg) @@ -76,6 +85,17 @@ function DiffEqBase.prepare_alg( return remake(alg, autodiff = autodiff) end +function DiffEqBase.prepare_alg( + alg::Union{ + OrdinaryDiffEqExponentialAlgorithm{CS, AD, FDT, ST, CJ}, + OrdinaryDiffEqAdaptiveExponentialAlgorithm{CS, AD, FDT, ST, CJ}, + }, + u0::AbstractArray{T}, + p, prob + ) where {CS, AD, FDT, ST, CJ, T} + return alg +end + function prepare_ADType(autodiff_alg::AutoSparse, prob, u0, p, standardtag) return SciMLBase.@set autodiff_alg.dense_ad = prepare_ADType( ADTypes.dense_ad(autodiff_alg), prob, u0, p, standardtag From a4801f3a853f0f598c7b2c9a97b8711d75828f37 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Wed, 25 Feb 2026 18:18:53 +0530 Subject: [PATCH 50/70] Fixes --- lib/OrdinaryDiffEqBDF/Project.toml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/OrdinaryDiffEqBDF/Project.toml b/lib/OrdinaryDiffEqBDF/Project.toml index 187b481eeb5..bf6711dcce0 100644 --- a/lib/OrdinaryDiffEqBDF/Project.toml +++ b/lib/OrdinaryDiffEqBDF/Project.toml @@ -76,3 +76,15 @@ SafeTestsets = "0.1.0" [targets] test = ["DiffEqDevTools", "DifferentiationInterface", "ForwardDiff", "Random", "SafeTestsets", "Test", "ODEProblemLibrary", "NonlinearSolve", "Enzyme", "LinearSolve", "Pkg", "JET", "Aqua", "AllocCheck"] + +[sources.OrdinaryDiffEqSDIRK] +path = "../OrdinaryDiffEqSDIRK" + +[sources.OrdinaryDiffEqDifferentiation] +path = "../OrdinaryDiffEqDifferentiation" + +[sources.OrdinaryDiffEqNonlinearSolve] +path = "../OrdinaryDiffEqNonlinearSolve" + +[sources.OrdinaryDiffEqCore] +path = "../OrdinaryDiffEqCore" From e734f8a215cf527f204a6f3abec5d164e966b406 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Wed, 25 Feb 2026 18:33:02 +0530 Subject: [PATCH 51/70] Fixes --- .github/workflows/Downgrade.yml | 2 - lib/OrdinaryDiffEqCore/src/initialize_dae.jl | 41 -------------- .../src/integrators/integrator_utils.jl | 2 +- .../src/alg_utils.jl | 20 ------- .../test/nystrom_convergence_tests.jl | 13 ++--- .../src/OrdinaryDiffEqRosenbrock.jl | 1 - .../test/runtests.jl | 53 ++++++++++--------- test/runtests.jl | 27 ++++------ 8 files changed, 41 insertions(+), 118 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index eea43e960ec..bd88cea798b 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -37,8 +37,6 @@ jobs: with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,NonlinearSolve,NonlinearSolveFirstOrder julia_version: ${{ matrix.julia-version }} - - name: Re-resolve manifest after downgrade - run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: diff --git a/lib/OrdinaryDiffEqCore/src/initialize_dae.jl b/lib/OrdinaryDiffEqCore/src/initialize_dae.jl index 1424140a306..0aa3a8ffd8c 100644 --- a/lib/OrdinaryDiffEqCore/src/initialize_dae.jl +++ b/lib/OrdinaryDiffEqCore/src/initialize_dae.jl @@ -169,44 +169,3 @@ function _initialize_dae!( prob, integrator, prob.f, alg, isinplace; abstol = integrator.opts.abstol ) end - -function _initialize_dae!( - integrator, prob::DAEProblem, alg::CheckInit, - isinplace::Val{true} - ) - resid = similar(integrator.u) - prob.f(resid, integrator.du, integrator.u, integrator.p, integrator.t) - abstol = integrator.opts.abstol - norm_resid = if abstol isa Number - integrator.opts.internalnorm(resid, integrator.t) / abstol - else - resid_norm = resid ./ abstol - integrator.opts.internalnorm(resid_norm, integrator.t) - end - if norm_resid > 1 - throw(SciMLBase.CheckInitFailureError(prob, integrator.u, resid)) - end - return SciMLBase.get_initial_values( - prob, integrator, prob.f, alg, isinplace; abstol = integrator.opts.abstol - ) -end - -function _initialize_dae!( - integrator, prob::DAEProblem, alg::CheckInit, - isinplace::Val{false} - ) - resid = prob.f(integrator.du, integrator.u, integrator.p, integrator.t) - abstol = integrator.opts.abstol - norm_resid = if abstol isa Number - integrator.opts.internalnorm(resid, integrator.t) / abstol - else - resid_norm = resid ./ abstol - integrator.opts.internalnorm(resid_norm, integrator.t) - end - if norm_resid > 1 - throw(SciMLBase.CheckInitFailureError(prob, integrator.u, resid)) - end - return SciMLBase.get_initial_values( - prob, integrator, prob.f, alg, isinplace; abstol = integrator.opts.abstol - ) -end diff --git a/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl b/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl index fe64e6909ed..5ba9d0182d6 100644 --- a/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl +++ b/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl @@ -29,7 +29,7 @@ function loopheader!(integrator) integrator.success_iter += 1 apply_step!(integrator) end - elseif integrator.iter == 0 && integrator.u_modified + elseif integrator.u_modified == 0 && # integrator.iter == 0 if integrator.isdae DiffEqBase.initialize_dae!(integrator) end diff --git a/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl b/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl index cc118e3408c..2ae1aac0404 100644 --- a/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl +++ b/lib/OrdinaryDiffEqDifferentiation/src/alg_utils.jl @@ -19,15 +19,6 @@ function _alg_autodiff( return alg.autodiff end -function _alg_autodiff( - alg::Union{ - OrdinaryDiffEqExponentialAlgorithm{CS, AD, FDT, ST, CJ}, - OrdinaryDiffEqAdaptiveExponentialAlgorithm{CS, AD, FDT, ST, CJ}, - } - ) where {CS, AD, FDT, ST, CJ} - return AD -end - function alg_autodiff(alg) autodiff = _alg_autodiff(alg) @@ -85,17 +76,6 @@ function DiffEqBase.prepare_alg( return remake(alg, autodiff = autodiff) end -function DiffEqBase.prepare_alg( - alg::Union{ - OrdinaryDiffEqExponentialAlgorithm{CS, AD, FDT, ST, CJ}, - OrdinaryDiffEqAdaptiveExponentialAlgorithm{CS, AD, FDT, ST, CJ}, - }, - u0::AbstractArray{T}, - p, prob - ) where {CS, AD, FDT, ST, CJ, T} - return alg -end - function prepare_ADType(autodiff_alg::AutoSparse, prob, u0, p, standardtag) return SciMLBase.@set autodiff_alg.dense_ad = prepare_ADType( ADTypes.dense_ad(autodiff_alg), prob, u0, p, standardtag diff --git a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl index 32d3f59c6d6..982151fedaf 100644 --- a/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl +++ b/lib/OrdinaryDiffEqRKN/test/nystrom_convergence_tests.jl @@ -516,8 +516,8 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - @test sol_i.t ≈ sol_o.t rtol = 1.0e-5 - @test sol_i.u ≈ sol_o.u rtol = 1.0e-5 + @test sol_i.t ≈ sol_o.t + @test sol_i.u ≈ sol_o.u else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u @@ -541,13 +541,8 @@ end sol_i = solve(ode_i, alg) sol_o = solve(ode_o, alg) if VERSION >= v"1.11" - # Adaptive controllers can take slightly different steps between in-place and - # out-of-place forms; compare trajectories on a shared grid instead of by index. - @test first(sol_i.t) == first(sol_o.t) - @test last(sol_i.t) == last(sol_o.t) - @test abs(length(sol_i.t) - length(sol_o.t)) <= 2 - ts = range(first(sol_i.t), last(sol_i.t), length = 128) - @test sol_i.(ts) ≈ sol_o.(ts) rtol = 5.0e-2 + @test sol_i.t ≈ sol_o.t + @test sol_i.u ≈ sol_o.u else @test_broken sol_i.t ≈ sol_o.t @test_broken sol_i.u ≈ sol_o.u diff --git a/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl b/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl index c7cc2c76456..9baeb86cb38 100644 --- a/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl +++ b/lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl @@ -15,7 +15,6 @@ import OrdinaryDiffEqCore: alg_order, alg_adaptive_order, isWmethod, isfsal, _un DerivativeOrderNotPossibleError, _bool_to_ADType, _process_AD_choice, LinearAliasSpecifier, copyat_or_push! using MuladdMacro, FastBroadcast, RecursiveArrayTools -import MacroTools import MacroTools: namify using MacroTools: @capture using DiffEqBase: @def diff --git a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl index 0c547d19924..690268fbbec 100644 --- a/lib/SimpleImplicitDiscreteSolve/test/runtests.jl +++ b/lib/SimpleImplicitDiscreteSolve/test/runtests.jl @@ -1,32 +1,34 @@ using Test using SimpleImplicitDiscreteSolve +using OrdinaryDiffEqSDIRK using SafeTestsets const TEST_GROUP = get(ENV, "ODEDIFFEQ_TEST_GROUP", "ALL") # Run functional tests if TEST_GROUP != "QA" - @testset "Implicit Discrete Stepping" begin - dt = 0.01 - tspan = (0.0, 0.5) + # Test implicit Euler using ImplicitDiscreteProblem + @testset "Implicit Euler" begin + function lotkavolterra(u, p, t) + [1.5 * u[1] - u[1] * u[2], -3.0 * u[2] + u[1] * u[2]] + end - @testset "Linear scalar equation" begin - function linear!(resid, u_next, u, p, t) - # Implicit Euler for u' = -u: - # u_{n+1} - u_n - dt*(-u_{n+1}) = 0 - resid[1] = u_next[1] - u[1] + dt * u_next[1] - nothing - end - u0 = [1.0] - nsteps = Int(round((tspan[2] - tspan[1]) / dt)) - # SimpleIDSolve initializes by solving one implicit step at t0. - expected = u0[1] / (1 + dt)^(nsteps + 1) - - idprob = ImplicitDiscreteProblem(linear!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(); dt) - - @test isapprox(idsol.u[end][1], expected, rtol = 1.0e-10) + function f!(resid, u_next, u, p, t) + lv = lotkavolterra(u_next, p, t) + resid[1] = u_next[1] - u[1] - 0.01 * lv[1] + resid[2] = u_next[2] - u[2] - 0.01 * lv[2] + nothing end + u0 = [1.0, 1.0] + tspan = (0.0, 0.5) + + idprob = ImplicitDiscreteProblem(f!, u0, tspan, []) + idsol = solve(idprob, SimpleIDSolve(), dt = 0.01) + + oprob = ODEProblem(lotkavolterra, u0, tspan) + osol = solve(oprob, ImplicitEuler()) + + @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) ### free-fall # y, dy @@ -41,16 +43,15 @@ if TEST_GROUP != "QA" nothing end u0 = [10.0, 0.0] - nsteps = Int(round((tspan[2] - tspan[1]) / dt)) + tspan = (0, 0.5) idprob = ImplicitDiscreteProblem(g!, u0, tspan, []) - idsol = solve(idprob, SimpleIDSolve(); dt) + idsol = solve(idprob, SimpleIDSolve(); dt = 0.01) + + oprob = ODEProblem(ff, u0, tspan) + osol = solve(oprob, ImplicitEuler()) - m = nsteps + 1 - expected_v = u0[2] - 9.8 * dt * m - expected_y = u0[1] + m * dt * u0[2] - 9.8 * dt^2 * m * (m + 1) / 2 - @test isapprox(idsol.u[end][1], expected_y, atol = 1.0e-10) - @test isapprox(idsol.u[end][2], expected_v, atol = 1.0e-10) + @test isapprox(idsol.u[end - 1], osol.u[end], atol = 0.1) end @testset "Solver initializes" begin diff --git a/test/runtests.jl b/test/runtests.jl index f6f4298f99e..3414c28dcfe 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -208,28 +208,19 @@ end if !is_APPVEYOR && GROUP == "GPU" activate_gpu_env() - import CUDA - capability = CUDA.capability(CUDA.device()) - supports_nan_ptx_modifier = capability >= v"8.0" - if supports_nan_ptx_modifier - @time @safetestset "Simple GPU" begin - import OrdinaryDiffEqCore - include( - joinpath( - dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", - "test/gpu/simple_gpu.jl" - ) + @time @safetestset "Simple GPU" begin + import OrdinaryDiffEqCore + include( + joinpath( + dirname(pathof(OrdinaryDiffEqCore.DiffEqBase)), "..", + "test/gpu/simple_gpu.jl" ) - end - @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") - @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") - @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") - @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") - else - @info "Skipping adaptive GPU testsets on pre-sm_80 GPUs due PTX .NaN instruction requirements" capability + ) end + @time @safetestset "Autoswitch GPU" include("gpu/autoswitch.jl") @time @safetestset "Linear LSRK GPU" include("gpu/linear_lsrk.jl") @time @safetestset "Linear Exponential GPU" include("gpu/linear_exp.jl") + @time @safetestset "Reaction-Diffusion Stiff Solver GPU" include("gpu/reaction_diffusion_stiff.jl") @time @safetestset "Scalar indexing bug bypass" include("gpu/hermite_test.jl") @time @safetestset "RKIP Semilinear PDE GPU" include("gpu/rkip_semilinear_pde.jl") @time @safetestset "simple dae on GPU" include("gpu/simple_dae.jl") From 7cfaa0653ea810463788f1a04d3178c90154a091 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Wed, 25 Feb 2026 18:35:47 +0530 Subject: [PATCH 52/70] Fixes --- .github/workflows/DowngradeSublibraries.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index e49ca865d37..e6a977d9929 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -69,8 +69,6 @@ jobs: projects: ${{ matrix.project }} skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolve,NonlinearSolveBase,NonlinearSolveFirstOrder,DifferentiationInterface,SciMLOperators julia_version: ${{ matrix.julia-version }} - - name: Re-resolve manifest after downgrade - run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} From 82855173f359363cd35073edcd58b20529b7ffaa Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Wed, 25 Feb 2026 18:44:24 +0530 Subject: [PATCH 53/70] Retrigger From acd3b2f2f968cabc43c07599a7c3c59b55243f19 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 28 Feb 2026 16:20:35 +0530 Subject: [PATCH 54/70] Fix: Add Pkg.resolve() after downgrade-compat to fix dependency resolution --- .github/workflows/DowngradeSublibraries.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index e6a977d9929..f09eedf1918 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -69,6 +69,8 @@ jobs: projects: ${{ matrix.project }} skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolve,NonlinearSolveBase,NonlinearSolveFirstOrder,DifferentiationInterface,SciMLOperators julia_version: ${{ matrix.julia-version }} + - name: Resolve downgraded project dependencies + run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve()' - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} From 425b74c3ad07c7f78eea663cb940aa868068a7bf Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 28 Feb 2026 16:20:35 +0530 Subject: [PATCH 55/70] Fix: Add Pkg.resolve() after downgrade-compat in Downgrade.yml --- .github/workflows/Downgrade.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index bd88cea798b..eea43e960ec 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -37,6 +37,8 @@ jobs: with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,NonlinearSolve,NonlinearSolveFirstOrder julia_version: ${{ matrix.julia-version }} + - name: Re-resolve manifest after downgrade + run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: From 38772cc28879b53524a1cc5991c04468d374ba6d Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 28 Feb 2026 17:08:11 +0530 Subject: [PATCH 56/70] Added resolution to CI --- .github/workflows/DowngradeSublibraries.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index f09eedf1918..e6a977d9929 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -69,8 +69,6 @@ jobs: projects: ${{ matrix.project }} skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolve,NonlinearSolveBase,NonlinearSolveFirstOrder,DifferentiationInterface,SciMLOperators julia_version: ${{ matrix.julia-version }} - - name: Resolve downgraded project dependencies - run: julia --color=yes --project=${{ matrix.project }} -e 'using Pkg; Pkg.resolve()' - uses: julia-actions/julia-buildpkg@v1 with: project: ${{ matrix.project }} From 77ab96903611e7560f288b10fb8f89590dcb846d Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 28 Feb 2026 17:16:22 +0530 Subject: [PATCH 57/70] Added resolution to CI --- .github/workflows/CI.yml | 11 ++--------- .github/workflows/Downgrade.yml | 13 +++---------- .github/workflows/DowngradeSublibraries.yml | 3 +-- 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 1628966b20c..335e2b67ea7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -355,15 +355,9 @@ jobs: version: 'pre' steps: - uses: actions/checkout@v6 - - name: Setup Julia - uses: julia-actions/setup-julia@v2 + - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.version }} - - name: Verify Julia on PATH - id: verify_julia - run: | - command -v julia - julia --version - uses: actions/cache@v5 env: cache-name: cache-artifacts @@ -380,11 +374,10 @@ jobs: check_bounds: auto env: GROUP: ${{ matrix.group }} - JULIA_PKG_SERVER_REGISTRY_PREFERENCE: conservative - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} files: lcov.info fail_ci_if_error: false - disable_safe_directory: true + disable_safe_directory: true \ No newline at end of file diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index eea43e960ec..222f3e4f599 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -17,7 +17,7 @@ concurrency: cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: test: - if: true + if: false runs-on: ubuntu-latest strategy: matrix: @@ -29,20 +29,13 @@ jobs: - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.julia-version }} - - name: Verify Julia installation - run: | - command -v julia - julia --version - uses: julia-actions/julia-downgrade-compat@v2 with: - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,NonlinearSolve,NonlinearSolveFirstOrder + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} - - name: Re-resolve manifest after downgrade - run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: ALLOW_RERESOLVE: false env: - GROUP: ${{ matrix.group }} - JULIA_PKG_SERVER_REGISTRY_PREFERENCE: conservative + GROUP: ${{ matrix.group }} \ No newline at end of file diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index e6a977d9929..219d43da65a 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -67,7 +67,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation,NonlinearSolve,NonlinearSolveBase,NonlinearSolveFirstOrder,DifferentiationInterface,SciMLOperators + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation julia_version: ${{ matrix.julia-version }} - uses: julia-actions/julia-buildpkg@v1 with: @@ -78,4 +78,3 @@ jobs: ALLOW_RERESOLVE: false env: ODEDIFFEQ_TEST_GROUP: FUNCTIONAL - JULIA_PKG_SERVER_REGISTRY_PREFERENCE: conservative From e3ff9ceafb692dbbe9ceace32c59f4f08a32d7dd Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sat, 28 Feb 2026 17:24:25 +0530 Subject: [PATCH 58/70] Revert --- .github/workflows/CI.yml | 2 +- .github/workflows/Downgrade.yml | 2 +- test/integrators/resize_tests.jl | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 335e2b67ea7..2e1d5504cf6 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -380,4 +380,4 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} files: lcov.info fail_ci_if_error: false - disable_safe_directory: true \ No newline at end of file + disable_safe_directory: true diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 222f3e4f599..a097b67b526 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -38,4 +38,4 @@ jobs: with: ALLOW_RERESOLVE: false env: - GROUP: ${{ matrix.group }} \ No newline at end of file + GROUP: ${{ matrix.group }} diff --git a/test/integrators/resize_tests.jl b/test/integrators/resize_tests.jl index 9d9341f1e4d..68483eec8e3 100644 --- a/test/integrators/resize_tests.jl +++ b/test/integrators/resize_tests.jl @@ -146,7 +146,7 @@ resize!(i, 5) ) solve!(i) -function f_resize_jac(du, u, p, t) +function f(du, u, p, t) du[1] = 2.0 * u[1] - 1.2 * u[1] * u[2] du[2] = -3 * u[2] + u[1] * u[2] for i in 3:length(u) @@ -170,7 +170,7 @@ function f_jac(J, u, p, t) end return nothing end -ff = ODEFunction(f_resize_jac; jac = f_jac, jac_prototype = [1.0 1.0; 1.0 1.0]) +ff = ODEFunction(f; jac = f_jac, jac_prototype = [1.0 1.0; 1.0 1.0]) cb = DiscreteCallback((u, t, integ) -> true, integ -> @views(integ.u[3:5]) .= 0) prob = ODEProblem(ff, [1.0, 1.0], (0.0, 1.0)) @@ -236,7 +236,5 @@ runSim(Rosenbrock23(autodiff = AutoFiniteDiff())) integrator = init(ode, Tsit5()) @test_nowarn step!(integrator) @test_nowarn resize!(integrator, 2) - integrator.u[2] = integrator.u[1] - u_modified!(integrator, true) @test_nowarn step!(integrator) end From 9b64d4f7fc05ffb62094c687e415fa2c01abf56c Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 00:28:58 +0530 Subject: [PATCH 59/70] Fixes --- .github/workflows/Downgrade.yml | 2 ++ lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index a097b67b526..48295e65d67 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,6 +33,8 @@ jobs: with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} + - name: Re-resolve manifest after downgrade + run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: diff --git a/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl b/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl index 5ba9d0182d6..fe64e6909ed 100644 --- a/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl +++ b/lib/OrdinaryDiffEqCore/src/integrators/integrator_utils.jl @@ -29,7 +29,7 @@ function loopheader!(integrator) integrator.success_iter += 1 apply_step!(integrator) end - elseif integrator.u_modified == 0 && # integrator.iter == 0 + elseif integrator.iter == 0 && integrator.u_modified if integrator.isdae DiffEqBase.initialize_dae!(integrator) end From 9591347e95bc62bee8db6e670211f91780c3733c Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 00:31:02 +0530 Subject: [PATCH 60/70] activate downgrade ci --- .github/workflows/Downgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 48295e65d67..42545c6c978 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -17,7 +17,7 @@ concurrency: cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: test: - if: false + if: true runs-on: ubuntu-latest strategy: matrix: From 79e285eb5258d94f8e890cd6cde7152631c0862b Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 01:54:02 +0530 Subject: [PATCH 61/70] Updates --- Project.toml | 2 +- lib/OrdinaryDiffEqFeagin/Project.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index e9537de1e7c..29c2f1f0e80 100644 --- a/Project.toml +++ b/Project.toml @@ -168,7 +168,7 @@ PrecompileTools = "1.2.1" Preferences = "1.5" RecursiveArrayTools = "3.36" Reexport = "1.2.2" -SciMLBase = "2.143" +SciMLBase = "2.146" SciMLOperators = "1.8" SciMLStructures = "1.7" SimpleNonlinearSolve = "2.7" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml index a2690546ad0..7f16b989a83 100644 --- a/lib/OrdinaryDiffEqFeagin/Project.toml +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -51,3 +51,4 @@ test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test", "ODEProblemLibrary", [sources.OrdinaryDiffEqCore] path = "../OrdinaryDiffEqCore" + From 59e3acfbefe870fb61c2d7a47cdeedf92d1fb04b Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 02:37:45 +0530 Subject: [PATCH 62/70] Updates --- .github/workflows/Downgrade.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 42545c6c978..713441bfec5 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,8 +33,6 @@ jobs: with: skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} - - name: Re-resolve manifest after downgrade - run: julia --color=yes --project=. -e 'using Pkg; Pkg.resolve(); Pkg.instantiate()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: From beaf6edba1f2e5f4642ba0c456f82a80367d9340 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 11:02:16 +0530 Subject: [PATCH 63/70] Updates --- .github/workflows/Downgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 713441bfec5..b5055c8f3b4 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -36,6 +36,6 @@ jobs: - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: - ALLOW_RERESOLVE: false + ALLOW_RERESOLVE: true env: GROUP: ${{ matrix.group }} From 608d6054529f8d1605a6bf753a2ac67191720433 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 11:39:43 +0530 Subject: [PATCH 64/70] Updates --- .github/workflows/DowngradeSublibraries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 219d43da65a..c8c1254dc9e 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -67,7 +67,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils julia_version: ${{ matrix.julia-version }} - uses: julia-actions/julia-buildpkg@v1 with: From ec83f92ba72f0a5ec0dc1700bedaa2a5dbeb66ed Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 11:46:02 +0530 Subject: [PATCH 65/70] Updates --- .github/workflows/Downgrade.yml | 2 +- .github/workflows/DowngradeSublibraries.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index b5055c8f3b4..a664ff5fd23 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -31,7 +31,7 @@ jobs: version: ${{ matrix.julia-version }} - uses: julia-actions/julia-downgrade-compat@v2 with: - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils, OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation julia_version: ${{ matrix.julia-version }} - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index c8c1254dc9e..e06cc52342e 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -67,7 +67,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils, OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation julia_version: ${{ matrix.julia-version }} - uses: julia-actions/julia-buildpkg@v1 with: From f2ed7239eb44006912510fc11bffe32ec7162b64 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Sun, 1 Mar 2026 14:53:46 +0530 Subject: [PATCH 66/70] Package install --- lib/SimpleImplicitDiscreteSolve/Project.toml | 25 ++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/SimpleImplicitDiscreteSolve/Project.toml b/lib/SimpleImplicitDiscreteSolve/Project.toml index 4c4ae9e8ca1..c3175a50dad 100644 --- a/lib/SimpleImplicitDiscreteSolve/Project.toml +++ b/lib/SimpleImplicitDiscreteSolve/Project.toml @@ -5,28 +5,29 @@ version = "1.6.0" [deps] DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" +OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7" -[extras] -JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" -Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" - [compat] -JET = "0.9, 0.11" -julia = "1.10" -Pkg = "1" -SafeTestsets = "0.1.0" -Test = "<0.0.1, 1" AllocCheck = "0.2" DiffEqBase = "6.194" +JET = "0.9, 0.11" +Pkg = "1" Reexport = "1.2.2" +SafeTestsets = "0.1.0" SciMLBase = "2.128" SimpleNonlinearSolve = "2.7" +Test = "<0.0.1, 1" +julia = "1.10" + +[extras] +AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" +JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" +Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] test = ["Test", "Pkg", "SafeTestsets"] From 17836c101c6f79a97e044b375c71426a1f4da7fc Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Mon, 2 Mar 2026 19:08:44 +0530 Subject: [PATCH 67/70] Update workflows --- .github/workflows/Downgrade.yml | 8 +++++--- .github/workflows/DowngradeSublibraries.yml | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index a664ff5fd23..9a11f11d513 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: downgrade_mode: ['alldeps'] - julia-version: ['1.11'] + julia-version: ['1.12'] group: ['InterfaceI'] steps: - uses: actions/checkout@v6 @@ -31,11 +31,13 @@ jobs: version: ${{ matrix.julia-version }} - uses: julia-actions/julia-downgrade-compat@v2 with: - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils, OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation + mode: ${{ matrix.downgrade_mode }} julia_version: ${{ matrix.julia-version }} - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: - ALLOW_RERESOLVE: true + allow_reresolve: false + force_latest_compatible_version: false env: GROUP: ${{ matrix.group }} diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index e06cc52342e..719a08269b4 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -24,7 +24,7 @@ jobs: fail-fast: false matrix: downgrade_mode: ['alldeps'] - julia-version: ['1.11'] + julia-version: ['1.12'] project: - 'lib/ImplicitDiscreteSolve' - 'lib/OrdinaryDiffEqAdamsBashforthMoulton' @@ -67,7 +67,8 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} - skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils, OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation + skip: Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,OrdinaryDiffEqCore,OrdinaryDiffEqNonlinearSolve,OrdinaryDiffEqDifferentiation + mode: ${{ matrix.downgrade_mode }} julia_version: ${{ matrix.julia-version }} - uses: julia-actions/julia-buildpkg@v1 with: @@ -75,6 +76,7 @@ jobs: - uses: julia-actions/julia-runtest@v1 with: project: ${{ matrix.project }} - ALLOW_RERESOLVE: false + allow_reresolve: false + force_latest_compatible_version: false env: ODEDIFFEQ_TEST_GROUP: FUNCTIONAL From 2ae2f04a09a140d2b1fe77734aa324b5a4318ac1 Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Mon, 2 Mar 2026 19:41:49 +0530 Subject: [PATCH 68/70] Retrigger From 533098ba4cdb1a558ed1ab8f1722bb5dd2caecaf Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Mon, 2 Mar 2026 19:49:29 +0530 Subject: [PATCH 69/70] Retrigger From e0854afc6b34edf84d9c091b34c89a9a9359a8cd Mon Sep 17 00:00:00 2001 From: paramthakkar123 Date: Mon, 2 Mar 2026 19:50:25 +0530 Subject: [PATCH 70/70] Retrigger