You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project depends mostly on Python modules available through PyPI, but it has a few dependencies—bbmap (and therefore also Java), minimap2, samtools—that are available through conda or via source code. At some point, we'll need to decide how much we want to encompass within our chosen package manager, i.e., should we leave it to the user to install conda dependencies separately?
If so, we could choose between managing the environment with more modern tools like Poetry, uv, etc. If not, should we use a package manager that can support PyPI and conda like Pixi? Or third option: should we just manage everything with conda and and requirements.txt?
To start off the discussion, I'd put my hat in the ring for leaving conda installs to the user and managing this project with Poetry, with the caveat that we write a module that checks for dependencies before proceeding. I'd opt for Poetry for a few reasons:
It centers around a pyproject.toml, which we can use to control the Python build system and would ultimately make it much easier to submit this project to PyPI.
Poetry allows us to separate development dependencies, e.g., Ruff, PyTest, and Jupyter, from the projects dependencies, e.g., Pandas.
We can include much more useful metadata in a pyproject.toml than in a conda environment.yml or a Pip requirements.txt, and a pyproject.toml can trivially be converted to a requirements.txt anyway.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
This project depends mostly on Python modules available through PyPI, but it has a few dependencies—bbmap (and therefore also Java), minimap2, samtools—that are available through conda or via source code. At some point, we'll need to decide how much we want to encompass within our chosen package manager, i.e., should we leave it to the user to install conda dependencies separately?
If so, we could choose between managing the environment with more modern tools like Poetry,
uv
, etc. If not, should we use a package manager that can support PyPI and conda like Pixi? Or third option: should we just manage everything with conda and and requirements.txt?To start off the discussion, I'd put my hat in the ring for leaving conda installs to the user and managing this project with Poetry, with the caveat that we write a module that checks for dependencies before proceeding. I'd opt for Poetry for a few reasons:
pyproject.toml
, which we can use to control the Python build system and would ultimately make it much easier to submit this project to PyPI.pyproject.toml
than in a condaenvironment.yml
or a Piprequirements.txt
, and apyproject.toml
can trivially be converted to arequirements.txt
anyway.Something to simmer on!
Beta Was this translation helpful? Give feedback.
All reactions