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

Pip claims version conflict where there is none; involves extras and VCS deps #12483

Closed
1 task done
jwodder opened this issue Jan 23, 2024 · 1 comment
Closed
1 task done
Labels
S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior

Comments

@jwodder
Copy link
Contributor

jwodder commented Jan 23, 2024

Description

I have a locally-developed package named dandisets-healthstatus. Its all extra contains two dependencies, dandidav @ git+https://github.com/... and dandi (a PyPI package, without any version constraints). dandidav depends on dandi >= 0.58.2. The latest version of dandi on PyPI is 0.59.0.

When I try to do pip install .[all] where the current directory is the source of dandisets-healthstatus, pip fails with:

ERROR: Cannot install dandisets-healthstatus and dandisets-healthstatus[all]==0.0.0 because these package versions have conflicting dependencies.

The conflict is caused by:
    dandisets-healthstatus[all] 0.0.0 depends on dandi; extra == "all"
    dandidav 0.0.0 depends on dandi>=0.58.2

Clearly, dandi and dandi>=0.58.2 should be compatible, yet pip mistakenly thinks otherwise.

The problem also occurs when dandidav and dandi are moved into dandisets-healthstatus's "normal" dependencies instead of making them extras.

I attempted to create an MVCE for this bug using three local, minimal packages whose wheels were provided to pip via --no-index --find-links, but the error did not occur.

Expected behavior

pip install .[all] on the dandisets-healthstatus source code should have successfully installed dandidav and the latest version of dandi.

pip version

23.3.2

Python version

3.11.7

OS

macOS Sonoma 14.2.1

How to Reproduce

  1. git clone https://github.com/dandi/dandisets-healthstatus.git (I promise it won't bite)
  2. cd dandisets-healthstatus
  3. git checkout ea4ebaa6
  4. cd code
  5. python3 -m venv venv
  6. venv/bin/pip install ".[all]"

Output

A log of all output from pip install -vvv can be found at https://gist.github.com/jwodder/cd49394c1dfb2bb1e17a5aa32f5c4a49.

Code of Conduct

@jwodder jwodder added S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior labels Jan 23, 2024
@jwodder
Copy link
Contributor Author

jwodder commented Jan 23, 2024

Closing in favor of the actual issue: #12484

@jwodder jwodder closed this as not planned Won't fix, can't repro, duplicate, stale Jan 23, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior
Projects
None yet
Development

No branches or pull requests

1 participant