Skip to content

PEP 804: version 2, address all feedback received so far#4749

Open
jaimergp wants to merge 22 commits intopython:mainfrom
jaimergp:pep-804-nov-update
Open

PEP 804: version 2, address all feedback received so far#4749
jaimergp wants to merge 22 commits intopython:mainfrom
jaimergp:pep-804-nov-update

Conversation

@jaimergp
Copy link
Contributor

@jaimergp jaimergp commented Dec 18, 2025

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

cc'ing co-authors: @rgommers @pradyunsg @mgorny @msarahan


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

``python3-`` prefix. Additional details are available in `Debian's Python Policy <https://www.debian.org/doc/packaging-manuals/python-policy/#module-package-names>`__.

Gentoo follows a similar approach to naming Python packages, using the ``dev-python/``
category and some `well-specified rules <https://projects.gentoo.org/python/guide/package-maintenance.html>`__.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strictly speaking we also suffer from having some Python packages in other categories, particularly when they are also apps or parts of apps.

@jaimergp
Copy link
Contributor Author

@pradyunsg, can you take a look here whenever you have the time? Thanks! 🙏

Comment on lines 167 to 169
The mapping infrastructure has been designed to present the following components and properties:

- A central registry of PEP 725 identifiers (DepURLs), including at least the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This list is almost identical to another list a few paragraphs below; it seems unnecessary to have both.

Comment on lines 182 to 184
Specification
=============

Copy link
Member

@mhsmith mhsmith Jan 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a large amount of repetition and overlap between the upper "central registry", "mappings", and "known ecosystems" sections, and the corresponding sections within "schema details". However, neither of them is complete in itself, so getting a full understanding requires constant scrolling back and forth.

Suggest unifying these into a single specification by merging the upper sections with the "schema details" sections, so that "Specification" would have only 3 child sections. This should make the PEP both shorter and easier to understand.

The table restructuring suggested in my other comment would help give some space where the extra content can go. Even more space could be made by removing the "required" column in favor of a marker inside the "Field" column, e.g. "name (required)". However some material may still be more appropriate to keep outside of the tables, as paragraphs above or below.

Copy link
Contributor Author

@jaimergp jaimergp Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed part of this with:

  • 53f3548: creates more space for the tables
  • bac1563: merges schemas with specification text

Let me know if that's sufficient 🙏

Comment on lines 621 to 623
Each entry in this list is defined as a dictionary with these fields:

.. list-table::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The package_managers table has very tall narrow columns which are difficult to read. This isn’t so bad in the GitHub rendering, but peps.python.org has much narrower pages. Suggest splitting commands and specifier_syntax out into separate tables.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See 3f24658

- Short identifier for this package manager (usually the command name).
- True
* - ``commands``
- ``dict[Literal['install', 'query'], dict[Literal['command', 'requires_elevation', 'multiple_specifiers'], list[str] | bool | Literal['always', 'name-only', 'never']]]``
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These complex type annotations aren't really readable in this form. Suggest simplifying to dict.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See 460efe3

@jaimergp
Copy link
Contributor Author

jaimergp commented Feb 5, 2026

Thank you @mhsmith, I'll try my best to accommodate your suggestions!

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.

3 participants