Skip to content

[Provider PEP] authors & acknoledgements updated - #5139

Closed
DEKHTIARJonathan wants to merge 15 commits into
python:mainfrom
wheelnext:pep-providers-authors
Closed

DEKHTIARJonathan wants to merge 15 commits into
python:mainfrom
wheelnext:pep-providers-authors

Conversation

@DEKHTIARJonathan

Copy link
Copy Markdown
Contributor

No description provided.

mgorny and others added 15 commits September 21, 2026 19:00
This is the second PEP split off PEP 817. Its focus is on how variant
properties are governed and how their compatibility is determined. This
is done either via static feature and feature value compatibility lists
specified in the variant metadata, or by querying opt-in plugins that
are Python packages, but can also be vendored or reimplemented by the
tools. A static list can also be provided in place of querying the
plugins.  Additionally, an ABI Dependency Variant Provider is defined to
facilitate builds of the same package against different dependency
versions.

Compared to PEP 817, the provider metadata has been largely simplified
by removing all the bits deemed not strictly necessary, and adjusted for
the changes in PEP 825. The provider plugins have been made opt-in (with
provisions for tools to make some of them opt-out). The recommendations
for governance of opt-out providers and building variant wheels will
follow in subsequent PEPs.

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>
As pointed out by @konstin, regular normalization produces hyphens which
we don't support.  Instead use wheel normalization, the same way we do
in PEP 825.

Signed-off-by: Michał Górny <mgorny@quansight.com>
As pointed out by @konstin, `requires`, `static-properties`
and `plugin-api` would be accepted by the previous variant.

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>
It was present in PEP 817, but got lost while moving things around.

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>
Copilot AI lite review requested due to automatic review settings September 23, 2026 17:20
@DEKHTIARJonathan
DEKHTIARJonathan requested a review from a team as a code owner September 23, 2026 17:20

Copilot AI left a comment

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.

Copilot review overview

🟡 Changes recommended

Unresolved moderate schema validation inconsistencies must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 4 Medium severity

Open (4)
What changed in this PR

Adds PEP 9999, defining provider-based variant metadata, plugin APIs, ABI dependency variants, and its v0.2.0 JSON Schema.

Changes:

  • Adds the provider specification and acknowledgements.
  • Adds the v0.2.0 JSON Schema.
  • Documents the schema in an appendix.
File Description
peps/​pep-9999/​variant-schema-0.2.0.json Defines metadata validation rules.
peps/​pep-9999/​appendix-variant-json-schema.rst Includes the schema in the PEP documentation.
peps/​pep-9999.rst Defines provider behavior and variant compatibility.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9_]+$"
"description": "Mapping of namespaces to provider information",
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_]+$": {
"pattern": "^[a-z0-9_]+$"
},
"minItems": 1,
"uniqueItems": true
"plugin-api": {
"description": "Object reference to plugin class",
"type": "string",
"pattern": "^([a-zA-Z0-9._]+ *: *[a-zA-Z0-9._]+)|([a-zA-Z0-9._]+)$"
@read-the-docs-community

Copy link
Copy Markdown

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