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

Help users determine the origin of their ResolutionImpossible error #8492

Closed
nlhkabu opened this issue Jun 24, 2020 · 5 comments
Closed

Help users determine the origin of their ResolutionImpossible error #8492

nlhkabu opened this issue Jun 24, 2020 · 5 comments
Assignees
Labels
UX User experience related

Comments

@nlhkabu
Copy link
Member

nlhkabu commented Jun 24, 2020

I am currently putting together documentation for the new resolver (see #8459).

As part of this process, I've been trying to work out how a user would work out where in their dependency tree a conflict has occurred - because in projects where a conflict has occurred deep in the dependency tree, it might not be obvious what package(s) a user needs to look at to solve their problem.

#8380 went a long way to improving the default error message, however (as discussed with @pfmoore and @ei8fdb) it would be useful to expose more information in the error message itself.

Side note: suggestions in #8346 related to improving the output pip provides while resolving a dependency conflict could also help the user find the source of the conflict. I think we should do both.

Recommended message format to follow.

@triage-new-issues triage-new-issues bot added the S: needs triage Issues/PRs that need to be triaged label Jun 24, 2020
@nlhkabu nlhkabu added the UX User experience related label Jun 24, 2020
@triage-new-issues triage-new-issues bot removed the S: needs triage Issues/PRs that need to be triaged label Jun 24, 2020
@brainwane
Copy link
Contributor

Per discussion in our meeting last week, this is something we'd like to do in Phase III.

@nlhkabu
Copy link
Member Author

nlhkabu commented Jul 8, 2020

Per discussion in our team meeting this week, I'd like this to be done before the new resolver becomes the default.

@nlhkabu
Copy link
Member Author

nlhkabu commented Oct 13, 2020

Imagine that we have a situation where package_coffee and package_tea create a conflict, but both are being pulled in by other packages (e.g. they are not directly specified by the user).

Maybe we could illustrate the root of the conflict with something like this:

Due to conflicting dependencies pip cannot install package_coffee and package_tea:
- package_coffee requires package_water<3.0.0,>=2.4.2
- package_tea requires package_water==2.3.1

Conflict origin:
- package_cafe==2.1 requires package_iced_coffee==2.3.4
  - package_iced_coffee==2.3.4 requires package_coffee
    - package_coffee requires package_water<3.0.0,>=2.4.2
- package_iced_tea==3.4.5 requires package_tea
  - package_tea requires package_water==2.3.1

to discuss @pradyunsg @ei8fdb

@nlhkabu
Copy link
Member Author

nlhkabu commented Oct 13, 2020

please see #8495 for most up to date error message suggestions.

@nlhkabu
Copy link
Member Author

nlhkabu commented Oct 22, 2020

Closing in favour of #9036

@nlhkabu nlhkabu closed this as completed Oct 22, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
UX User experience related
Projects
None yet
Development

No branches or pull requests

3 participants