packaging.python.org
packaging.python.org copied to clipboard
PEP518: dependency specification mismatch
Original PEP518 spec (https://peps.python.org/pep-0518/#build-system-table) says:
The [build-system] table is used to store build-related data. Initially only one key of the table will be valid and is mandatory for the table: requires. This key must have a value of a list of strings representing PEP 508 dependencies required to execute the build system
while the packaging guide (https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-build-system-dependencies-the-build-system-table)
The [build-system] table is used to store build-related data. Initially, only one key of the table is valid and is mandatory for the table: requires. This key must have a value of a list of strings representing dependencies required to execute the build system. The strings in this list follow the version specifier specification.
What is the issue then?
Be aware that the specifications are not supposed to match the exact prose text of the PEPs (as long as the meaning and intentions are kept). And most importantly, once a PEP is accepted, its content is migrated to a specification document, and thus there is no point in referring to the PEP anymore. Indeed from then on the PEP is nothing more than an historical document and the specification is the only document that matters.
The issue is what must be considered the current standard I must follow to be interoperable with the world. PEP is the document I can refer, rely and trust like an RFC created and accepted by smart heads :) In my opinion this is the very first place people go and check how things should work.
So should https://packaging.python.org/en/latest/specifications be considered more like guide lines and not exact specifications that superseded original PEPs? or what? Sorry I don't understand then.
In my opinioin - if a specification was changed it should be put on the history. Imagine one implemented some tool that followed an original /past revision of a standard and the latter was changed over time for any reason and there is no history of changes :)
So, the question was about mismatching:
PEP508 depedencies format vs The strings in this list follow the version specifier specification. (not sure what it means exactly tbh).
(For packaging) don't use the PEPs, use the specifications at https://packaging.python.org/en/latest/specifications.
For packaging PEPs the process is as follows: once a PEP is accepted, the content of the PEP is migrated to a standard specification document, and from that point on the PEP is considered as just an historical document. The reference is the standard specification document at https://packaging.python.org/en/latest/specifications.
If you want more details: https://www.pypa.io/en/latest/specifications/.
If you want to hear it from someone else (PyPA members, which I am not), feel free to ask there as well: https://discuss.python.org/c/packaging/14.