packaging.python.org icon indicating copy to clipboard operation
packaging.python.org copied to clipboard

PEP518: dependency specification mismatch

Open stanislavlevin opened this issue 1 year ago • 5 comments

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.

stanislavlevin avatar Nov 08 '24 15:11 stanislavlevin

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.

sinoroc avatar Nov 08 '24 17:11 sinoroc

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).

stanislavlevin avatar Nov 09 '24 09:11 stanislavlevin

(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.

sinoroc avatar Nov 09 '24 16:11 sinoroc

If you want more details: https://www.pypa.io/en/latest/specifications/.

sinoroc avatar Nov 09 '24 16:11 sinoroc

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.

sinoroc avatar Nov 09 '24 16:11 sinoroc