Fallback to default vcs ref and determine package name from the pip line where possible #5921
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The issue
There are so many edge cases of trying to get the package name from setup.py and surprisingly many packages still rely on it. A great example is requests: https://github.com/psf/requests/blob/main/setup.py
In the requests setup.py example, the name comes from reading another file on the filesystem, and the ast parser will never be able to accomplish that. Prior to this change, it was not possible to install the requests vcs into the Pipfile without manually creating the Pipfile entry with the correct package name and locking.
Fixes issue #5857
The fix
Allow not supplying a default ref (falls back to repository default thanks to pip internals)
Allows user to specify using the new style pip line
name @
syntax the package name:Compare these two examples:
1.) Not supplying a name in the install (works as before):
2.) Providing the name of the install:
The checklist
news/
directory to describe this fix with the extension.bugfix.rst
,.feature.rst
,.behavior.rst
,.doc.rst
..vendor.rst
. or.trivial.rst
(this will appear in the release changelog). Use semantic line breaks and name the file after the issue number or the PR #.