-
Notifications
You must be signed in to change notification settings - Fork 963
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, Metadata 2.4 #16949
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking cool, and coming along nicely! I commented a bit inside.
One thing I'm curious about - at what point should we be looking to consolidate any file operations where we pop open the file and read stuff from it, so we only have to open/iterate once?
…rectory" from PEP 639 > The directory under which license files are stored in a project source tree, distribution archive or installed project. Also, the root directory that their paths recorded in the License-File Core Metadata field are relative to. Defined to be the project root directory for a project source tree or source distribution; and a subdirectory named licenses of the directory containing the built metadata— i.e., the .dist-info/licenses directory— for a Built Distribution or installed project.
Edit: On second consideration... nearly all file uploads are dominated by either the advisory lock on journals or s3.putobject. Not sure this optimization is worth the effort at this point. |
@befeleme would you be able to take a look at this to review the implementation details? |
Yes, hopefully tomorrow. |
After reading the code I've got just one question: I can't locate the validation of the |
That's implemented upstream in pypa/packaging, see pypa/packaging#828 |
Ah, looking at the whole |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yay, we're almost there! I didn't re-review a lot of what I'd already covered, so I focused on the migration and testing, and looks like everything generally conforms to the PEP.
I'm thinking that tracking usage/progress of this can be deferred, but that might be a nice metric to emit via DB query later - I can imagine wanting to see new projects using the syntax, older projects converting to the new syntax, etc - but definitely beyond scope of this changeset.
Approving to you can decide when you want to run the migration, but please include some timeouts based on some guesswork from TestPyPI
Re @miketheman:
That is all technically captured in the immutable release metadata, so aside from watching a pot boil in real-time in datadog I agree adoption metrics are well beyond scope. |
Migrations are going out for this ahead of merge during this window to avoid unnecessary disruption: http://status.python.org/incidents/q5q5347n3s2b |
Thanks everyone! |
Closes #16620
Depends on merge/release of pypa/packaging#828TODO: Move to release of packaging with license-expression parser