pixi icon indicating copy to clipboard operation
pixi copied to clipboard

pip compile equivalent / trigger solve

Open maartenbreddels opened this issue 1 year ago • 4 comments

Problem description

I'd like to use pixi to give me just the lock file, not install packages, similar to how I can use pip-compile or uv pip compile.

However, pixi seems to generate the lock file only after a pixi add command. However, if I change the manifest file (e.g. generate), I cannot do a pixi compile/solve/lock or pixi install --dry-run to obtain a lockfile.

Maybe I misunderstood how pixi works, but I expect 3 phases:

  • add
  • solve
  • install

pixi seems to run solve and install by default, which is great, and I can skip the install using --no-install, which is also great.

However, I cannot trigger the solve phase independently.

maartenbreddels avatar Apr 06 '24 18:04 maartenbreddels

Yeah this is a more often requested feature. I though I would be able to link you to that issue but I guess it is lost in conversations.

ruben-arts avatar Apr 06 '24 20:04 ruben-arts

Having a pixi lock or something similar would be good indeed

olivier-lacroix avatar Apr 07 '24 05:04 olivier-lacroix

For documentation purposes, there is an requirement for the pypi solve to have a python interpreter available which we install in the conda ([dependencies] table) environment. Thus installing atleast part of the environment is required for the full locking of a pixi project.

For example this would still need to install python to only lock:

[project]
name = "test"
channels = ["conda-forge"]
platforms = ["linux-64"]

[dependencies]
python = ">=3.10"

[pypi-dependencies]
solara = "==1.30.1"

Until there is a solution to this issue https://github.com/prefix-dev/pixi/issues/1130, specifically the wheel only install.

ruben-arts avatar Apr 08 '24 07:04 ruben-arts

I have a similar use case, and my workaround is running pixi list or pixi tree. These are otherwise diagnostic commands that function like no-ops but still trigger a lockfile check.

The main thing that can be confusing from a UX perspective is that if you haven't installed anything and no lockfile update is needed, then both of those commands succeed without printing anything to console.

jayqi avatar Jul 31 '24 16:07 jayqi