Skip to content

Update to OrdinaryDiffEq.jl v7 and related SciML packages#2910

Open
github-actions[bot] wants to merge 68 commits into
mainfrom
compathelper/new_version/2026-04-02-00-09-29-812-04017954462
Open

Update to OrdinaryDiffEq.jl v7 and related SciML packages#2910
github-actions[bot] wants to merge 68 commits into
mainfrom
compathelper/new_version/2026-04-02-00-09-29-812-04017954462

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 2, 2026

This pull request changes the compat entry for the RecursiveArrayTools package from 3.37 to 3.37, 4.
This keeps the compat entries for earlier versions.

Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass before you merge this pull request.

Closes #2918, closes #2919, closes #2949, closes #2950, closes #2960, closes #2961, closes #2962, closes #2963, closes #2965, closes #2966, closes #2967, closes #2968, closes #2969, closes #2970, closes #2971, closes #2972, closes #2973, closes #2981, closes #2983, closes #2984.

Also closes #2938 and closes #2941.

The required changes, which keep backwards compatibility with older versions from the SciML ecosystem are:

Note that I used Claude to help me with refactoring some parts, but I reviewed the code and adapted it.

@ranocha ranocha force-pushed the compathelper/new_version/2026-04-02-00-09-29-812-04017954462 branch from 5d38e62 to 4a12427 Compare April 2, 2026 00:09
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 2, 2026

Codecov Report

❌ Patch coverage is 48.14815% with 28 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.08%. Comparing base (2e5ed0b) to head (d624e9e).

Files with missing lines Patch % Lines
ext/TrixiOrdinaryDiffEqCoreExt.jl 33.33% 24 Missing ⚠️
src/callbacks_step/save_restart.jl 63.64% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2910      +/-   ##
==========================================
- Coverage   97.13%   97.08%   -0.06%     
==========================================
  Files         625      626       +1     
  Lines       48514    48557      +43     
