Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upper bound dependencies of OrdinaryDiffEq #2883

Merged
merged 2 commits into from
Aug 28, 2019

Conversation

devmotion
Copy link
Contributor

We plan to add some breaking changes to DiffEqBase, and hence the compatibility of old versions of OrdinaryDiffEq with DiffEqBase should be corrected (see SciML/OrdinaryDiffEq.jl#891). In addition this PR upper bounds all other currently unrestricted dependencies as well.

I'm editing Compat.toml for the first time, and I'm not completely sure about the syntax. Is there a difference between specifiers for versions 0.x and 1.x, similar to https://julialang.github.io/Pkg.jl/v1/compatibility/#Caret-specifiers-1, i.e., does

DiffEqDiffTools = "0.13.0-0"

mean the version is compatible with DiffEqDiffTools 0.x.y for all x >= 13 and y >= 0 or only with DiffEqDiffTools 0.13.y for all y >= 0?

@StefanKarpinski
Copy link
Contributor

Any numbers that are left off are considered to be wild cards. So 0.13.0-0 means 0.13.0-0.*.*, i.e. [0.13.0, 1.0.0) or in other words anything after 0.13.0 up to but not including 1.0.0 versions.

@devmotion
Copy link
Contributor Author

OK, great, then the changes in this PR seem to work as intended.

@StefanKarpinski
Copy link
Contributor

You may have done this already, but if you make the changes to your checked out registry, then you can test whether it works as expected by trying to install packages.

@StefanKarpinski
Copy link
Contributor

Do you want us to proceed with merging this?

@devmotion
Copy link
Contributor Author

I followed your advice and checked that all affected OrdinaryDiffEq versions (5.4.0, 5.5.0, 5.6.0, 5.6.1, 5.7.0, 5.7.1, 5.8.0, 5.8.1, 5.9, 5.10, 5.11.0, 5.11.1, 5.12.0, 5.13.0, and 5.14.0) can be installed. However, things got a bit more complicated when I started to check which of these releases can actually be compiled (in the initial commit I had set the upper bounds of most dependencies to the latest release). I figured out that apparently (unsurprisingly) most of the older versions are not compatible with the latest versions of DiffEqBase and other dependencies. Hence I tightened some of the bounds even more.

For all affected OrdinaryDiffEq versions now using OrdinaryDiffEq works as well. Unfortunately, for most versions Pkg.test("OrdinaryDiffEq") fails since SciML/DiffEqProblemLibrary.jl#50 actually requires DiffEqOperators >= 4.0.0 but unfortunately DiffEqProblemLibrary's Project.toml was not updated accordingly.

I guess there might be other compatibility issues with previous versions of OrdinaryDiffEq but I'm fine with these changes for now. At least the PR reduces the compatibility issues with DiffEqBase and allows us to introduce breaking changes in DiffEqBase without breaking the whole DiffEq ecosystem, and it seems that old versions of OrdinaryDiffEq can still be installed and compiled.

Any comments @ChrisRackauckas ?

@ChrisRackauckas
Copy link
Member

LGTM, but I think we need to do StochasticDiffEq as well?

@devmotion
Copy link
Contributor Author

That's already done: #2921

@ChrisRackauckas ChrisRackauckas merged commit e188313 into JuliaRegistries:master Aug 28, 2019
@ChrisRackauckas
Copy link
Member

Then I think we are good to go. I added the lower bound to DiffEqProblemLibrary, though that won't fix those older tests.

@devmotion devmotion deleted the ordinarydiffeq branch August 28, 2019 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants