This is a stability & compatibility release to fix a couple of minor compilation edge cases from PyO3 0.20.2.
The portable-atomic dependency has been added to resolve compile failures on platforms without 64-bit atomic support.
A maximum Python version check (currently for Python 3.12) has been added to prevent using old PyO3 code against future Python versions beyond the supported range.
Thank you to the following users for the improvements:
This release corrects a failure to compile of the either feature when the experimental-inspect feature is not enabled.
It also adds backwards-compatibility for pyo3 0.20.0 to build against pyo3-build-config 0.20.2, as pyo3 0.20.0 was (unintentionally) not pinned against an exact patch version pyo3-build-config, and pyo3 0.20.0 could not build against pyo3-build-config 0.20.1 due to an internal API adjustment.
Thank you to the following users for the improvements:
Check maximum version of Python at build time and for versions not yet supported require opt-in to the abi3 stable ABI by the environment variable PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1. #3821
Fixed
Use portable-atomic to support platforms without 64-bit atomics. #3619
Fix compilation failure with either feature enabled without experimental-inspect enabled. #3834
[0.20.2] - 2024-01-04
Packaging
Pin pyo3 and pyo3-ffi dependencies on pyo3-build-config to require the same patch version, i.e. pyo3 0.20.2 requires exactlypyo3-build-config 0.20.2. #3721
Fixed
Fix compile failure when building pyo3 0.20.0 with latest pyo3-build-config 0.20.X. #3724
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps pyo3 from 0.20.0 to 0.20.3.
Release notes
Sourced from pyo3's releases.
Changelog
Sourced from pyo3's changelog.
Commits
901f54b
release: 0.20.32329862
ci: workaround more aggressive nightly rust lints284d6ee
ci: updates for Rust 1.76482883a
fixeither
feature conditional compilation, again (#3834)c375c8a
add maximum Python version check (#3821)9d1b11f
Use portable-atomic for targets which lack 64-bit atomics used to check inter...4774ded
Merge pull request #3725 from PyO3/release-0.20.2bcef18b
release: 0.20.2fa6d60b
Use a definite version specification when depending on pyo3-build-config.f9f0bdd
Merge pull request #3724 from davidhewitt/fix-build-config-issueDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show