Skip to content

PEP 817: Wheel Variants: Beyond Platform Tags - #4740

Merged
warsaw merged 64 commits into
python:mainfrom
wheelnext:pep-817-wheel-variants
Jan 23, 2026
Merged

warsaw merged 64 commits into
python:mainfrom
wheelnext:pep-817-wheel-variants

Conversation

@DEKHTIARJonathan

@DEKHTIARJonathan DEKHTIARJonathan commented Dec 10, 2025 •

Copy link
Copy Markdown
Contributor

Basic requirements (all PEP Types)

  • Read and followed PEP 1 & PEP 12
  • File created from the latest PEP template
  • PEP has next available number, & set in filename (pep-NNNN.rst), PR title (PEP 123: <Title of PEP>) and PEP header
  • Title clearly, accurately and concisely describes the content in 79 characters or less
  • Core dev/PEP editor listed as Author or Sponsor, and formally confirmed their approval
  • Author, Status (Draft), Type and Created headers filled out correctly
  • PEP-Delegate, Topic, Requires and Replaces headers completed if appropriate
  • Required sections included
    • Abstract (first section)
    • Copyright (last section; exact wording from template required)
  • Code is well-formatted (PEP 7/PEP 8) and is in code blocks, with the right lexer names if non-Python
  • PEP builds with no warnings, pre-commit checks pass and content displays as intended in the rendered HTML
  • Authors/sponsor added to .github/CODEOWNERS for the PEP

Standards Track requirements

  • PEP topic discussed in a suitable venue with general agreement that a PEP is appropriate
  • Suggested sections included (unless not applicable)
    • Motivation
    • Rationale
    • Specification
    • Backwards Compatibility
    • Security Implications
    • How to Teach This
    • Reference Implementation
    • Rejected Ideas
    • Open Issues
  • Python-Version set to valid (pre-beta) future Python version, if relevant
  • Any project stated in the PEP as supporting/endorsing/benefiting from the PEP formally confirmed such
  • Right before or after initial merging, PEP discussion thread created and linked to in Discussions-To and Post-History

CC: @mgorny @konstin @rgommers @atalman @charliermarsh @msarahan @seemethere @warsaw @dstufft @aterrel


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

@DEKHTIARJonathan
DEKHTIARJonathan requested a review from a team as a code owner December 10, 2025 21:54
@python-cla-bot

python-cla-bot Bot commented Dec 10, 2025 •

Copy link
Copy Markdown

All commit authors signed the Contributor License Agreement.

CLA signed

@hugovk

hugovk commented Dec 10, 2025 •

Copy link
Copy Markdown
Member

Let's renumber this to 9999 for now, we also have #4739 clashing.

@warsaw or @dstufft Please can you confirm co-authorship?

@hugovk hugovk changed the title PEP 817: Wheel Variants: Beyond Platform Tags PEP 9999: Wheel Variants: Beyond Platform Tags Dec 10, 2025
@DEKHTIARJonathan

Copy link
Copy Markdown
Contributor Author

Oh thanks @hugovk I totally didn't see that one being published within 20min :D

Let me know which number you want me to pick and I'll do the update ;)

@warsaw

warsaw commented Dec 10, 2025

Copy link
Copy Markdown
Member

@warsaw or @dstufft Please can you confirm co-authorship?

Confirmed.

@hugovk hugovk changed the title PEP 9999: Wheel Variants: Beyond Platform Tags PEP 817: Wheel Variants: Beyond Platform Tags Dec 10, 2025
@hugovk

hugovk commented Dec 10, 2025

Copy link
Copy Markdown
Member

Thanks!

@DEKHTIARJonathan You may continue with 817.

Comment thread .github/CODEOWNERS Outdated
@AA-Turner AA-Turner added the new-pep A new draft PEP submitted for initial review label Dec 11, 2025

@AA-Turner AA-Turner left a comment

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.

very brief review, I haven't yet read beyond the end of Motivation.

A

Comment thread peps/pep-0817/avx512_gromacs_benchmark.png Outdated
Comment thread peps/pep-0817/pytorch_variant_selector.png
Comment thread peps/pep-0817/appendix-variant-metadata-json-schema.rst Outdated
Comment thread peps/pep-0817/variant_schema.json
Comment thread peps/pep-0817.rst Outdated
Comment thread peps/pep-0817.rst Outdated
Comment thread peps/pep-0817.rst Outdated
Comment thread peps/pep-0817.rst Outdated
Comment thread peps/pep-0817.rst Outdated
Comment thread peps/pep-0817.rst Outdated
@jezdez

jezdez commented Dec 11, 2025

Copy link
Copy Markdown

Just a brief bystander comment: I'm so stoked to see this PEP draft published!

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
@DEKHTIARJonathan

Copy link
Copy Markdown
Contributor Author

Just a brief bystander comment: I'm so stoked to see this PEP draft published!

Thanks Jannis! Took some significant amount of work but we eventually got there

mgorny and others added 5 commits December 11, 2025 17:26
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>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Reflow the text to restore correct text width after all the inline
changes and applied suggestions.

Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Remove accidental double spaces that vim's `gq` introduced while I was
reflowing the text.  Thanks to @konstin for noticing.

Signed-off-by: Michał Górny <mgorny@quansight.com>
Comment thread peps/pep-0817.rst
mgorny and others added 17 commits January 2, 2026 14:07
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>
Co-authored-by: Ralf Gommers <ralf.gommers@gmail.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>
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>
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>
Environment marker usage and optionality is described in "Providers"
section. Let's limit "Provider information" only to technical field
details themselves.

