Skip to content

PEP 817: Final set of pre-split updates#4867

Open
mgorny wants to merge 6 commits into
python:mainfrom
wheelnext:pep-817-update
Open

PEP 817: Final set of pre-split updates#4867
mgorny wants to merge 6 commits into
python:mainfrom
wheelnext:pep-817-update

Conversation

@mgorny
Copy link
Copy Markdown
Contributor

@mgorny mgorny commented Mar 19, 2026

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

This is a set of updates to PEP 817 that were prepared prior to the decision to split it into smaller PEPs. We do not intend to pursue PEP 817 in this updated form. However, we would like to get the changes committed to the repository so that the history of changes is not lost.

The changes include refocusing of the security details, some clarifications, tool behavior outlines and update for the images to respect dark theme.

We are not marking the PEP as withdrawn, as our current plan is to eventually replace the specification part with an index listing the split PEPs.


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

This is a set of updates to PEP 817 that were prepared prior to the
decision to split it into smaller PEPs.  We do not intend to pursue
PEP 817 in this updated form.  However, we would like to get the changes
committed to the repository so that the history of changes is not lost.

The changes include refocusing of the security details, some
clarifications, tool behavior outlines and update for the images to
respect dark theme.

We are not marking the PEP as withdrawn, as our current plan is to
eventually replace the specification part with an index listing the
split PEPs.

Signed-off-by: Michał Górny <mgorny@quansight.com>
@mgorny mgorny requested review from dstufft and warsaw as code owners March 19, 2026 16:58
Copy link
Copy Markdown
Contributor

@rgommers rgommers left a comment

Choose a reason for hiding this comment

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

This was reviewed in detail by multiple co-authors before opening this PR. It contains important clarifications, as well as the diagram that multiple reviewers found really helpful.

PEP editors, can this please be merged?

Comment thread peps/pep-0817/avx512_gromacs_benchmark.svg
Comment thread peps/pep-0817.rst Outdated
Comment thread peps/pep-0817.rst Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks okay in dark mode:

Image

But the lines and a lot of text are invisible or hard to read in light:

Image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@mgorny I thought we fixed the light/dark mode behavior?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Weird. It renders fine for me:

obraz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

SVG portability ... sigh. On macOS, it renders fine on Safari, and badly on Firefox and Chrome.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For https://pypackaging-native.github.io/ I took the easy way out and just committed two .svg files, with the selected one depending on dark mode yes/no. Not sure if that's acceptable here. Can also just accept that it's imperfect in one of the modes and commit the white-background one, if that would be okay (there's already another image that's white-only because screenshot).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

That's Firefox on Linux? It doesn't show for me on Chrome/Safari/Firefox/Opera on macOS, or Chrome on Android.

https://pep-previews--4867.org.readthedocs.build/pep-0817/#installing-a-package-from-an-index

If you want to use PNG, you can put :class: invert-in-dark-mode on it to invert via CSS (see other PEPs).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Two SVG files sound like a good workaround, but I don't know if we can implement switching between them via Sphinx.

Either way, I'm fine with any of the solutions, please decide for me :-).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If you want to use PNG, you can put :class: invert-in-dark-mode on it to invert via CSS (see other PEPs).

This sounds nice. PNG is much easier to work with, so if it's that easy, I'd prefer that - will not be the last time we'll need this.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done. I've also added the class to PyTorch selector screenshot.

@hugovk, could you check if the same problem applies to the GROMACS bar graph? If yes, I can also replace it with a PNG.

mgorny added 5 commits May 22, 2026 15:30
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
@read-the-docs-community
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@willingc willingc left a comment

Choose a reason for hiding this comment

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

Thanks. Let's try to land this since it adds useful diagrams which readers will benefit from viewing

Comment thread peps/pep-0817.rst
When asked to install a version of a package from an index, the proposed
behavior would be to:

1. Query the remote index for the package in question.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
1. Query the remote index for the package in question.
1. Query the remote index for the desired package.

Comment thread peps/pep-0817.rst
Comment on lines +1078 to +1079
2. Initially select a package version meeting the version constraints,
as usual (this does not need to take variant metadata into account).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
2. Initially select a package version meeting the version constraints,
as usual (this does not need to take variant metadata into account).
2. Select an initial match for a package version meeting the version constraints,
as usual (this does not need to take variant metadata into account).

Comment thread peps/pep-0817.rst
as usual (this does not need to take variant metadata into account).
3. Filter available wheels based on Platform Compatibility Tags.
4. Determine if any of the remaining wheels are variant wheels.
If not, proceed as with non-variant wheels.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

proceed as with non-variant wheels

This would use the initial match. Correct?

Comment thread peps/pep-0817.rst
non-variant wheels as well.


Suggested implementation logic per type of packaging tool
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can we simplify this language?

Suggested change
Suggested implementation logic per type of packaging tool
Suggested implementation logic for a packaging tool

Comment thread peps/pep-0817.rst
Comment on lines +1074 to +1075
When asked to install a version of a package from an index, the proposed
behavior would be to:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
When asked to install a version of a package from an index, the proposed
behavior would be to:
When asked to install a version of a package from an index, the proposed
tool behavior would be to:

Comment thread peps/pep-0817.rst
2. Initially select a package version meeting the version constraints,
as usual (this does not need to take variant metadata into account).
3. Filter available wheels based on Platform Compatibility Tags.
4. Determine if any of the remaining wheels are variant wheels.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
4. Determine if any of the remaining wheels are variant wheels.
4. Determine if any of the filtered wheels are variant wheels.

Comment thread peps/pep-0817.rst
Comment on lines +1124 to +1125
When asked to install a local wheel file, the proposed behavior would be
to:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
When asked to install a local wheel file, the proposed behavior would be
to:
When asked to install a local wheel file, the tool's proposed behavior would be
to:

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.

4 participants