DynamicalSystems.jl icon indicating copy to clipboard operation
DynamicalSystems.jl copied to clipboard

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

Open Datseris opened this issue 3 years ago • 3 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:

  • https://github.com/JuliaPlots/Makie.jl
  • https://github.com/SciML/Optimization.jl

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.

Datseris avatar Aug 24 '22 10:08 Datseris

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.

Datseris avatar Aug 24 '22 10:08 Datseris

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.

kahaaga avatar Aug 24 '22 10:08 kahaaga

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.

Datseris avatar Sep 05 '22 07:09 Datseris