prefix-dev / pixi

Package management made easy
https://pixi.sh
BSD 3-Clause "New" or "Revised" License
2.26k stars 135 forks source link

Allow flexible channel priority #1254

Open dp-alvarez opened 2 months ago

dp-alvarez commented 2 months ago

Problem description

I'm trying to get introduce Pixi at the company I work at, when I ran into this issue compared to our old conda setup. Basically we have our own internal conda channels with custom versions of some conda packages. Some projects depend on the custom version of those libraries, some depend on the upstream ones.

Pixi, according to the docs here, follows the behavior conda has with "strict channel priority" set. We can work around it by setting the channel source on a per-package basis, but that won't scale for wider adoption. Is there a plan to implement flexible channel priority in Pixi? Does the solver have this behavior and it's only a matter of exposing it in Pixi?

ruben-arts commented 2 months ago

He @dp-alvarez

Do you build your custom channel on top of conda-forge?

This is a known request, the latest response is: https://github.com/prefix-dev/pixi/discussions/1029#discussioncomment-8862908.

With enough people wanting this, we probably need to give in at some point :wink: Track it by giving a thumbs up! :+1:

dp-alvarez commented 2 months ago

Ooh I didn't that thread it as I only searched in issues, thanks for pointing it out.

We don't build it on top of conda-forge, that channel only has our own internal packages plus patched versions of some upstream libraries.

wolfv commented 2 months ago

There is also some work ongoing in rattler, the underlying library: https://github.com/mamba-org/rattler/pull/598 :)

ruben-arts commented 2 months ago

We don't build it on top of conda-forge, that channel only has our own internal packages plus patched versions of some upstream libraries.

Oh that is interesting. Are you building everything from scratch? Including all compilers etc?

dp-alvarez commented 2 months ago

Oh that is interesting. Are you building everything from scratch? Including all compilers etc?

Sadly it's nowhere that cool. We just build patched versions of libraries (pulling dependencies from conda-forge) and upload them to an internal conda channel. When I said "we don't build it on top of conda-forge" I meant that the internal channel isn't a mirror of conda-forge + patched packages, it contains just our internal patched packages and nothing else.

@wolfv great to know there is already code underway for it, thanks for the link!

roaldarbol commented 5 days ago

Just saw that the py-rattler PR is merged (https://github.com/mamba-org/rattler/pull/598). Would it be possible to expose the option in pixi now? :-)