Skip to content

Generalize the ABI provider into a generic "reserved provider", v2 - #90

Merged
mgorny merged 8 commits into
pep-providersfrom
pep-providers-builtin-v2
Sep 28, 2026
Merged

mgorny merged 8 commits into
pep-providersfrom
pep-providers-builtin-v2

Conversation

@mgorny

@mgorny mgorny commented Sep 23, 2026

Copy link
Copy Markdown

Same as #89, except that the identifier is explicitly given to builtin key, rather than reusing the namespace. IMO that's even more consistent design, and makes the builtin key meaningful rather than incidental.

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>
@read-the-docs-community

read-the-docs-community Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Comment thread peps/pep-9999/variant-schema-0.2.0.json Outdated
Signed-off-by: Michał Górny <mgorny@quansight.com>
@mgorny
mgorny marked this pull request as ready for review September 23, 2026 10:30
@DEKHTIARJonathan

DEKHTIARJonathan commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Question/Feedback

can you explain why doing this

"abi": {
   "builtin": "abi_dependency"
}

instead of this:

"abi_dependency": {
   "builtin": true
}

I get that it allows to name abi_dependency to be "whatever you want" - but I really don't see why doing that ... It's just feels unnecessarily "heavy".

Or that conceptually the namespace and name of the package are not necessarily 1:1 - but I also remember Ralf saying some time ago that we should try to force ecosystem consistency when possible. This seems one of these cases where we should enforce abi_dependency namespace for everybody.

@mgorny

mgorny commented Sep 25, 2026

Copy link
Copy Markdown
Author
  1. It's more consistent with how namespaces aren't hardcoded or significant for other kinds of providers.
  2. It lets people create new builtin providers without risking namespace collisions with other providers.
  3. It avoids adding a field whose only valid value is true. (Given that we say only one of the three keys can be specified.)

It's not a big deal, it just felt more solid as a proposal. Makes this look less like an afterthought.

@DEKHTIARJonathan

Copy link
Copy Markdown
Member

OK ... Feels a little more difficult to read but fair enough ...

Comment thread peps/pep-9999.rst
3. The tool MUST read the ``static-properties`` key from the `provider
3. The tool MUST read the ``builtin`` key from the `provider
information`_ dictionary. If it is present, the tool MUST use the
internal provider implementation if supported, or assume that no

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.

Suggested change
internal provider implementation if supported, or assume that no
internal provider implementation if supported, otherwise assume that no

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

There's already a "otherwise" below.

Comment thread peps/pep-9999.rst
3. The tool MUST read the ``builtin`` key from the `provider
information`_ dictionary. If it is present, the tool MUST use the
internal provider implementation if supported, or assume that no
features are compatible if not. Otherwise, proceed to step 4.

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.

Suggested change
features are compatible if not. Otherwise, proceed to step 4.
features are compatible. Otherwise, proceed to step 4.

Comment thread peps/pep-9999.rst
key in the `provider information`_ dictionary.

All builtin providers are OPTIONAL. Tools that choose to implement them
MUST follow the PEP implementing them. Tools that do not recognize a

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.

Specifically because we say that "Tools that choose to implement them
MUST follow the PEP implementing them." I would recommend kicking everything after this paragraph out the PEP.

Especially that now we don't need to reserve a name like we used to have before your builtin idea.

Signed-off-by: Michał Górny <mgorny@quansight.com>
@mgorny
mgorny merged commit 3e216bc into pep-providers Sep 28, 2026
7 checks passed
@mgorny
mgorny deleted the pep-providers-builtin-v2 branch September 28, 2026 13:28
@rgommers

Copy link
Copy Markdown

I caught up with these builtin changes only now - for the record, I like the generalization, 👍🏼 from me.

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