Skip to content

fix(ci): honor ~= and ==X.* in requires-python for generate-ci - #3249

Merged
messense merged 1 commit into
PyO3:mainfrom
teddytennant:fix-ci-requires-python
Jul 9, 2026
Merged

fix(ci): honor ~= and ==X.* in requires-python for generate-ci#3249
messense merged 1 commit into
PyO3:mainfrom
teddytennant:fix-ci-requires-python

Conversation

@teddytennant

Copy link
Copy Markdown
Contributor

min_python3_minor (used by maturin generate-ci) only accepted the >=, >, and == operators when deriving the minimum Python version from requires-python. A requires-python = "~=3.13" (Operator::TildeEqual) or "==3.11.*" (Operator::EqualStar) was therefore dropped, and generate-ci fell back to a default Python floor instead of the project's actual minimum.

This adds TildeEqual and EqualStar to the accepted-operator set. The existing minor logic already yields the correct floor for both (~=3.13 → 13, ==3.11.* → 11), so no other change is needed.

Extends test_min_python3_minor with cases for ~=3.13, ~=3.12.2, and ==3.11.*, which return None before this change and the correct minor after.

cargo test -p maturin min_python3_minor

Copilot AI review requested due to automatic review settings July 8, 2026 00:14

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 was unable to review this pull request because the user who requested the review has reached their quota limit.

@messense
messense merged commit c914dc9 into PyO3:main Jul 9, 2026
44 of 45 checks passed
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 26, 2026
Changelog:

