Replies: 2 comments 3 replies
-
In pixi the idea is to always develop with a lockfile ( If you want the opposite of that, you could make a CI stage that removes the As an extra feature pixi allows for defining multiple environments. So you could use that to specify different set of dependencies in different settings. For example: [project]
name = "multi_env"
channels = ["conda-forge"]
platforms = ["linux-64"]
[feature.ci.dependencies]
python = "3.8.*"
[dependencies]
python = "*" # Latest greatest
[environments]
ci = ["ci"] Now you can run a different version of python in CI. pixi run --environment ci python main.py |
Beta Was this translation helpful? Give feedback.
-
I guess this makes sense. Adding such a feature would have to rely on a different mechanism for tracking what went into the lock, indeed.
Makes total sense, of course.
Great, thanks for sharing these thoughts here. You have already done quite an amazing job!
Saucy! Is there anything in particular that I should be looking for in the future? |
Beta Was this translation helpful? Give feedback.
-
I've been experimenting with pixi in the past few days, coming from both the mamba and pip ecosystems. It is quite a compelling tool and we're excited about its potential.
We have a bunch of packages we maintain and, eventually, install together. One of the pain points in putting our packages together is dependency resolution when combining 2, 3 or sometimes 4 different packages together. Often package "A" is tested on the CI using a certain version set of dependencies, but when it gets installed with package "B" alongside, a different set of dependencies is resolved which, occasionally, may lead to untested behaviour.
To avoid this, we typically maintain a set of CI "constraints" - a text file containing a fixed (common) set of dependency versions from all packages we maintain, that we know (ie. test) work well together. When we test packages on the CI, we enforce these constraints via pip using the
-c
install flag, so we're sure that at least one (reproducible) combination of dependencies will correctly resolve in case of multi-package environments.In this context, we wonder how to achieve a similar effect with pixi. Any experiences you could share w.r.t. this?
Thanks a lot!
Beta Was this translation helpful? Give feedback.
All reactions