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

DifferentialEquations.jl v5.0 and Julia v1.0.0 Compatibility #318

Closed
54 of 58 tasks
ChrisRackauckas opened this issue Jul 21, 2018 · 12 comments
Closed
54 of 58 tasks

DifferentialEquations.jl v5.0 and Julia v1.0.0 Compatibility #318

ChrisRackauckas opened this issue Jul 21, 2018 · 12 comments

Comments

@ChrisRackauckas
Copy link
Member

ChrisRackauckas commented Jul 21, 2018

Our DiffEq v5.0 release will also be the v0.7.0 compatibility release. The user-facing API changes are quite minimal, though it's v5.0 due to new feature releases and big breaking changes to the solver infrastructure. Here is a set of items which I am deeming as part of the v5.0.

There will be an official release post on the JuliaDiffEq.org blog roll. This post will be very release focus: mentioning exactly what was added and changed. I will also do an ecosystem update summary on my own StochasticLifestyle.com which will be more focused on describing our current trajectory and future goals.

Adding warnings in https://github.com/JuliaDiffEq/DiffEqBase.jl/blob/master/src/solve.jl : this is easy stuff and good JuliaCon2018 work:

  • Add tests for the new high level interface with things like distributions
  • Add high level warnings for integer time with adaptive methods
  • Add high level warnings for incorrect use of Dual numbers
  • Throw an error if we see a non-common interface argument. @ScottPJones can you help here?
  • Check saveat and tstops entry: if [] then eltype(prob.tspan)[]. EDIT: NOT BLOCKING

And here's the v0.7.0 compatibility list. The packages are only marked off after
tests can pass without depwarns due to themselves (and the test depwarns are
cleaned up).

  • OrdinaryDiffEq
  • StochasticDiffEq
  • DelayDiffEq
  • DiffEqBase
  • DiffEqOperators
  • DiffEqProblemLibrary
  • DiffEqMonteCarlo
  • DiffEqNoiseProcess
  • DiffEqFinancial
  • DifferentialEquations
  • PoissonRandom
  • DiffEqUncertainty
  • ParameterizedFunctions
  • Sundials
  • MuladdMacro
  • DASKR
  • DASSL
  • ODEInterfaceDiffEq
  • DimensionalPlotRecipes
  • RecursiveArrayTools
  • ResettableStacks
  • MATLABDiffEq
  • DiffEqDiffTools
  • DiffEqDevTools
  • DiffEqCallbacks
  • SteadyStateDiffEq
  • SimpleDiffEq
  • OrdinaryDiffEqExtendedTests
  • PyDSTool
  • DiffEqPhysics @Mikhail-Vaganov
  • DiffEqSensitivity
  • DiffEqJump
  • DiffEqBiological
  • MultiscaleArrays
  • ModelingToolkit
  • FEniCS @ysimillides
  • BoundaryValueDiffEq @YingboMa

Waiting for external authors (not considered blocking):

  • BridgeDiffEq
  • GeometricIntegratorsDiffEq
  • DiffEqBayes
  • DiffEqParamEstim

And documentation updates:

  • Check the tutorials
  • Update the benchmarks
  • Update the devdocs
  • Update the docs (add high level interface things)
  • Document no-recompile mode
  • Optional: update the webserver to use the new standardized no-recompile mode and v0.7? @amellnik
@ScottPJones
Copy link
Contributor

"Throw an error if we see a non-common interface argument"
I won't have time to look until Hackathon at the end of JuliaCon, hopefully we can talk about it there 😀

@ChrisRackauckas
Copy link
Member Author

@ScottPJones sounds like a plan!

@ChrisRackauckas
Copy link
Member Author

DiffEqDevTools has a problematic depwarn:

