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
Hello :) I'm fairly new to pixi, and was wondering how pixi.lock exactly works.
Does it specify the exact package version?
The official document says that pixi.lock will ensure that the environment is reproducible.
This gives you (and your collaborators) a way to really reproduce the environment they are working in. Using tools such as docker suddenly becomes much less necessary.
My questions are,
1-1). Does pixi.lock always specify one version (that is installed in the current pixi project) of each package?
Are there cases where a range instead of exact one version is written,
or there are multiple versions?
1-2). If the answer to 1-1) is NO, then how can pixi.lock be used to create the exact same environment? For instance, is it different from conda list or uv.lock?
Is building environment with the file guaranteed for different platforms?
I understand that pixi can be used in multiple platforms (MacOS, Linux, Windows, etc.) Does a pixi.lock file guarantee building the same environment for different platforms as well? or could there be caveats like packages not supported in certain platforms?
Thank you so so much for your interest in this topic and your responses!
the pixi.lock contains the exact sha256 hash. It will only install that exact package from that exact URL (unless mirrors are configured , e.g. for behind proxies)
1.1 A environment for one platform can only have one version, for multiple versions you need to create multiple environments.
1.2 pixi.lock is a mix of conda list and uv.lock as it combines the conda and PyPI package into one lockfile. We differ with the uv.lock as of writing this, in the sense that we have complete environments in our lockfile. We only install as locked, uv can to a "last solve" on installation to figure out what combination of packages works for your specific machine.
The pixi.lock contains all environments for all platforms you want to build for. This guarantees the installation is possible on those platforms. At the time of writing this we don't guarantee alignment between the versions of packages on different platforms, but that is a wish for the future.
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
Uh oh!
There was an error while loading. Please reload this page.
-
Hello :) I'm fairly new to pixi, and was wondering how pixi.lock exactly works.
The official document says that pixi.lock will ensure that the environment is reproducible.
My questions are,
1-1). Does pixi.lock always specify one version (that is installed in the current pixi project) of each package?
Are there cases where a range instead of exact one version is written,
or there are multiple versions?
1-2). If the answer to 1-1) is NO, then how can pixi.lock be used to create the exact same environment? For instance, is it different from conda list or uv.lock?
I understand that pixi can be used in multiple platforms (MacOS, Linux, Windows, etc.) Does a pixi.lock file guarantee building the same environment for different platforms as well? or could there be caveats like packages not supported in certain platforms?
Thank you so so much for your interest in this topic and your responses!
Beta Was this translation helpful? Give feedback.
All reactions