==========================================
+ Hits        47122    47137      +15     
- Misses       1392     1420      +28     
Flag Coverage Δ
unittests 97.08% <48.15%> (-0.06%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Member

@JoshuaLampert JoshuaLampert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs dependencies like SummationByPartsOperators.jl to be updated first.

@JoshuaLampert
Copy link
Copy Markdown
Member

We need jlchan/StartUpDG.jl#219 to be merged and released before.

@JoshuaLampert JoshuaLampert marked this pull request as draft April 28, 2026 23:31
@JoshuaLampert
Copy link
Copy Markdown
Member

Finally, we probably still want to figure out why elixir_advection_restart_amr.jl has a slightly different result. I can try to find that out.

I bisected this discrepancy to this PR: SciML/OrdinaryDiffEq.jl#3441, which first landed in OrdinaryDiffEqCore.jl v3.33.0. Using the commit directly before that PR:

julia> include("examples/tree_2d_dgsem/elixir_advection_restart_amr.jl");
[...]
julia> analysis_callback(sol)
(l2 = [8.018497923389368e-5], linf = [0.0007307237754662355])

(run_v3_32) pkg> st
Status `~/.julia/dev/Trixi/run_v3_32/Project.toml`
  [7d9f7c33] Accessors v0.1.44
  [bbf590c4] OrdinaryDiffEqCore v3.32.0 `https://github.com/SciML/OrdinaryDiffEq.jl.git:lib/OrdinaryDiffEqCore#97f41902`
⌃ [b0944070] OrdinaryDiffEqLowStorageRK v1.15.0
  [a7f1ee26] Trixi v0.16.8-DEV `..`
Info Packages marked with ⌃ have new versions available and may be upgradable.

With the commit from the PR:

julia> include("examples/tree_2d_dgsem/elixir_advection_restart_amr.jl");
[...]
julia> analysis_callback(sol)
(l2 = [8.018498574373939e-5], linf = [0.0007307237754662355])

(run_v6) pkg> st
Status `~/.julia/dev/Trixi/run_v6/Project.toml`
  [7d9f7c33] Accessors v0.1.44
  [bbf590c4] OrdinaryDiffEqCore v3.32.0 `https://github.com/SciML/OrdinaryDiffEq.jl.git:lib/OrdinaryDiffEqCore#1864296`
⌃ [b0944070] OrdinaryDiffEqLowStorageRK v1.15.0
  [a7f1ee26] Trixi v0.16.8-DEV `..`
Info Packages marked with ⌃ have new versions available and may be upgradable.

These L2-error values are exactly the two values in https://github.com/trixi-framework/Trixi.jl/pull/2910/changes#diff-0d913e7961860bd3a9c595d68dbd7a7b09ea17758afc8c814b9e45a454a04796R77. So this has nothing to do with restarting, controllers, or the v7 updates of the SciML packages, but is simply a coincidence. It didn't surface before since we currently restrict OrdinaryDiffEqCore.jl to v3.31. Looking at the changes of that PR, I think we can simply use the new value. Do you agree, @ranocha?

JoshuaLampert and others added 4 commits May 4, 2026 23:23
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Comment thread test/test_threaded.jl Outdated
@vchuravy vchuravy marked this pull request as ready for review May 5, 2026 06:20
Comment thread test/runtests.jl Outdated
@JoshuaLampert
Copy link
Copy Markdown
Member

JoshuaLampert commented May 5, 2026

Coverage reports are relatively bad with this PR, but that is expected because there are some error messages, which are not covered and the OrdinaryDiffEqCore.jl <v4 paths are not reported to be covered by codecov and coveralls because they are only covered by the Downgrade job, which does not contribute to the coverage reports since it is in a different actions file. I double-checked that the downgrade job indeed goes into the methods it should by introducing debug statements.

Comment thread test/runtests.jl Outdated
@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 5, 2026

Are there any changes that would make sense to pull out into its own PR? I wish stacked PRs would be in general availability https://github.github.com/gh-stack/

@JoshuaLampert
Copy link
Copy Markdown
Member

Yes, I think we could if it helps reviewing since many changes are related to fixing deprecations, but it would also be a bit of work to split the PR manually now.

@ranocha
Copy link
Copy Markdown
Member

ranocha commented May 5, 2026

Finally, we probably still want to figure out why elixir_advection_restart_amr.jl has a slightly different result. I can try to find that out.

I bisected this discrepancy to this PR: SciML/OrdinaryDiffEq.jl#3441, which first landed in OrdinaryDiffEqCore.jl v3.33.0. Using the commit directly before that PR:

julia> include("examples/tree_2d_dgsem/elixir_advection_restart_amr.jl");
[...]
julia> analysis_callback(sol)
(l2 = [8.018497923389368e-5], linf = [0.0007307237754662355])

(run_v3_32) pkg> st
Status `~/.julia/dev/Trixi/run_v3_32/Project.toml`
  [7d9f7c33] Accessors v0.1.44
  [bbf590c4] OrdinaryDiffEqCore v3.32.0 `https://github.com/SciML/OrdinaryDiffEq.jl.git:lib/OrdinaryDiffEqCore#97f41902`
⌃ [b0944070] OrdinaryDiffEqLowStorageRK v1.15.0
  [a7f1ee26] Trixi v0.16.8-DEV `..`
Info Packages marked with ⌃ have new versions available and may be upgradable.

With the commit from the PR:

julia> include("examples/tree_2d_dgsem/elixir_advection_restart_amr.jl");
[...]
julia> analysis_callback(sol)
(l2 = [8.018498574373939e-5], linf = [0.0007307237754662355])

(run_v6) pkg> st
Status `~/.julia/dev/Trixi/run_v6/Project.toml`
  [7d9f7c33] Accessors v0.1.44
  [bbf590c4] OrdinaryDiffEqCore v3.32.0 `https://github.com/SciML/OrdinaryDiffEq.jl.git:lib/OrdinaryDiffEqCore#1864296`
⌃ [b0944070] OrdinaryDiffEqLowStorageRK v1.15.0
  [a7f1ee26] Trixi v0.16.8-DEV `..`
Info Packages marked with ⌃ have new versions available and may be upgradable.

These L2-error values are exactly the two values in https://github.com/trixi-framework/Trixi.jl/pull/2910/changes#diff-0d913e7961860bd3a9c595d68dbd7a7b09ea17758afc8c814b9e45a454a04796R77. So this has nothing to do with restarting, controllers, or the v7 updates of the SciML packages, but is simply a coincidence. It didn't surface before since we currently restrict OrdinaryDiffEqCore.jl to v3.31. Looking at the changes of that PR, I think we can simply use the new value. Do you agree, @ranocha?

Thanks for debugging this! I agree that we can modify the value in this case.

Comment thread test/runtests.jl
Comment on lines +24 to +27
# Trixi automatically initializes MPI, this causes issues if precompilation occurs under MPI.
# The below MPI test uses different compilation flags and thus we want to ensure that precompilation is done with the same flags.
run(`$(Base.julia_cmd()) --threads=1 --check-bounds=yes -e "using Trixi, OrdinaryDiffEqCore"`)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be reverted again now that #2993 has been merged, @vchuravy?

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.

6 participants