Skip to content

Remove DiffEqBase dependency from subpackages, use SciMLBase directly#433

Merged
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:fix-deprecation-warnings
Feb 9, 2026
Merged

Remove DiffEqBase dependency from subpackages, use SciMLBase directly#433
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:fix-deprecation-warnings

Conversation

@ChrisRackauckas-Claude
Copy link
Contributor

Summary

  • Replace DiffEqBase.build_solution and DiffEqBase.interp_summary calls with SciMLBase equivalents in FIRK and MIRK subpackages (these are identical functions re-exported by DiffEqBase)
  • Remove unused DiffEqBase dependency from FIRK, MIRK, MIRKN, Ascher, and Shooting subpackages (both [deps] and [compat] entries)
  • In Shooting, move solve import from DiffEqBase to SciMLBase
  • Fix BVPM2 test item to use skip = true with uncommented test body instead of commented-out code that triggers empty test set warnings in CI

Motivation

The subpackages were importing DiffEqBase but only using functions that are available directly from SciMLBase. Removing the unnecessary dependency reduces the dependency surface and avoids potential future deprecation warnings as DiffEqBase continues to consolidate into SciMLBase.

Note: BoundaryValueDiffEqCore still retains DiffEqBase as a dependency since it's the foundational package.

Test plan

  • FIRK tests pass locally (Pkg.test("BoundaryValueDiffEqFIRK"))
  • MIRK tests pass locally (22/22 test items)
  • MIRKN tests pass locally (35/35 tests)
  • Shooting tests pass locally (188/188 tests)
  • Ascher tests pass locally (3/4 completed, problem 1 is a known slow test)
  • CI passes

🤖 Generated with Claude Code

DiffEqBase re-exports build_solution, interp_summary, and solve from
SciMLBase. Replace all DiffEqBase.build_solution/interp_summary calls
with SciMLBase equivalents and remove unused DiffEqBase imports from
FIRK, MIRK, MIRKN, Ascher, and Shooting subpackages to reduce
dependency surface and avoid future deprecation warnings.

Also fix BVPM2 test item to use skip=true with uncommented test body
instead of commented-out code that triggers empty test set warnings.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit cca22cc into SciML:master Feb 9, 2026
14 of 22 checks passed
@github-actions
Copy link
Contributor

github-actions bot commented Feb 9, 2026

Benchmark Results

Click to check benchmark results
master 308958c... master / 308958c...
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK2() 0.595 ± 0.013 s 0.58 ± 0.015 s 1.02 ± 0.036
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK3() 13.7 ± 0.73 ms 13.7 ± 0.76 ms 1.01 ± 0.077
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK4() 3.14 ± 0.2 ms 3.1 ± 0.2 ms 1.01 ± 0.092
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK5() 9.34 ± 1.2 ms 9.28 ± 1.3 ms 1.01 ± 0.19
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK6() 1.62 ± 0.29 ms 1.6 ± 0.29 ms 1.02 ± 0.26
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = false) 1.86 ± 0.63 ms 1.89 ± 0.64 ms 0.982 ± 0.47
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = true) 3.17 ± 0.96 ms 3.17 ± 0.97 ms 1 ± 0.43
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.0673 ± 0.0073 s 0.0663 ± 0.0076 s 1.01 ± 0.16
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.0799 ± 0.012 s 0.0791 ± 0.013 s 1.01 ± 0.22
Simple Pendulum/IIP/Shooting(Tsit5()) 0.252 ± 0.075 ms 0.252 ± 0.077 ms 1 ± 0.43
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK2() 0.761 ± 0.015 s 0.736 ± 0.0088 s 1.03 ± 0.023
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK3() 17 ± 6.4 ms 16.7 ± 5.4 ms 1.02 ± 0.5
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK4() 3.64 ± 0.2 ms 3.57 ± 0.19 ms 1.02 ± 0.077
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK5() 10.8 ± 1.2 ms 10.9 ± 1.2 ms 0.995 ± 0.15
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK6() 1.9 ± 0.2 ms 1.9 ± 0.23 ms 0.998 ± 0.16
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = false) 3.68 ± 2.9 ms 3.77 ± 3 ms 0.977 ± 1.1
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = true) 6.19 ± 5 ms 6.38 ± 5.1 ms 0.97 ± 1.1
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.125 ± 0.0047 s 0.127 ± 0.011 s 0.989 ± 0.096
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.15 ± 0.011 s 0.144 ± 0.008 s 1.05 ± 0.094
Simple Pendulum/OOP/Shooting(Tsit5()) 0.647 ± 0.057 ms 0.641 ± 0.052 ms 1.01 ± 0.12
time_to_load 5.69 ± 0.067 s 5.62 ± 0.027 s 1.01 ± 0.013
### Benchmark Plots A plot of the benchmark results has been uploaded as an artifact to the workflow run for this PR. Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants