Skip to content

Update PyPI platform tag validation#3187

Merged
messense merged 1 commit into
PyO3:mainfrom
messense:update-pypi-tags-upstream
May 14, 2026
Merged

Update PyPI platform tag validation#3187
messense merged 1 commit into
PyO3:mainfrom
messense:update-pypi-tags-upstream

Conversation

@messense

Copy link
Copy Markdown
Member

Sync validation with current Warehouse behavior for macOS platform tags and PEP 783 pyemscripten tags.

Accept wasm32 Emscripten targets for PyPI when using pyemscripten_*_wasm32, and add focused tests for the updated rules.

Sync validation with current Warehouse behavior for macOS platform tags and PEP 783 pyemscripten tags.

Accept wasm32 Emscripten targets for PyPI when using `pyemscripten_*_wasm32`, and add focused tests for the updated rules.

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.

Pull request overview

Updates maturin’s internal PyPI platform tag validation to better match current PyPI/Warehouse rules, notably tightening macOS tag validation and allowing PEP 783 pyemscripten_*_wasm32 platform tags for Emscripten builds.

Changes:

  • Adjust macOS validation to allow arbitrary minor versions only for macOS 10, and require minor 0 for macOS 11+.
  • Accept pyemscripten_{YEAR}_{PATCH}_wasm32 platform tags (PEP 783) and treat wasm32-unknown-emscripten as PyPI-supported at the target-arch level.
  • Add/extend unit tests to cover the new macOS and pyemscripten validation behavior.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/target/pypi_tags.rs Updates platform-tag and target-arch validation logic; adds focused tests for macOS minor rules and pyemscripten tags.
src/target/legacy_py.rs Refines macOS regex to capture minor version; adds pyemscripten platform regex and adjusts macOS major-version allowlist.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/target/pypi_tags.rs
@messense messense merged commit 7543032 into PyO3:main May 14, 2026
47 of 49 checks passed
@messense messense deleted the update-pypi-tags-upstream branch May 14, 2026 01:39
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jun 23, 2026
## 1.14.1

* Bump uraimo/run-on-arch-action to v3 to fix pytest job ([#3221](PyO3/maturin#3221))
* Fix platform tag logic to generate the same as cpython on AIX ([#3220](PyO3/maturin#3220))
* Bump pyo3-introspection ([#3227](PyO3/maturin#3227))
* Upgrade cargo-zigbuild & cargo-xwin ([#3228](PyO3/maturin#3228))
* Fix issues around crates enabling abi3 and abi3t features ([#3226](PyO3/maturin#3226))
* Add PEP 740 publish attestations to PyPI releases ([#3230](PyO3/maturin#3230))
* Set PYO3_PYTHON to run scripts for stable ABI builds ([#3233](PyO3/maturin#3233))
* Fix shell quoting in CI scripts ([#3231](PyO3/maturin#3231))

## 1.14.0

* Support parent-relative pyproject metadata in sdists ([#3182](PyO3/maturin#3182))
* Update PyPI platform tag validation ([#3187](PyO3/maturin#3187))
* Maint: update setup emsdk action in generate-ci ([#3194](PyO3/maturin#3194))
* Fix: only shim bin wheels during auditwheel repair ([#3197](PyO3/maturin#3197))
* Fix: avoid editable ELF truncation from stale hardlinks ([#3199](PyO3/maturin#3199))
* Fix Pyodide Emscripten platform tags ([#3191](PyO3/maturin#3191))
* Use pax instead of GNU headers for tar ([#3203](PyO3/maturin#3203))
* Feat: add default exclude `__pycache__` and `*.pyc` files ([#3202](PyO3/maturin#3202))
* Add support for finding free-threaded interpreters for `--find-interpreters` ([#3206](PyO3/maturin#3206))
* Stubs: also generate them for mixed PyO3 projects ([#3211](PyO3/maturin#3211))
* Don't depend on CFFI on PyPy ([#3213](PyO3/maturin#3213))
* Support pyo3 abi3t features on Python3.15 and PyO3 0.29 ([#3113](PyO3/maturin#3113))
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.

2 participants