Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Channel priority is not used for recursive dependencies. #2044

Open
2 tasks done
hameerabbasi opened this issue Sep 13, 2024 · 0 comments
Open
2 tasks done

Channel priority is not used for recursive dependencies. #2044

hameerabbasi opened this issue Sep 13, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@hameerabbasi
Copy link

Checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pixi, using pixi --version.

Reproducible example

[project]
authors = ["Hameer Abbasi <[email protected]>"]
channels = ["conda-forge", "conda-forge/label/llvm_rc"]
description = "Add a short description here"
name = "repro"
platforms = ["osx-arm64"]
version = "0.1.0"

[tasks]

[dependencies]
numba = ">=0.54,<0.61"
mlir-python-bindings = { version = "19.*", channel = "conda-forge/label/llvm_rc" }

then pixi shell. Output:

  × failed to solve the conda requirements of 'default' 'osx-arm64'
  ╰─▶ Cannot solve the request because of: The following packages are incompatible
      └─ mlir-python-bindings 19.* cannot be installed because there are no viable options:
         └─ mlir-python-bindings 19.1.0.rc3 | 19.1.0.rc3 | 19.1.0.rc3 | 19.1.0.rc3 would require
            └─ mlir 19.1.0.rc3.*, which cannot be installed because there are no viable options:
               └─ mlir 19.1.0.rc3 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/conda-forge/label/
      llvm_rc/'

Flipping around the channel prio gives:

  × failed to solve the conda requirements of 'default' 'osx-arm64'
  ╰─▶ Cannot solve the request because of: The following packages are incompatible
      └─ numba >=0.54,<0.61 cannot be installed because there are no viable options:
         ├─ numba 0.60.0 | 0.60.0 | 0.60.0 | 0.60.0 would require
         │  └─ llvmlite >=0.43.0,<0.44.0a0, which cannot be installed because there are no viable options:
         │     └─ llvmlite 0.43.0 | 0.43.0 | 0.43.0 | 0.43.0 | 0.43.0 | 0.43.0 | 0.43.0 | 0.43.0 | 0.43.0 would require
         │        └─ libllvm14 >=14.0.6,<14.1.0a0, which cannot be installed because there are no viable options:
         │           └─ libllvm14 14.0.6 | 14.0.6 | 14.0.6 | 14.0.6 | 14.0.6 is excluded because due to strict channel priority not using this option from: 'https://
      conda.anaconda.org/conda-forge/'
         ├─ numba 0.59.0 | 0.59.0 | 0.59.0 | 0.59.0 | 0.59.0 | 0.59.0 | 0.59.0 | 0.59.1 | 0.59.1 | 0.59.1 | 0.59.1 would require
         │  └─ llvmlite >=0.42.0,<0.43.0a0, which cannot be installed because there are no viable options:
         │     └─ llvmlite 0.42.0 | 0.42.0 | 0.42.0 | 0.42.0 | 0.42.0 | 0.42.0 | 0.42.0 would require
         │        └─ libllvm14 >=14.0.6,<14.1.0a0, which cannot be installed because there are no viable options:
         ├─ numba 0.58.1 | 0.58.1 | 0.58.1 | 0.58.1 | 0.58.1 | 0.58.1 | 0.58.1 | 0.58.1 would require
         │  └─ llvmlite >=0.41.1,<0.42.0a0, which cannot be installed because there are no viable options:
         │     └─ llvmlite 0.41.1 | 0.41.1 | 0.41.1 | 0.41.1 would require
         │        └─ libllvm14 >=14.0.6,<14.1.0a0, which cannot be installed because there are no viable options:
         ├─ numba 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.0 | 0.57.1 | 0.57.1 | 0.57.1 | 0.57.1 would
      require
         │  └─ llvmlite >=0.40.0,<0.41.0a0, which cannot be installed because there are no viable options:
         │     └─ llvmlite 0.40.0 | 0.40.0 | 0.40.0 | 0.40.0 | 0.40.1 | 0.40.1 | 0.40.1 | 0.40.1 would require
         │        └─ libllvm14 >=14.0.6,<14.1.0a0, which cannot be installed because there are no viable options:
         ├─ numba 0.56.2 | 0.56.2 | 0.56.2 | 0.56.2 | 0.56.2 | 0.56.2 | 0.56.3 | 0.56.3 | 0.56.3 | 0.56.4 | 0.56.4 | 0.56.4 | 0.56.4 | 0.56.4 | 0.56.4 would require
         │  └─ llvmlite >=0.39.1,<0.40.0a0, which cannot be installed because there are no viable options:
         │     └─ llvmlite 0.39.1 | 0.39.1 | 0.39.1 | 0.39.1 | 0.39.1 | 0.39.1 would require
         │        └─ libllvm11 >=11.1.0,<11.2.0a0, which cannot be installed because there are no viable options:
         │           └─ libllvm11 11.1.0 | 11.1.0 | 11.1.0 | 11.1.0 | 11.1.0 | 11.1.0 is excluded because due to strict channel priority not using this option from:
      'https://conda.anaconda.org/conda-forge/'
         ├─ numba 0.55.2 | 0.55.2 | 0.55.2 would require
         │  └─ llvmlite >=0.38.1,<0.39.0a0, which cannot be installed because there are no viable options:
         │     └─ llvmlite 0.38.1 | 0.38.1 | 0.38.1 would require
         │        └─ libllvm11 >=11.1.0,<11.2.0a0, which cannot be installed because there are no viable options:
         ├─ numba 0.55.0 | 0.55.0 | 0.55.0 | 0.55.1 | 0.55.1 | 0.55.1 | 0.55.1 | 0.55.1 | 0.55.1 would require
         │  └─ llvmlite >=0.38.0,<0.39.0a0, which cannot be installed because there are no viable options:
         │     └─ llvmlite 0.38.0 | 0.38.0 | 0.38.0 | 0.38.0 | 0.38.0 | 0.38.0 would require
         │        └─ libllvm11 >=11.1.0,<11.2.0a0, which cannot be installed because there are no viable options:
         └─ numba 0.54.0 | 0.54.0 | 0.54.1 | 0.54.1 would require
            └─ llvmlite >=0.37.0,<0.38.0a0, which cannot be installed because there are no viable options:
               └─ llvmlite 0.37.0 | 0.37.0 | 0.37.0 | 0.37.0 | 0.37.0 would require
                  └─ libllvm11 >=11.1.0,<11.2.0a0, which cannot be installed because there are no viable options:

Issue description

I think the dependencies of mlir-python-bindings should use the conda-forge/label/llvm_rc channel at a higher priority than the conda-forge label, which doesn't seem to be the case from the first error, otherwise one would always need to specify the whole dependency tree when installing a dep from another channel.

In addition, the ABI issues mentioned in https://pixi.sh/latest/advanced/channel_priority/ don't apply to this case; IMO they would only be exacerbated.

Expected behavior

The environment should solve in the first case (without channel prios flipped).

@hameerabbasi hameerabbasi added the bug Something isn't working label Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant