Skip to content

Ditch some REQUIREments? #12

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

Closed
mauro3 opened this issue Nov 28, 2016 · 1 comment
Closed

Ditch some REQUIREments? #12

mauro3 opened this issue Nov 28, 2016 · 1 comment

Comments

@mauro3
Copy link
Contributor

mauro3 commented Nov 28, 2016

If the units-test do their work properly, then we can remove Parameter.jl and Ranges.jl. I don't know how easily RecursiveArrayTools.jl could be removed. We're stuck with SimpleTraits.jl and RecipesBase.jl. Although the latter could be moved to a plots-package (but I'd rather not).

Ref: luchr/ODEInterface.jl#9

@ChrisRackauckas
Copy link
Member

ChrisRackauckas commented Nov 28, 2016

@yES, Parameters.jl is no longer used (it was used in the algorithms, now it's not).

Ranges.jl only shows up here:

https://github.com/JuliaDiffEq/DiffEqBase.jl/blob/master/src/solutions/solution_interface.jl#L55

So only when plotting a solution which has dense output, something the units tests don't cover. We can hardcode a solution. The fact is the Ranges.linspace should be the real linspace in Base because the Base linspace is not compatible with a lot of types, while the Ranges.jl version is.

To drop RecursiveArrayTools.jl, we could move the two vecvecapply methods to DiffEqBase (dup them).

But I don't know how much this really helps. This is only looking at "the number" of dependencies. In reality, if someone is just caring about the number of dependencies, they probably just care about 0 vs any. The dependencies we're talking about here are deps with either under 100 lines of code (Ranges.jl, RecursiveArrayTools.jl, etc.) or in the low hundreds (RecipesBase.jl, Parameters.jl, SimpleTraits.jl). These are all tiny and Julia-only dependencies (so no build problems) which I don't think any informed individual should have a problem with (which in many cases people might not know about the common small dependencies like RecipesBase if they aren't involved in many packages), if they are accepting more than 0 dependencies. For something like ODEInterface, it is a 0 dependency library which is very nice because then it's still useful in isolation. The only good solution there is conditional dependencies.

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

2 participants