Manage dependencies
- The library should allow the widest range possible of dependencies
- It is the user's responsibility to have a stable environment
- virtual-env (create requirements.txt before pip --upgrade) and pip
- conda
- do not use conda with global python !
- container
- It is the user's responsibility to have a stable environment
- Should requirements.txt be part of OGSTools:
- multiple dimensions:
- per python version (minor release - different)
- per extra or set of extras (all extras for ogstools-developer, no extras for users)
- multiple dimensions:
For OGS development
- too much dependencies in toolchain (example: Snakemake
- Reduce dependencies
- More stable environments
- pip, conda, guix
- pinned dependencies
- OGS_USE_PIP, OGS_USE_CONDA
- OGS_USE_PIP={USER,DEV,CI}
- different requirements
For OGSTools development
- test when ogstools is part of conda-forge (again)
- removal of non-conda packages in progress (ogs6py-> Integration, VTUInterface->Integration, ogs-> Optional, in progress)
-
pip install -e <path_to_git>
- if conda: https://stackoverflow.com/questions/76722680/what-is-the-best-way-to-combine-conda-with-standard-python-packaging-tools-e-g
- if necessary, resolve problems by specifying specific versions
For OGSTools user
- How to create a stable environment
- User is here: CI, project, ..
- 1. create virtual env / conda env
- 2.
pip install ogstools
and other libraries /conda install ogstools
- As OGSTools dev:
- 3. run tests, check docs, ...
- 4. create requirements.txt
pip freeze -l
orconda list --export
- 5. restore via
pip install -r requirements.txt
if necessary or create different environments- environments with pip can break with system-update
Edited by Tobias Meisel