Signed-off-by: Michał Górny <mgorny@quansight.com>
@AA-Turner

Copy link
Copy Markdown
Member

I took a brief break over Christmas, aiming to look over the updates tomorrow (Saturday 3rd).

A

@mgorny

mgorny commented Jan 6, 2026

Copy link
Copy Markdown
Contributor

Thanks. At this point, it might be easier to look through the whole thing. I'm really looking forward to feedback whether the new version, when read top-to-bottom, makes concepts clearer without having to go back and forth, as it was necessary with the previous version.

@konstin

konstin commented Jan 13, 2026

Copy link
Copy Markdown
Contributor

I wanted to check in with the PR, is there anything we can do for the editorial process?

@DEKHTIARJonathan

Copy link
Copy Markdown
Contributor Author

It seems that the copy-editing process is in pass to converge.

If no blocking comment remains open by end-of-next-week (Friday 23rd January 2026), I'll ask the PEP to be merge AS-IS.

I hope this gives everybody involved ample time to get in their final copy-editing reviews, before we open the DPO thread.

Thanks everybody for your reviews & time !

@warsaw
warsaw enabled auto-merge (squash) January 23, 2026 16:26
@warsaw
warsaw merged commit 62515a3 into python:main Jan 23, 2026
5 checks passed
@warsaw
warsaw deleted the pep-817-wheel-variants branch January 23, 2026 17:29
@hugovk

hugovk commented Jan 24, 2026

Copy link
Copy Markdown
Member

Now the DPO thread is posted, please update the Discussions-To and Post-History headers in the PEP.

@mgorny

mgorny commented Jan 24, 2026

Copy link
Copy Markdown
Contributor

Now the DPO thread is posted, please update the Discussions-To and Post-History headers in the PEP.

I'll file a PR in a minute.

ethanfurman pushed a commit to ethanfurman/peps that referenced this pull request Oct 8, 2026
* PEP 817: Wheel Variants: Beyond Platform Tags

* Code-Owners editing

* Apply suggestions from code review

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>

* Switch to plain quotation marks

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Move "definitions" to "specification" section

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Reflow the cupy package list

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Update peps/pep-0817/appendix-variant-metadata-json-schema.rst

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>

* [PEP Review] JSON Schema Indent switched to 2

* Replace the benchmark chart with SVG

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Compact the SVG

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Reflow text

Reflow the text to restore correct text width after all the inline
changes and applied suggestions.

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Replace typographic apostrophes

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove double spaces introduced while reflowing

Remove accidental double spaces that vim's `gq` introduced while I was
reflowing the text.  Thanks to @konstin for noticing.

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Apply suggestions from code review

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>

* Remove one more "induced"

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Apply suggestions from code review

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Carol Willing <carolcode@willingconsulting.com>

* Fix list indent

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Uppercase RFC 2119 terms

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Replace disjunction/conjunction with OR/AND

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Add "untrusted" to "security considerations"

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Move "summary of changes" to the rationale

Pending further rewrite.

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Shorten "Motivation" intro, move GROMACS example to "workarounds"

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Move reused links to "references" section

To make it easier to edit sections without having to move initial
definitions around.

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove unnecessary project list from "limitations of ..."

These additional projects are listed without any explanation, so let's
just defer to specific examples in the "current workarounds ..."
section.

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Shorten limitations of platform tags

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Change "... limitations" to "... drawbacks" in section title

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove solution bits from "motivation"

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Simplify update problem explanation

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Clarify CuPy

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Combine paragraphs on extras

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove "motivation summary"

This roughly repeats the introduction to motivation, and focuses on
solution rather than the problem.

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Add SLEAP quote

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Move "out-of-scope features" to "rejected ideas"

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Update cupy package list, and clarify

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Revert "Move "out-of-scope features" to "rejected ideas""

This reverts commit 261704f.

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Move glossary and overview into Rationale

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove speccy parts from "Overview" rationale

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove "summary of changes" for now

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Highlight the added filename part

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Avoid forward-linking from rationale to spec

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Expand variant properties in rationale

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Better explain providers in "Rationale" section

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Readd info on using providers to the spec

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Explain metadata a bit in rationale

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Clarify provider part of spec

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Explain ABI variant provider in the rationale

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Rewording of confusing bits

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove duplicate "publishes builds" verb

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Apply suggestions from code review

Co-authored-by: Ralf Gommers <ralf.gommers@gmail.com>

* project tree → source tree

Signed-off-by: Michał Górny <mgorny@quansight.com>

* regular wheel → non-variant wheel

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Loosen and clarify verification at install time

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Make respecting enable-if mandatory

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Limit recommendations to install-time providers

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove "after verifying their trustworthiness"

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Try to clarify build-time validation

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Update links to where security is covered now

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove duplicate/non-spec content in Providers spec

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Move environment and pinning bits to rationale

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Mention metadata bits in overview

Signed-off-by: Michał Górny <mgorny@quansight.com>

* Remove some duplication in "Provider information"

Environment marker usage and optionality is described in "Providers"
section. Let's limit "Provider information" only to technical field
details themselves.

Signed-off-by: Michał Górny <mgorny@quansight.com>

---------

Signed-off-by: Michał Górny <mgorny@quansight.com>
Co-authored-by: Michał Górny <mgorny@quansight.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
Co-authored-by: Ralf Gommers <ralf.gommers@gmail.com>
Co-authored-by: Barry Warsaw <barry@python.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-pep A new draft PEP submitted for initial review

Projects

None yet

Development

Successfully merging this pull request may close these issues.