JuliaOptimalTransport / OptimalTransport.jl

Optimal transport algorithms for Julia
https://juliaoptimaltransport.github.io/OptimalTransport.jl/dev
MIT License
93 stars 8 forks source link

Separating code in multiple packages #108

Closed davibarreira closed 2 years ago

davibarreira commented 3 years ago

It was discussed the idea of splitting the code in multiple and using OptimalTransport.jl as a "unifying interface". Are we going to follow this route? I've started the creation of the ExactOptimalTransport.jl package with the algorithms for the exact ot problem, but I have some questions about things like documentation. I mean, are we going to have documentation for each package, or just for the OptimalTransport.jl? Also, should we implement all the badges such as Zenodo, or just leave it in the main package?

devmotion commented 3 years ago

In my experience it is better to have separate documentations. Otherwise the documentation is outdated and does not refer to specific versions.

We also have to make sure that we keep the git history when we refactor and split OptimalTransport.

davibarreira commented 3 years ago

So I can go on with the ExactOptimalTransport.jl package? Can I add it to the organization already or should I fixed the documentation first? I already adjusted the dependencies and tests, and it’s all working already.

Also, What about the DOI? Should I create another Zenodo badge or is it unnecessary ary?

devmotion commented 3 years ago

Have you preserved the git history or did you just copy the files?

davibarreira commented 3 years ago

Just copied -.- (sorry I’m a noob)

devmotion commented 3 years ago

No worries :slightly_smiling_face: We should preserve the git history though since otherwise it is not clear why and by whom different things were implemented. This will make it easier for future contributors (and ourselves) to understand the design. Moreover, it will lead to better structured commits.

Usually, it is easiest to extract the relevant files with https://github.com/newren/git-filter-repo/ (if it is not nicely separated yet, we would want to refactor it in OptimalTransport.jl first) and then add the remaining Pkg + Documenter stuff in an initial PR. You can try it, otherwise I can take a stab at it within the next days.

devmotion commented 2 years ago

I just noticed that I completely forgot this issue. I just extracted the relevant files and git history to https://github.com/JuliaOptimalTransport/ExactOptimalTransport.jl. I'll make a PR that gets the package into a runnable state.