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

PEP 735: allow core metadata to include groups #3943

Merged
merged 2 commits into from
Sep 4, 2024

Conversation

sirosen
Copy link
Contributor

@sirosen sirosen commented Sep 4, 2024

PEP 735 is expanded here to allow project.dependencies and
project.optional-dependencies to use Dependency Group Includes. This
allows for includes which help satisfy the use-cases described by the
--only-deps pip use-cases.

The changes are various:

  • support for these includes is added to the rationale section
  • a new use case is added, aligned with the --only-deps use case
  • the spec section is updated to list changes to the project table
  • backwards compatibility is extended significantly to address
    repackaging concerns as well as dependency analyzers1
  • "how to teach this" is also extended to note compatibility and
    repackaging issues
  • rejected ideas has added an item on [build-system.requires]
  • Change is either:
    • To a Draft PEP
    • To an Accepted or Final PEP, with Steering Council approval
    • To fix an editorial issue (markup, typo, link, header, etc)
  • PR title prefixed with PEP number (e.g. PEP 123: Summary of changes)

📚 Documentation preview 📚: https://pep-previews--3943.org.readthedocs.build/

Footnotes

  1. It may be overstatement to say these concerns are addressed.
    They are considered and not dismissed, but it is not clear that any
    choices can be made in the spec to address these issues other than to
    inform users.

PEP 735 is expanded here to allow `project.dependencies` and
`project.optional-dependencies` to use Dependency Group Includes. This
allows for includes which help satisfy the use-cases described by the
`--only-deps` pip use-cases.

The changes for this are various:
- support for these includes is added to the rationale section
- a new use case is added, aligned with the `--only-deps` use case
- the spec section is updated to list changes to the `project` table
- backwards compatibility is extended significantly to address
  repackaging concerns as well as dependency analyzers[^1]
- "how to teach this" is also extended to note compatibility and
  repackaging issues
- rejected ideas has added an item on `[build-system.requires]`

[^1]: It may be overstatement to say these concerns are addressed.
They are considered and not dismissed, but it is not clear that any
choices can be made in the spec to address these issues other than to
inform users.

Additionally, one unrelated change is included: the spec now notes
explicitly that extra names and dependency group names can overlap
(this was already possible, implicitly) and instructs tools to decide
on their own how to handle that if they present dependency groups and
extras via a uniform interface.
peps/pep-0735.rst Outdated Show resolved Hide resolved
Co-authored-by: Brett Cannon <[email protected]>
@brettcannon brettcannon merged commit 4660531 into python:main Sep 4, 2024
6 checks passed
@sirosen sirosen deleted the pep735-allow-cross-usage branch September 4, 2024 22:04
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

Successfully merging this pull request may close these issues.

2 participants