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

Big Tags and Letting DifferentialEquations.jl Stabilize a Bit (Release and Documentation is out of Sync) #130

Closed
ChrisRackauckas opened this issue Jan 11, 2017 · 4 comments

Comments

@ChrisRackauckas
Copy link
Member

ChrisRackauckas commented Jan 11, 2017

I was developing too quickly, and it seems that METADATA is very backed up. For the time being, I am very sorry that there is this problem, and hopefully soon it will get worked out. But also, this gives an opportunity to let DifferentialEquations.jl stabilize for a bit, so that's what I will be doing. There will be a large number tags which will slowly make everything in the current documentation fully functional, and I will let that play out for a bit (only doing bug fixes) before hammering away at new features. In the meantime, I will be working on my research projects: new methods for SDEs/DDEs/ODEs which can later be added as features, but it will take time.

I will be using this issue to track all of the current tags until they go through. Until this set of tags goes through, I will be working on other matters (writing papers on new solvers I've been working on behind the scenes). Until the tags go through, you can expect problems with the following functionality:

  • The integrator interface
  • Events/Callbacks
  • Delay differential equation solvers
  • Monte Carlo simulation methods
  • Uncertainty quantification
  • Developer tools (benchmarking, etc.)
  • Callback Library
  • The new ParameterizedFunction constructor on arbitrary user-defined functions
  • CompositeAlgorithms
  • ODE.jl common interface bindings

Of course, you can checkout master on a bunch of packages to fix this, but there's a bit to it so I would not recommend doing this unless you really need something.

@ChrisRackauckas
Copy link
Member Author

ChrisRackauckas commented Jan 11, 2017

@ChrisRackauckas
Copy link
Member Author

ChrisRackauckas commented Jan 11, 2017

Note that these tags mark the end of the current massive expansion of DifferentialEquations.jl. It was first discussed and proposed here:

#47

All of the add-on functionality which was discussed there (parameter estimation, sensitivity analysis, Monte Carlo methods, uncertainty quantification, etc.) have at least some algorithms implemented for the common solver interface (except for optimal control, which I am leaving to others since I know some other people have it on their docket, like here). With these together, there's one other package recently created, DiffEqDiffTools.jl, which is just developer tools for calculating Jacobians and things like that (using ParameterizedFunctions and traits etc.)

Other than that, that haults the current boom in the birth of new packages. The packages which are unregistered after these tags are:

  • FinancialModels.jl
  • MultiScaleModels.jl
  • DiffEqBifurcate.jl
  • DiffEqUncertainty.jl

DiffEqBifurcate is waiting on PyCall segfault fixes. FinancialModels.jl just needs a few updates to the new SDE setup. MultiScaleModels.jl is one package I will be working on quite heavily for my own research. DiffEqUncertainty.jl still needs work.

The only other place I see spawning a new package in the near future is the interaction with ApproxFun. It's right now as SpectralTimestepping.jl, though a few changes to OrdinaryDiffEq.jl should make it work much better and with that I will be migrating and appropriately naming it DiffEqApproxFun.jl which will be a library that sets up norms, linear solvers, and callbacks to allow them to more easily use ApproxFun types. But not for awhile.

I think it will be a good thing to let a few things settle for a bit before continuing to push on.

@ChrisRackauckas
Copy link
Member Author

ChrisRackauckas commented Jan 12, 2017

Here's some things I recently stated in the Gitter channel regarding this update and stability. It makes sense to note it here:

First of all, a lot of functionality is separated into separate packages. This is so DiffEqBase and OrdinaryDiffEq (the ODE solvers and how to specify problems) can stabilize more quickly. I actually think that with the newest callbacks and integrator interface, that setup is essentially complete and the main ODE solvers should be very stable. The setup was changed about two months ago to make sure it would be modular enough so that way things could be added ecosystem-wide without disruption, but it was a huge disruption to set that up Another thing is that the user-facing API has been pretty stable. Other than the way that the algorithms are chosen, solve(prob,alg) has been there for months, where for a little it was solve(prob,Tsit5) and quickly changed to solve(prob,Tsit5()). But that setup is now very fixed (since using the full functionality is used many different places), so that's not changing (and I would actively fight to keep it this way). But lastly, this tagging setup is meant to be a brain dump that puts all of the functionality that I have together as one stable release.

That's why it's OrdinaryDiffEq v1.0, and then auxiliary packages like things for easily doing parallel Monte Carlo that I have had hanging around in the background. In the issue I linked, I stated that I am going to let this stabilize for a bit. In the meantime, I will be working on some publications that I have to push out, and my own research projects (MultiScaleModels.jl, new SDE methods, etc.). Other than bug fixes, I don't plan on having the time to add more stuff anyways (but I will add a state-dependent delay solver when I am done discussing it with Shampine, and will do the interpolations improvements: #127)

The last thing to mention is that @zahachtah is right: I am aiming for a really strong package by Julia 1.0
I am going to be applying to give a workshop at JuliaCon, would like to show a very complete ecosystem by then. If you look at my roadmap: http://www.stochasticlifestyle.com/6-months-differentialequations-jl-going/ The only things I have left are behind the scenes promotions, allowing you to choose your linear/nonlinear solvers, and then some "ecosystem addons" (like bifurcation analysis, which works but segfaults).

The core is together, and I think what I need to do to show that is simply not touch it for a bit. I hope that explains it.

@ChrisRackauckas ChrisRackauckas changed the title Release and Documentation is out of Sync Big Tags and Letting DifferentialEquations.jl Stabilize a Bit (Release and Documentation is out of Sync) Jan 12, 2017
@ChrisRackauckas
Copy link
Member Author

All of these tags have gone through. The current state is blogged here: http://juliadiffeq.org/2017/01/14/stable.html

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

No branches or pull requests

1 participant