tags spec: clarify "sorted, set" to "sorted, collection" #1869
+1
−1
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.
This will hopefully clarify/eliminate a contradiction in terms in the current specification text: the current text says both "sorted" and "set", where "set" conventionally implies an unordered collection.
In context that appears to have not been the intention, since the context is the wheel filename encoding and not the internal (i.e. parsed) representation
of a wheel filename's tags.
For context: this came up recently due to a set of unexpected tool interactions:
auditwheel
would rewrite that wheel filename's tags, without enforcing a particular orderpypi-attestations
would "ultranormalize" the wheel's tags for signing and verifying purposes, to make string comparisons between wheel filenames work correctly. This was overly aggressive, but undoing it also revealed more tag ordering issues throughout the ecosystempackaging
accepts any tag ordering viaparse_wheel_filename
, masking invalid tag orderings from other toolsxrefs:
parse_wheel_filenames
accepts wheel filenames with unsorted compressed tag sets packaging#909CC @di
📚 Documentation preview 📚: https://python-packaging-user-guide--1869.org.readthedocs.build/en/1869/