This is a totally random list of things that are currently not best practice in this repository that we eventually want to resolve with #27 by fixing #17 .
The package has too many dependencies and some of them are difficult to install. Ideally we don't depend on users to install packages in a specific order nor having to use Conda
To resolve this we should double check every dependency. Do we really need it and can we get rid of it? Why are there installation issues for some of them on different platforms? Is there a way to get rid of all Conda dependencies? If not, can we create a conda package for sparcs?
The package should be trivially installable.
Get it on PyPI and Conda
Separate CLI and library. This brings a lot of complexity and weird code structure. Don't do it.
We create sparcs and sparcs-cli. Eventually both of them are on PyPI and Conda. The CLI package has sparcs and optionally click/whatever as dependencies. This helps us resolve weird code structure
Doc structure is off.
There should be a single docs folder with potentially a source folder. We'll just use what the scverse templates provides us with.
Code formatting and docstyles are off.
We'll use the Ruff + pre-commit setup of the scverse template. We'll use Google docstring style and configure Ruff to check it.
setup.py is legacy
Adopt the pyproject.toml setup from the template. The files defined in the MANIFEST should be picked up and shipped automatically. However, larger files should potentially be downloaded lazily on request.
The README is overwhelming.
Keep it minimal and remove the complex installation instructions. We'll just make it so easy so that this won't be necessary anymore Ha!
No unit tests.
We should have unit tests so that at least every public function is tested. An integration test for the whole pipeline would also be good.
This is a totally random list of things that are currently not best practice in this repository that we eventually want to resolve with #27 by fixing #17 .
To resolve this we should double check every dependency. Do we really need it and can we get rid of it? Why are there installation issues for some of them on different platforms? Is there a way to get rid of all Conda dependencies? If not, can we create a conda package for sparcs?
Get it on PyPI and Conda
We create sparcs and sparcs-cli. Eventually both of them are on PyPI and Conda. The CLI package has sparcs and optionally click/whatever as dependencies. This helps us resolve weird code structure
There should be a single
docs
folder with potentially asource
folder. We'll just use what the scverse templates provides us with.We'll use the Ruff + pre-commit setup of the scverse template. We'll use Google docstring style and configure Ruff to check it.
Adopt the pyproject.toml setup from the template. The files defined in the MANIFEST should be picked up and shipped automatically. However, larger files should potentially be downloaded lazily on request.
Keep it minimal and remove the complex installation instructions. We'll just make it so easy so that this won't be necessary anymore Ha!
We should have unit tests so that at least every public function is tested. An integration test for the whole pipeline would also be good.