┌ Warning: `a::AbstractArray + b::Number` is deprecated, use `a .+ b` instead.
│   caller = top-level scope at none:0
└ @ Core none:0
┌ Warning: `a::AbstractArray + b::Number` is deprecated, use `a .+ b` instead.
│   caller = top-level scope at none:0
└ @ Core none:0
┌ Warning: `a::AbstractArray + b::Number` is deprecated, use `a .+ b` instead.
│   caller = top-level scope at none:0
└ @ Core none:0
┌ Warning: `a::AbstractArray + b::Number` is deprecated, use `a .+ b` instead.
│   caller = top-level scope at none:0
└ @ Core none:0
Now weak error
Get sample errors
Test Summary:              | Pass  Total
Analyticless Stochastic WP |    1      1
179.462133 seconds (478.09 M allocations: 111.873 GiB, 25.36% gc time)

@ChrisRackauckas
Copy link
Member Author

Removed

since that is bugfixes / feature improvements which don't change the interface and thus can happen at any time.

@ChrisRackauckas
Copy link
Member Author

ChrisRackauckas commented Jul 29, 2018

Note for those following: we are aiming for a post-JuliaCon release, probably a week or two afterwards. But as we add things they are available: the "release" is just the official blog post.

@ChrisRackauckas
Copy link
Member Author

ChrisRackauckas commented Aug 4, 2018

Every library has been updated for v0.7.

@ChrisRackauckas ChrisRackauckas changed the title DifferentialEquations.jl v5.0 and Julia v0.7.0 Compatibility DifferentialEquations.jl v5.0 and Julia v1.0.0 Compatibility Aug 8, 2018
@YingboMa
Copy link
Member

YingboMa commented Aug 8, 2018

OrdinaryDiffEq now works on Julia 1.0-rc. (ForwardDiff#master and Parameters.jl with mauro3/Parameters.jl#68 are needed)

@ChrisRackauckas
Copy link
Member Author

ChrisRackauckas commented Aug 8, 2018

v1.0-RC tests passing:

  • DiffEqBase
  • DiffEqOperators
  • ResettableStacks
  • Sundials
  • MuladdMacro
  • DASSL
  • DASKR
  • DimensionalPlotRecipes
  • DiffEqProblemLibrary
  • RecursiveArrayTools
  • PoissonRandom
  • SimpleDiffEq
  • ParameterizedFunctions
  • MATLABDiffEq
  • ModelingToolkit
  • DiffEqDiffTools
  • DiffEqCallbacks
  • SteadyStateDiffEq
  • DiffEqUncertainty
  • DiffEqSensitivity
  • DiffEqDevTools
  • BoundaryValueDiffEq
  • OrdinaryDiffEq

Upstream issues:

RandomNumbers.jl

  • StochasticDiffEq
  • DiffEqNoiseProcess
  • DiffEqMonteCarlo
  • DiffEqFinancial

FunctionWrappers.jl

  • ODEInterfaceDiffEq
  • OrdinaryDiffEqExtendedTests
  • DiffEqJump
  • DiffEqBiological

PyCall.jl

Difficult:

  • MultiscaleArrays
  • DiffEqPhysics
  • DelayDiffEq
  • DifferentialEquations

@ChrisRackauckas
Copy link
Member Author

Update:

  • 3 libraries are failing because RandomNumbers.jl needs to tag with Random.seed!, but are otherwise working.
  • FEniCS.jl needs to test with the new PyCall.
  • PyDSTool.jl has some mysterious error.
  • DelayDiffEq.jl needs to upgrade to handle new nonlinear solvers
  • Need to setup the warnings, that should be quick
  • remake seems to be type stable if we use the DiffEqFunction, so it should be a quick fix.
  • We need to add some things to the docs.

@ChrisRackauckas
Copy link
Member Author

I'm checking off PyDSTool since it's a known upstream issue and we need them to tag...

@tkf
Copy link

tkf commented Aug 18, 2018

remake still is not type stable SciML/DiffEqBase.jl#140 (comment)

@ChrisRackauckas
Copy link
Member Author

We need RandomNumbers.jl to release but other than that nothing else looks blocking. SciML/StochasticDiffEq.jl#99 is the last PR we want done, so it can track on its own. The blog post will go out on Monday either way since it's really not "that" breaking (and we'll just document it as though it's already happened, it should be done by Monday though). The webserver probably needs a bigger update and that's somewhat disconnected from this, and the benchmarks... I need to get the computer up and running again. So cheers.

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

No branches or pull requests

4 participants