Skip to content
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

PEP518: dependency specification mismatch #1644

Open
stanislavlevin opened this issue Nov 8, 2024 · 5 comments
Open

PEP518: dependency specification mismatch #1644

stanislavlevin opened this issue Nov 8, 2024 · 5 comments

Comments

@stanislavlevin
Copy link

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.

@sinoroc
Copy link
Contributor

sinoroc commented Nov 8, 2024

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.

@stanislavlevin
Copy link
Author

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

@sinoroc
Copy link
Contributor

sinoroc commented Nov 9, 2024

(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
Copy link
Contributor

sinoroc commented Nov 9, 2024

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

@sinoroc
Copy link
Contributor

sinoroc commented Nov 9, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants