pybamm-team / PyBaMM

Fast and flexible physics-based battery models in Python
https://www.pybamm.org/
BSD 3-Clause "New" or "Revised" License
1.1k stars 543 forks source link

Monorepo #2315

Open valentinsulzer opened 2 years ago

valentinsulzer commented 2 years ago

Starting a summary issue to collect thoughts / to do about setting up monorepo infrastructure. The idea would be to keep everything in a single (this) GitHub repository, but have clearer splits between different "projects" within the repo. The main benefit of this is that it makes it easy to keep dependencies up to date, and requires less maintenance of infrastructure. A downside is that it requires smarter testing and infrastructure to keep CI running time down. A good example is scipy.

To do:

Possible project split:

brosaplanella commented 2 years ago

If we split the core, might be good to make it self-contained and pip-installable as well.

valentinsulzer commented 2 years ago

flake8 is one of the things that gets much slower with more files, but it can take a path, so we can easily run it on individual folders

valentinsulzer commented 2 years ago

Possible useful information here https://stackoverflow.com/questions/63129163/how-can-i-correctly-include-a-path-dependency-in-pyproject-toml

We would need to move the contents of pybamm into pybamm/src and then move setup.py, etc into pybamm