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

Move support for optional features from rattler to resolvo #104

Open
prsabahrami opened this issue Jan 27, 2025 · 0 comments
Open

Move support for optional features from rattler to resolvo #104

prsabahrami opened this issue Jan 27, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@prsabahrami
Copy link
Contributor

After some discussions, @baszalmstra and I realized It is best to move the support for optional features to resolvo's side. Currently the optional features are handled on rattler's side by creating a new solvable per each requested extra with dependency on the original solvable. This causes the conflict graph to grow extensively as there can be different solvables per each extra per each version. An example requesting only one extra from a sample package where multiple package versions provide a certain extra:

Error: Cannot solve the request because of: The following packages are incompatible
├─ foo[with-bar] * cannot be installed because there are no viable options:
│  ├─ foo[with-bar] 3.5.0 would require
│  │  └─ foo ==3.5.0 py36h1af98f8_1[md5=fb731d9290f0bcbf3a054665f33ec94f, sha256=67a63bec3fd3205170eaad532d487595b8aaceb9814d13c6858d7bac3ef24cd4], which cannot be installed because there are no viable options:
│  │     └─ foo 3.5.0, which conflicts with the versions reported above.
│  ├─ foo[with-bar] 3.4.0 would require
│  │  └─ foo ==3.4.0 py36h1af98f8_1[md5=fb731d9290f0bcbf3a054665f33ec94f, sha256=67a63bec3fd3205170eaad532d487595b8aaceb9814d13c6858d7bac3ef24cd4], which cannot be installed because there are no viable options:
│  │     └─ foo 3.4.0, which conflicts with the versions reported above.
│  ├─ foo[with-bar] 3.3.0 would require
│  │  └─ foo ==3.3.0 py36h1af98f8_1[md5=fb731d9290f0bcbf3a054665f33ec94f, sha256=67a63bec3fd3205170eaad532d487595b8aaceb9814d13c6858d7bac3ef24cd4], which cannot be installed because there are no viable options:
│  │     └─ foo 3.3.0, which conflicts with the versions reported above.
│  ├─ foo[with-bar] 3.2.0 would require
│  │  └─ foo ==3.2.0 py36h1af98f8_1[md5=fb731d9290f0bcbf3a054665f33ec94f, sha256=67a63bec3fd3205170eaad532d487595b8aaceb9814d13c6858d7bac3ef24cd4], which cannot be installed because there are no viable options:
│  │     └─ foo 3.2.0, which conflicts with the versions reported above.
│  ├─ foo[with-bar] 3.1.0 would require
│  │  └─ foo ==3.1.0 py36h1af98f8_1[md5=fb731d9290f0bcbf3a054665f33ec94f, sha256=67a63bec3fd3205170eaad532d487595b8aaceb9814d13c6858d7bac3ef24cd4], which cannot be installed because there are no viable options:
│  │     └─ foo 3.1.0, which conflicts with the versions reported above.
│  └─ foo[with-bar] 3.0.2 would require
│     └─ foo ==3.0.2 py36h1af98f8_1[md5=fb731d9290f0bcbf3a054665f33ec94f, sha256=67a63bec3fd3205170eaad532d487595b8aaceb9814d13c6858d7bac3ef24cd4], which cannot be installed because there are no viable options:
│        └─ foo 3.0.2, which conflicts with the versions reported above.
└─ foo >=4.0 cannot be installed because there are no viable options:
   └─ foo 4.0.2, which conflicts with the versions reported above.

Hence, it is best to move the support to resolvo which would be somewhat similar to #101 with the difference that the value of the conditional literals is known in advance.

@prsabahrami prsabahrami added good first issue Good for newcomers enhancement New feature or request and removed good first issue Good for newcomers labels Jan 27, 2025
@baszalmstra baszalmstra added the resolvo label Mar 27, 2025 — with Linear
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants