Thanks to visit codestin.com
Credit goes to github.com

Skip to content

DOC: improve docs for limited api builds - #885

Open
ngoldbaum wants to merge 1 commit into
mesonbuild:mainfrom
ngoldbaum:abi3t-docs
Open

DOC: improve docs for limited api builds#885
ngoldbaum wants to merge 1 commit into
mesonbuild:mainfrom
ngoldbaum:abi3t-docs

Conversation

@ngoldbaum

@ngoldbaum ngoldbaum commented Aug 26, 2026

Copy link
Copy Markdown

Adds a new howto guide on targeting the CPython limited API and producing stable ABI wheels.

Fixes #624

@rgommers rgommers added the documentation Improvements or additions to documentation label Aug 27, 2026

@rgommers rgommers 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.

Thanks @ngoldbaum for writing docs for the Limited API! Overall this content looks like a great start. My main comment right now is that it's not in the right places: it can't be in the reference guide, and the examples section of the "Passing arguments to Meson" page also feels wrong. I think we need a new page, as a how-to under "Using shared libraries" called something like "Using the Limited C API" or some such title.

This content, put together in a single page, will be a great start. I have a few things I'd like to add, like how to set it up as opt-in (e.g., as in PyWavelets/pywt#828).

We can then also address a couple of open issues: gh-624, some parts of gh-787.

Comment thread docs/reference/pyproject-settings.rst Outdated
Comment thread docs/reference/pyproject-settings.rst Outdated
@ngoldbaum

Copy link
Copy Markdown
Author

I rearranged with a new howto guide page. Let me know what you think.

@dnicolodi dnicolodi 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.

Just a few quick remarks. I find the content in the new howto page hard to read, mostly because there are things repeated several times with different language and because the content is not presented at increasing level of detail but zooming in and out constantly. The other are minor comments. Please squash the commits into just one commit.

Comment thread docs/reference/pyproject-settings.rst
Comment thread docs/reference/pyproject-settings.rst Outdated
Comment thread docs/reference/pyproject-settings.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
@ngoldbaum
ngoldbaum force-pushed the abi3t-docs branch 2 times, most recently from 2c82e7b to af30732 Compare August 31, 2026 20:20
@ngoldbaum

Copy link
Copy Markdown
Author

@dnicolodi thanks! I've applied your suggestions. I also rearranged the howto page and I think it's clearer now.

Comment thread docs/reference/pyproject-settings.rst

@rgommers rgommers 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.

This is looking pretty good. A couple more suggestions to give the desired recommendations to users.

Comment thread docs/how-to-guides/limited-api.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
@ngoldbaum

Copy link
Copy Markdown
Author

Thanks for the comments Ralf! I think I addressed them.

@dnicolodi dnicolodi 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.

Thanks. This looks very nice. A few more comments.

Comment thread docs/how-to-guides/limited-api.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
@ngoldbaum

Copy link
Copy Markdown
Author

Thanks for all of the detailed suggestions! I think I've applied them.

I also had a private chat with Ralf where he explained to me that the wheel interpreter compatibility tag being different from the target API is an intentional design choice in meson-python and not just an accident of how support for limited API builds is implemented. I now phrase that as meson-python "conservatively chooses" this to make that clear. I also split out all the compatibility details into their own subsection after the main build configuration discussion.

Now whenever people have questions about that point in the future, you can point to a specific docs page about it!

I also marked the issue as explicitly fixing #624 and updated the PR description to reflect the final state.

@rgommers rgommers 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.

Thanks Nathan. Very close, two more comments from me.

Comment thread docs/how-to-guides/limited-api.rst Outdated
Comment thread docs/how-to-guides/limited-api.rst Outdated
@rgommers rgommers added this to the v0.22.0 milestone Sep 12, 2026

@rgommers rgommers 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.

This looks great to me now. I checked and resolved all open comments. I've already been pointing people at these docs, so I'll merge this in a few days unless there are more comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document setting limited-api via build option better

3 participants