* Set `UV_PYTHON` when running `maturin develop` with uv ([#3236](PyO3/maturin#3236))
* Set UID and GID headers in pax ([#3241](PyO3/maturin#3241))
* Replace unguarded panics with explicit errors on fallible input ([#3242](PyO3/maturin#3242))
* Harden PEP 517 build-wheel and fix unreachable OIDC 404 fallback ([#3244](PyO3/maturin#3244))
* Fix abi3t PyModExport entrypoint check ([#3246](PyO3/maturin#3246))
* Fix `maturin build --pgo -i <version>` with `uv` install ([#3237](PyO3/maturin#3237))
* Refactor: apply some mechanical cleanups ([#3250](PyO3/maturin#3250))
* Refactor: BuildOrchestrator pipeline deduplication ([#3251](PyO3/maturin#3251))
* Refactor: improve context and environment hygiene ([#3252](PyO3/maturin#3252))
* Fix(ci): honor ~= and ==X.* in requires-python for generate-ci ([#3249](PyO3/maturin#3249))
* Refactor: type cleanup for options, tags, and wheel metadata ([#3253](PyO3/maturin#3253))
* Refactor: InstallDest, single BridgeModel, and ui output facade ([#3254](PyO3/maturin#3254))
* Don’t specify generate-import-lib for PyO3 0.29 ([#3258](PyO3/maturin#3258))
* Refactor build so that pgo is part of normal pathway ([#3257](PyO3/maturin#3257))
* Fix: verify bindings detection with cargo tree in workspaces ([#3264](PyO3/maturin#3264))
* Fix: harden cargo tree verification of bindings detection ([#3266](PyO3/maturin#3266))
* Feat: support --pgo for maturin develop ([#3270](PyO3/maturin#3270))
* Feat: support `MATURIN_PGO` env var to activate --pgo ([#3271](PyO3/maturin#3271))
* Docs: correct crate feature documentation; remove stale clippy allow
* Fix: deduplicate SBOM includes across full merged list, preserving first-seen order
* Feat: type the bindings input with a single-source-of-truth enum ([#3273](PyO3/maturin#3273))
* Don't force export of the `PyInit_{module_name}` in UniFfi mode ([#3275](PyO3/maturin#3275))
* Switch musllinux images to `musllinux_1_2` as `musllinux_1_1` is EOL ([#3280](PyO3/maturin#3280))
* Fix(generate-stubs): write stubs into the module's package directory ([#3282](PyO3/maturin#3282))
* Fix group not cwd ([#3284](PyO3/maturin#3284))
* Docs: document missing [tool.maturin] config fields ([#3287](PyO3/maturin#3287))
* Update cargo-zigbuild & cargo-xwin to 0.23.1

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 26, 2026
Changelog:

* Set `UV_PYTHON` when running `maturin develop` with uv ([#3236](PyO3/maturin#3236))
* Set UID and GID headers in pax ([#3241](PyO3/maturin#3241))
* Replace unguarded panics with explicit errors on fallible input ([#3242](PyO3/maturin#3242))
* Harden PEP 517 build-wheel and fix unreachable OIDC 404 fallback ([#3244](PyO3/maturin#3244))
* Fix abi3t PyModExport entrypoint check ([#3246](PyO3/maturin#3246))
* Fix `maturin build --pgo -i <version>` with `uv` install ([#3237](PyO3/maturin#3237))
* Refactor: apply some mechanical cleanups ([#3250](PyO3/maturin#3250))
* Refactor: BuildOrchestrator pipeline deduplication ([#3251](PyO3/maturin#3251))
* Refactor: improve context and environment hygiene ([#3252](PyO3/maturin#3252))
* Fix(ci): honor ~= and ==X.* in requires-python for generate-ci ([#3249](PyO3/maturin#3249))
* Refactor: type cleanup for options, tags, and wheel metadata ([#3253](PyO3/maturin#3253))
* Refactor: InstallDest, single BridgeModel, and ui output facade ([#3254](PyO3/maturin#3254))
* Don’t specify generate-import-lib for PyO3 0.29 ([#3258](PyO3/maturin#3258))
* Refactor build so that pgo is part of normal pathway ([#3257](PyO3/maturin#3257))
* Fix: verify bindings detection with cargo tree in workspaces ([#3264](PyO3/maturin#3264))
* Fix: harden cargo tree verification of bindings detection ([#3266](PyO3/maturin#3266))
* Feat: support --pgo for maturin develop ([#3270](PyO3/maturin#3270))
* Feat: support `MATURIN_PGO` env var to activate --pgo ([#3271](PyO3/maturin#3271))
* Docs: correct crate feature documentation; remove stale clippy allow
* Fix: deduplicate SBOM includes across full merged list, preserving first-seen order
* Feat: type the bindings input with a single-source-of-truth enum ([#3273](PyO3/maturin#3273))
* Don't force export of the `PyInit_{module_name}` in UniFfi mode ([#3275](PyO3/maturin#3275))
* Switch musllinux images to `musllinux_1_2` as `musllinux_1_1` is EOL ([#3280](PyO3/maturin#3280))
* Fix(generate-stubs): write stubs into the module's package directory ([#3282](PyO3/maturin#3282))
* Fix group not cwd ([#3284](PyO3/maturin#3284))
* Docs: document missing [tool.maturin] config fields ([#3287](PyO3/maturin#3287))
* Update cargo-zigbuild & cargo-xwin to 0.23.1

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 27, 2026
Changelog:

* Set `UV_PYTHON` when running `maturin develop` with uv ([#3236](PyO3/maturin#3236))
* Set UID and GID headers in pax ([#3241](PyO3/maturin#3241))
* Replace unguarded panics with explicit errors on fallible input ([#3242](PyO3/maturin#3242))
* Harden PEP 517 build-wheel and fix unreachable OIDC 404 fallback ([#3244](PyO3/maturin#3244))
* Fix abi3t PyModExport entrypoint check ([#3246](PyO3/maturin#3246))
* Fix `maturin build --pgo -i <version>` with `uv` install ([#3237](PyO3/maturin#3237))
* Refactor: apply some mechanical cleanups ([#3250](PyO3/maturin#3250))
* Refactor: BuildOrchestrator pipeline deduplication ([#3251](PyO3/maturin#3251))
* Refactor: improve context and environment hygiene ([#3252](PyO3/maturin#3252))
* Fix(ci): honor ~= and ==X.* in requires-python for generate-ci ([#3249](PyO3/maturin#3249))
* Refactor: type cleanup for options, tags, and wheel metadata ([#3253](PyO3/maturin#3253))
* Refactor: InstallDest, single BridgeModel, and ui output facade ([#3254](PyO3/maturin#3254))
* Don’t specify generate-import-lib for PyO3 0.29 ([#3258](PyO3/maturin#3258))
* Refactor build so that pgo is part of normal pathway ([#3257](PyO3/maturin#3257))
* Fix: verify bindings detection with cargo tree in workspaces ([#3264](PyO3/maturin#3264))
* Fix: harden cargo tree verification of bindings detection ([#3266](PyO3/maturin#3266))
* Feat: support --pgo for maturin develop ([#3270](PyO3/maturin#3270))
* Feat: support `MATURIN_PGO` env var to activate --pgo ([#3271](PyO3/maturin#3271))
* Docs: correct crate feature documentation; remove stale clippy allow
* Fix: deduplicate SBOM includes across full merged list, preserving first-seen order
* Feat: type the bindings input with a single-source-of-truth enum ([#3273](PyO3/maturin#3273))
* Don't force export of the `PyInit_{module_name}` in UniFfi mode ([#3275](PyO3/maturin#3275))
* Switch musllinux images to `musllinux_1_2` as `musllinux_1_1` is EOL ([#3280](PyO3/maturin#3280))
* Fix(generate-stubs): write stubs into the module's package directory ([#3282](PyO3/maturin#3282))
* Fix group not cwd ([#3284](PyO3/maturin#3284))
* Docs: document missing [tool.maturin] config fields ([#3287](PyO3/maturin#3287))
* Update cargo-zigbuild & cargo-xwin to 0.23.1

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 27, 2026
Changelog:

* Set `UV_PYTHON` when running `maturin develop` with uv ([#3236](PyO3/maturin#3236))
* Set UID and GID headers in pax ([#3241](PyO3/maturin#3241))
* Replace unguarded panics with explicit errors on fallible input ([#3242](PyO3/maturin#3242))
* Harden PEP 517 build-wheel and fix unreachable OIDC 404 fallback ([#3244](PyO3/maturin#3244))
* Fix abi3t PyModExport entrypoint check ([#3246](PyO3/maturin#3246))
* Fix `maturin build --pgo -i <version>` with `uv` install ([#3237](PyO3/maturin#3237))
* Refactor: apply some mechanical cleanups ([#3250](PyO3/maturin#3250))
* Refactor: BuildOrchestrator pipeline deduplication ([#3251](PyO3/maturin#3251))
* Refactor: improve context and environment hygiene ([#3252](PyO3/maturin#3252))
* Fix(ci): honor ~= and ==X.* in requires-python for generate-ci ([#3249](PyO3/maturin#3249))
* Refactor: type cleanup for options, tags, and wheel metadata ([#3253](PyO3/maturin#3253))
* Refactor: InstallDest, single BridgeModel, and ui output facade ([#3254](PyO3/maturin#3254))
* Don’t specify generate-import-lib for PyO3 0.29 ([#3258](PyO3/maturin#3258))
* Refactor build so that pgo is part of normal pathway ([#3257](PyO3/maturin#3257))
* Fix: verify bindings detection with cargo tree in workspaces ([#3264](PyO3/maturin#3264))
* Fix: harden cargo tree verification of bindings detection ([#3266](PyO3/maturin#3266))
* Feat: support --pgo for maturin develop ([#3270](PyO3/maturin#3270))
* Feat: support `MATURIN_PGO` env var to activate --pgo ([#3271](PyO3/maturin#3271))
* Docs: correct crate feature documentation; remove stale clippy allow
* Fix: deduplicate SBOM includes across full merged list, preserving first-seen order
* Feat: type the bindings input with a single-source-of-truth enum ([#3273](PyO3/maturin#3273))
* Don't force export of the `PyInit_{module_name}` in UniFfi mode ([#3275](PyO3/maturin#3275))
* Switch musllinux images to `musllinux_1_2` as `musllinux_1_1` is EOL ([#3280](PyO3/maturin#3280))
* Fix(generate-stubs): write stubs into the module's package directory ([#3282](PyO3/maturin#3282))
* Fix group not cwd ([#3284](PyO3/maturin#3284))
* Docs: document missing [tool.maturin] config fields ([#3287](PyO3/maturin#3287))
* Update cargo-zigbuild & cargo-xwin to 0.23.1

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 27, 2026
Changelog:

* Set `UV_PYTHON` when running `maturin develop` with uv ([#3236](PyO3/maturin#3236))
* Set UID and GID headers in pax ([#3241](PyO3/maturin#3241))
* Replace unguarded panics with explicit errors on fallible input ([#3242](PyO3/maturin#3242))
* Harden PEP 517 build-wheel and fix unreachable OIDC 404 fallback ([#3244](PyO3/maturin#3244))
* Fix abi3t PyModExport entrypoint check ([#3246](PyO3/maturin#3246))
* Fix `maturin build --pgo -i <version>` with `uv` install ([#3237](PyO3/maturin#3237))
* Refactor: apply some mechanical cleanups ([#3250](PyO3/maturin#3250))
* Refactor: BuildOrchestrator pipeline deduplication ([#3251](PyO3/maturin#3251))
* Refactor: improve context and environment hygiene ([#3252](PyO3/maturin#3252))
* Fix(ci): honor ~= and ==X.* in requires-python for generate-ci ([#3249](PyO3/maturin#3249))
* Refactor: type cleanup for options, tags, and wheel metadata ([#3253](PyO3/maturin#3253))
* Refactor: InstallDest, single BridgeModel, and ui output facade ([#3254](PyO3/maturin#3254))
* Don’t specify generate-import-lib for PyO3 0.29 ([#3258](PyO3/maturin#3258))
* Refactor build so that pgo is part of normal pathway ([#3257](PyO3/maturin#3257))
* Fix: verify bindings detection with cargo tree in workspaces ([#3264](PyO3/maturin#3264))
* Fix: harden cargo tree verification of bindings detection ([#3266](PyO3/maturin#3266))
* Feat: support --pgo for maturin develop ([#3270](PyO3/maturin#3270))
* Feat: support `MATURIN_PGO` env var to activate --pgo ([#3271](PyO3/maturin#3271))
* Docs: correct crate feature documentation; remove stale clippy allow
* Fix: deduplicate SBOM includes across full merged list, preserving first-seen order
* Feat: type the bindings input with a single-source-of-truth enum ([#3273](PyO3/maturin#3273))
* Don't force export of the `PyInit_{module_name}` in UniFfi mode ([#3275](PyO3/maturin#3275))
* Switch musllinux images to `musllinux_1_2` as `musllinux_1_1` is EOL ([#3280](PyO3/maturin#3280))
* Fix(generate-stubs): write stubs into the module's package directory ([#3282](PyO3/maturin#3282))
* Fix group not cwd ([#3284](PyO3/maturin#3284))
* Docs: document missing [tool.maturin] config fields ([#3287](PyO3/maturin#3287))
* Update cargo-zigbuild & cargo-xwin to 0.23.1

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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