eWaterCycle/ewatercycle

Using conda-lock to avoid dependencies breaking things

Closed this issue · 1 comments

Lately many issues have arisen related to changes elsewhere breaking the eWaterCycle platform. E.g. #355. This issues can arise from the dependencies of our dependencies (i.e. ESMValTool's many dependencies), so pinning our direct dependencies is insufficient.

With conda-lock we could create a completely reproducible environment, where all (sub)dependencies are pinned. This way we will not be surprised by things breaking suddenly.

As a bonus conda installs will be much faster as the conda package resolver is not needed anymore.

One downside is that we will manually have to upgrade the lock file. Sadly Dependabot does not support conda environments.

Additionally, I found a Github Action that can be used to automatically update the lock file:
https://github.com/conda/conda-lock/actions/runs/5607276875/workflow

The pull request created by this action will of course run the CI, so breaking changes in dependencies will be caught without any manual work required.