JuliaDynamics / DynamicalSystems.jl

Award winning software library for nonlinear dynamics and nonlinear timeseries analysis

Home Page:https://juliadynamics.github.io/DynamicalSystemsDocs.jl/dynamicalsystems/dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PSA: DynamicalSystems.jl will become a multirepo on v3.0

Datseris opened this issue · comments

When #176 is implemented, just before this change, the DynamicalSystems.jl GitHub repo will become a multirepository. This means, all packages of DynamicalSystems.jl will come here, on this GitHub repository. This is how many other "large" packages of Julia have moved forwards, as for example:

There are numerous advantages to this approach, the lack of all of which I have encountered several times while developing DynamicalSystems.jl or practically any of its subpackages:

  • New features can be implemented together with their documentation at the same time.
  • New algorithms that require changes in more than one module can be implemented in the same PR
  • Breaking changes can be done more safely, in the same PR (in case a change in one module affects another one)
  • Makes GitHub organization w.r.t. issues and labels and milestones much much simpler
  • It is much easier for the front end user who has only one place to open issues

and more.

I will be posting more details here once I learn more about this multirepo approach.

Somewhat relevant: During this movement the DynamicalSystems.jl framework will be split into more packages, specifically Datasets.jl (which will have everything Dataset related, leaving all emedding stuff in DelayEmbeddings) and PredefinedSystems.jl that will just have predefined systems.

Somewhat relevant: During this movement the DynamicalSystems.jl framework will be split into more packages, specifically Datasets.jl (which will have everything Dataset related, leaving all emedding stuff in DelayEmbeddings) and PredefinedSystems.jl that will just have predefined systems.

I like this approach. Currently, in CausalityTools.jl, some packages (like TransferEntropy) are already in their own packages, while other methods live as submodules in CausalityTools. It would be much cleaner if every method was in its own package, and introducing breaking changes could happen in a single PR. I will move forward with the same approach for CausalityTools.jl and friends.

This new package https://github.com/JuliaComputing/MultiDocumenter.jl may help with having docs in multiple places, however it is not clear to me how it works with multi repos.