-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Implement PEP 639 #4829
base: main
Are you sure you want to change the base?
Implement PEP 639 #4829
Conversation
Update validate-pyproject to 0.23.0
Thank you very much @cdce8p! It seems that a new error with installing tox on |
One area in which the implementation could still be improved is probably the
There is also the matter of Side note: Adding support for license expressions to -- |
Thank you for the review @cdce8p. Let's make a checkbox:
I would like to tackle at least the last of this points before releasing because we can introduce all the related deprecation warnings/breaking errors at once.
I agree that there is not much point on updating |
@cdce8p we are probably in a good state after:
I am considering if we should ask for volunteers to test in their projects before the release. Possibly I am not intending to implement for now:
But that can be a follow-up PR (not sure where is the best place to implement, maybe https://github.com/pypa/setuptools/blob/v75.8.0/setuptools/command/egg_info.py#L598-L602? maybe in the |
…ect.toml`) with `license`/`license_expression`/`license_files` (#4842)
Co-authored-by: Marc Mueller <[email protected]>
This week we had some friction with a different feature that was "queued for release", and next week I will not be around to help with the release/fixing reports from users. So the earliest we could do is in the week after the next one. |
I could help out if I see something. Tbh I think the risk here is fairly well contained. As long as we don't break existing configs which this branch shouldn't do, we're likely safe. Anything else which doesn't work 100% could be fixed afterwards as well, once there is more time. |
Summary of changes
This PR is a "mega PR" that simply make sure all the steps to implement PEP 639 are added at the same time to the
main
branch.This is done to avoid problems with incomplete changes:
setuptools
All the PR are previous reviewed individually.
_apply_pyproject
sets field ondist.metadata
object not ondist
#4834Good to have according to #4829 (comment):
license-files
glob patterns. #4838license-files
glob patterns. #4838Compatibility with other peps:
Dynamic
(METADATA
) anddynamic
(pyproject.toml
) withlicense
/license_expression
/license_files
#4842NOTE: I believe that we can simply fast forward the Core Metadata to 2.4 considering that:
extra
names for Core Metadata:https://github.com/pypa/setuptools/blob/v75.8.0/setuptools/_core_metadata.py#L231-L237
https://github.com/pypa/setuptools/blob/v75.8.0/setuptools/_normalization.py#L100-L107
packaging.requirements.Requirement.__str__
the requirement normalisation, which should also normalise theextra
marker1https://github.com/pypa/setuptools/blob/v75.8.0/setuptools/_core_metadata.py#L236-L250
Closes
Pull Request Checklist
newsfragments/
.(See documentation for details)
Footnotes
Currently there is a problem with
packaging
implementation https://github.com/pypa/packaging/issues/845, but for the sake of advancing thesetuptools
implementation to catch up with the standards we can consider this a "well known bug" that would be solved in the context ofpypa/packaging
. ↩