Avoid modification of install_requires and extra_requires that deviates from core metadata
#3903
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.
Summary of changes
requires.txtfrom theegg_infomodule into_requirestxt.py.egg_info-specific processing of requirements fromdist.pyto_requitestxt.py.install_requiresandextra_requires.Instead only process them on demand, when the
requires.txtfile is needed for creating.egg-infodirectories.This ensures
dist.install_requiresanddist.extra_requiresremains compatible with core metadata and allow future changes to generateRequires-Distin METADATA files (which are not compatible withrequires.txt).This is part of a series of PRs:
install_requiresandextra_requiresthat deviates from core metadata #3903PKG-INFO#3904pypa/wheelAPI indist_info#3905pypa/wheelAPI ineditable_wheel#3907bdist_wheelfrompypa/wheel#3908The motivation for this series of PRs is the following:
.egg-infoand.dist-infodirectories is intertwined and implicit(See Adopt bdist_wheel from wheel project #1386).
pypa/wheelAPI which is not stable yet and is very likely to change in the future.pypa/wheelmaintainers previously described that the long term vision is to transferbdist_wheeldirectly to
setuptools(See pypa/wheel#262, pypa/wheel#472, pypa/wheel#472).Pull Request Checklist
changelog.d/.(See documentation for details)