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

Expand pip's install-time conflict checking to the wheel and download commands #5497

Open
pradyunsg opened this issue Jun 13, 2018 · 8 comments
Labels
C: dependency resolution About choosing which dependencies to install C: download About fetching data from PyPI and other sources C: wheel The wheel format and 'pip wheel' command resolution: deferred till PR Further discussion will happen when a PR is made type: feature request Request for a new feature

Comments

@pradyunsg
Copy link
Member

What's the problem this feature will solve?
pip install today warns when it installs an incompatible set of packages. pip wheel and pip download do not.

Describe the solution you'd like

Expanding the warnings to also be shown when running pip wheel or pip download would be helpful as the same information is relevant even then.

See #988 (comment).

Alternative Solutions

None explored.

Additional context

N/A

@pradyunsg pradyunsg added C: wheel The wheel format and 'pip wheel' command C: dependency resolution About choosing which dependencies to install C: download About fetching data from PyPI and other sources type: feature request Request for a new feature labels Jun 13, 2018
@pradyunsg pradyunsg self-assigned this Jun 13, 2018
@pfmoore
Copy link
Member

pfmoore commented Jun 13, 2018

Not sure I follow here. pip wheel and pip download don't install anything, so what conflicts are involved?

Suppose I do pip wheel A B where A depends on B<2.0 and B 2.0 exists. This will download A and B 2.0. But I could already have B 1.0 in my wheelhouse, or I could download it later. If I do, then pip install A will still work from that wheelhouse. So what's the conflict? It's not as if pip wheel B will delete older versions of B when downloading B 2.0.

It seems to me that this might help one particular use case, at the cost of potentially producing confusing (and arguably incorrect) warnings for other use cases. I'd like to see a clearer justification, as well as a discussion of how to not trigger incorrect warnings in other cases (I'm not a fan of the "it's just a warning so you can ignore it if you know it doesn't matter" argument).

@pradyunsg
Copy link
Member Author

My initial thought here was that pip does end up downloading the incorrect versions of the packages (much like it would for pip install). I just wanted to file it somewhere until I have some time later to flesh out the thought.

@pfmoore
Copy link
Member

pfmoore commented Jun 13, 2018

Agreed, it's not impossible that we could do something helpful here. I'm just flagging up that because the target directory can contain multiple versions (unlike install), what counts as "downloading the incorrect versions of the packages" is not necessarily something we can assume is the same as for install. And in particular, the way I use pip wheel, the OP's use case wouldn't be "incorrect" for me.

No need for further debate on the matter until there's a PR, though.

@pradyunsg pradyunsg removed their assignment Jun 19, 2018
@NeolithEra

This comment has been minimized.

@pfmoore

This comment has been minimized.

@pradyunsg

This comment has been minimized.

@NeolithEra

This comment has been minimized.

@pfmoore pfmoore added the resolution: deferred till PR Further discussion will happen when a PR is made label Jun 11, 2020
@notatallshaw
Copy link
Member

I think this is no longer relevant? pip download never downloads conflicting packages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: dependency resolution About choosing which dependencies to install C: download About fetching data from PyPI and other sources C: wheel The wheel format and 'pip wheel' command resolution: deferred till PR Further discussion will happen when a PR is made type: feature request Request for a new feature
Projects
None yet
Development

No branches or pull requests

4 participants