GeezerVison is showing github.com — Releases · PyO3/pyo3
Releases · PyO3/pyo3
PyO3 0.30.1
PyO3 0.30.1 is a re-release of PyO3 0.30.0 after investments in CI security unfortunately led to a failed crates.io publish. Rather than delete the failed tag, this new tag comes after the CI issues have (hopefully) been corrected.
Thanks to @davidhewitt @Tpt and @Viicos for the investigation and fixes.
Contributors
Tpt, davidhewitt, and Viicos
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
PyO3 0.30.0
196ca35
This commit was created on GitHub.com and signed with GitHub’s verified signature.
This release brings confirmed testing against Python 3.15.0 final. Support for Python 3.8 has been dropped. The minimum supported Rust version has also been increased to 1.85.
The largest sets of improvements come to PyO3 0.29.0's experimental-inspect feature, which has received substantial feedback since 0.29.0 and subsequently has seen many refinements to improve the quality and coverage to the generated stubs. Thank you to everyone who has helped to continue to drive this feature towards completion.
New safe wrappers for PyFrozenDict (3.15+) and PyContext have been added.
PyO3 now contains meson build files, which should make it possible for projects using meson-python to more straightforwardly use Rust and PyO3 for additional components.
Additionally, a number of small optimizations have landed, including:
- simplifications to core implementations of
PyAnyMethods,
- reduced overhead from PyO3's internal "reference pool" used to dispose of
Py<T> values dropped when not attached to the interpreter,
- optimizations to
num-bigint conversions, and
- better generated code from
IntoPyObject and IntoPyObjectRef derives.
There are also many other incremental improvements, bug fixes and smaller features; full detail can be found in the CHANGELOG.
Please consult the migration guide for help upgrading.
Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:
@adamgerhant-ai
@alex
@bschoenmaeckers
@charliermarsh
@chirizxc
@clin1234
@davidhewitt
@dependabot[bot]
@dylanpulver
@elbaro
@exg
@florentinl
@FranciscoTGouveia
@Icxolu
@imfeh2
@IvanIsCoding
@JMak-Security
@jonasdedden
@jorenham
@konstin
@latent-9
@MatthieuDartiailh
@mattip
@mejrs
@msimacek
@musicinmybrain
@ngoldbaum
@overcat
@Person-93
@PeterFaiman
@ratazzi
@rewitt94
@scott-griffiths
@ShaharNaveh
@ShiroKSH
@sneakers-the-rat
@tobni
@Tpt
@vasiliy-poverennov-dd
@WaterWhisperer
@xavierforge
Contributors
alex, ratazzi, and 39 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
uwu-420 and 950288 reacted with thumbs up emoji
jorenham, Eric-Arellano, astrojuanlu, vigith, turtletongue, uwu-420, and serjflint reacted with hooray emoji
jorenham, Eric-Arellano, uwu-420, and ilaborie reacted with heart emoji
uwu-420 reacted with rocket emoji
All reactions
-
👍
2 reactions
-
🎉
7 reactions
-
❤️
4 reactions
-
🚀
1 reaction
9 people reacted
PyO3 0.29.3
This release is a series of fixes worth landing to the PyO3 0.29 series; the PyO3 0.30 release is planned to follow within a few weeks, however during the development cycle a number of rough edges were discovered which were deemed worth a backport.
The patch broadly includes:
- a further fix the to the opt-out of
raw-dylib linking for Windows introduced in PyO3 0.29.1 (the switch to raw-dylib linking was introduced in PyO3 0.29.0),
- fixes to support GraalPy on windows,
- a handful of small performance optimizations,
- a number of non-breaking fixes to the
experimental-inspect type stub generation (expect more improvements in 0.30), and
- various other bugfixes such as to FFI definitions, to resolve crashes, and to fix clippy lints caused by PyO3 macros.
For a full list of the exact fixes please consult the CHANGELOG.
Thank you to the following contributors for the improvements:
@adamgerhant-ai
@alex
@bschoenmaeckers
@charliermarsh
@chirizxc
@davidhewitt
@dependabot[bot]
@dylanpulver
@exg
@FranciscoTGouveia
@JMak-Security
@jonasdedden
@jorenham
@konstin
@latent-9
@mejrs
@ngoldbaum
@Person-93
@PeterFaiman
@sneakers-the-rat
Contributors
alex, exg, and 18 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
uwu-420, leostimpfle, AsterDY, and overcat reacted with thumbs up emoji
uwu-420 and OutSquareCapital reacted with hooray emoji
uwu-420, shshemi, and turtletongue reacted with heart emoji
jorenham and uwu-420 reacted with rocket emoji
All reactions
-
👍
4 reactions
-
🎉
2 reactions
-
❤️
3 reactions
-
🚀
2 reactions
8 people reacted
PyO3 0.29.2
This patch fixes a regression in PyO3 0.29.1 which broke PyPy 3.11 compatibility (#[pyclass] types would crash PyPy on instance deletion).
A few further fixes have also landed with similar themes to PyO3 0.29.1: fixes to minor reference counting bugs, rough edges which would cause crashes, issues which would cause failed builds, and fixes to experimental-inspect type stub generation.
For a full list of the exact fixes please consult the CHANGELOG.
Thank you to the following contributors for the improvements:
@davidhewitt
@dependabot[bot]
@imfeh2
@musicinmybrain
@Tpt
@WaterWhisperer
Contributors
Tpt, davidhewitt, and 4 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
uwu-420 and chirizxc reacted with thumbs up emoji
uwu-420, sipsuru, and chirizxc reacted with hooray emoji
uwu-420 and chirizxc reacted with heart emoji
uwu-420, devova, cjdsellers, and chirizxc reacted with rocket emoji
All reactions
-
👍
2 reactions
-
🎉
3 reactions
-
❤️
2 reactions
-
🚀
4 reactions
5 people reacted
PyO3 0.29.1
Contributors
alex, ratazzi, and 18 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
uwu-420, chirizxc, and mtantaoui reacted with thumbs up emoji
uwu-420 reacted with hooray emoji
Eric-Arellano, Miller-Bensaid, uwu-420, cjdsellers, and swapneelap reacted with heart emoji
Eric-Arellano, AndreuCodina, uwu-420, and cjdsellers reacted with rocket emoji
All reactions
-
👍
3 reactions
-
🎉
1 reaction
-
❤️
5 reactions
-
🚀
4 reactions
8 people reacted
PyO3 0.29.0
0f90242
This commit was created on GitHub.com and signed with GitHub’s verified signature.
This release is a relatively large release with improvements across many areas of PyO3's API.
Build and packaging changes
This release brings full support for Python 3.15 beta. We encourage downstream projects to begin testing and distributing Python 3.15 beta wheels so that the ecosystem can prepare for the 3.15 final release later in the year.
Alongside Python 3.15 support comes support for its new "abi3t" stable ABI which supports both free-threaded and gil-enabled Python builds. For projects distributing stable ABI wheels, we recommend distributing (for each OS/architecture) an abi3 wheel built for your minimum supported Python version, a 3.14t version-specific wheel for free-threaded Python 3.14, and an abi3t wheel to support Python 3.15 (and future versions).
Support for Python 3.7 has been dropped. Support for Python 3.13t, the first experimental free-threaded release of CPython, has also been dropped. 3.14t (and soon 3.15t) is more stable, performant, and the starting point for CPython's own declaration of "support" for the free-threaded build.
The PyO3 build process (via the pyo3-build-config crate) has been adjusted to reduce the cost of rebuilds when the environment used to detect the Python interpreter changes; pyo3-build-config and pyo3-macros will no longer be rebuilt in such cases (although pyo3-ffi and crates downstream of it still will be rebuilt). As a consequence the pyo3_build_config APIs now require crates to have a direct dependency on pyo3 or pyo3-ffi. We hope to continue to reduce rebuild frequency and cost in a future PyO3 release.
Security updates
With the recent boom in AI-assisted security scanning, PyO3 has inevitably had several correctness issues exposed by AI-assisted scanning.
In particular, PyO3 0.29 fixes two security vulnerabilities we will be releasing to the RustSec Advisory Database imminently:
- Missing
Sync bound on PyCFunction::new_closure closures
- Possible out of bounds read in
BoundTupleIterator::nth_back and BoundListIterator::nth_back
Any code using the above APIs is advised to update as soon as possible.
This release also contains several other minor breaking changes to close soundness holes uncovered by AI-assisted scanning. Our assessment as maintainers was that, excluding the two vulnerability cases listed above, these correctness issues would likely have crashed immediately upon user testing rather than leading to attacker-exploitable pathways. We nevertheless wanted to see them closed without the usual deprecation cycle. These cases are noted in the migration guide.
Other major themes in this release
New in this release is a CLI in pyo3-introspection to generate type stubs along with the experimental-inspect feature. Downstream, maturin has also gained support to generate type stubs using the feature. The feature is reaching a point where substantial amount of type stubs can be generated automatically. We would like to encourage users to begin using this feature and helping us find what functionality is missing, with a hope we can declare its API stable given sufficient feedback.
A substantial amount of effort has been invested in pyo3-ffi as part of the process of extending it with 3.15's new APIs. There have been many missing APIs from older Python versions added. There have also been a number of fixes to incorrect definitions (these are breaking changes, but also necessary for correctness); we hope there will be far fewer such cases in the future due to more comprehensive checking added to PyO3's CI. Finally, many private CPython APIs (those with _Py underscore-named prefix) have been removed from pyo3-ffi's public API.
In closing
There are also many other incremental improvements, bug fixes and smaller features; full detail can be found in the CHANGELOG.
Please consult the migration guide for help upgrading.
Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:
@Alc-Alc
@alex
@anuraaga
@BD103
@bschoenmaeckers
@Cheukting
@chirizxc
@ChristopherRabotin
@clin1234
@codeguru42
@davidhewitt
@dependabot[bot]
@Embers-of-the-Fire
@funsafemath
@Harikeshav-R
@hoodmane
@Icxolu
@IntrepidT
@jelmer
@luxedo
@MatthieuDartiailh
@maurosilber
@mejrs
@messense
@ngoldbaum
@Person-93
@quyentonndbs
@rara64
@staticintlucas
@tbates-redarc
@tdyas
@Tpt
@winstxnhdw
Contributors
alex, jelmer, and 31 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
chirizxc, uwu-420, agriyakhetarpal, Whth, and skewballfox reacted with thumbs up emoji
jorenham, abstractqqq, Eric-Arellano, demhadais, cjdsellers, ngoldbaum, chirizxc, BD103, denehoffman, RCoder01, and 12 more reacted with hooray emoji
chirizxc, uwu-420, madig, barakugav, agriyakhetarpal, and bbstilson reacted with heart emoji
cjdsellers, chirizxc, SpookyYomo, uwu-420, madig, agriyakhetarpal, and McPatate reacted with rocket emoji
chirizxc and pfm-my reacted with eyes emoji
All reactions
-
👍
5 reactions
-
🎉
22 reactions
-
❤️
6 reactions
-
🚀
7 reactions
-
👀
2 reactions
29 people reacted
PyO3 0.28.3
This patch contains several fixes for stability of the PyO3 0.28.x series:
Python::attach and Python::try_attach will no longer return before the thread initializing the interpreter has finished runnning site.py when using the auto-initialize feature.
- Fix unsoundness in
PyBytesWriter::write_vectored when targeting the Python 3.15 prerelease interpreter.
- Fix possible deadlock in
.into_pyobject() implementation for C-like #[pyclass] enums.
A couple of edge cases causing compile failures were also fixed.
Thank you to the following contributors for the improvements:
@alex
@bschoenmaeckers
@chirizxc
@davidhewitt
@Embers-of-the-Fire
@Icxolu
@maurosilber
@ngoldbaum
Contributors
alex, davidhewitt, and 6 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
uwu-420, mtantaoui, chirizxc, ioallocate, Et9797, albertobadia, and SSL-ACTX reacted with thumbs up emoji
uwu-420 reacted with hooray emoji
uwu-420, cjdsellers, SpamixOfficial, swapneelap, jlogan03, matanox, and SSL-ACTX reacted with heart emoji
uwu-420, ohadravid, Eric-Arellano, unclepomedev, chirizxc, and cjdsellers reacted with rocket emoji
All reactions
-
👍
7 reactions
-
🎉
1 reaction
-
❤️
7 reactions
-
🚀
6 reactions
15 people reacted
PyO3 0.28.2
This patch release contains a soundness fix for subclassing native types such as PyList with the abi3 feature enabled when targeting a minimum version of Python 3.12 or higher. (Support for doing such subclassing was newly added in PyO3 0.28.0.)
PyO3 0.28.0 and 0.28.1 will be yanked.
This release also contains a correction to the FFI definition PyType_GetTypeDataSize and incorrectly-generated __qualname__ on #[pyclass] enum variant types when using #[pyo3(name = "...")] option to rename the enum and/or variant.
Thank you to the following contributors for the improvements:
@davidhewitt
@Icxolu
@ngoldbaum
Contributors
davidhewitt, ngoldbaum, and Icxolu
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
uwu-420, hexqnt, KMnO4-158, and jehrhardt reacted with thumbs up emoji
uwu-420 and soltanoff reacted with hooray emoji
uwu-420, wr41th, arnobaer, jehrhardt, ravenexp, cjdsellers, swapneelap, and unclepomedev reacted with heart emoji
uwu-420, aaravind100, and cjdsellers reacted with rocket emoji
All reactions
-
👍
4 reactions
-
🎉
2 reactions
-
❤️
8 reactions
-
🚀
3 reactions
12 people reacted
PyO3 0.28.1
Contributors
tdyas, davidhewitt, and 3 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
janosh, CaptainDriftwood, uwu-420, hoquoctrung98, FomalhautWeisszwerg, and hexqnt reacted with thumbs up emoji
rara64, unclepomedev, soltanoff, KMnO4-158, and uwu-420 reacted with hooray emoji
uwu-420, cjdsellers, and owensilk reacted with heart emoji
lycantropos, uwu-420, aaravind100, cjdsellers, and owensilk reacted with rocket emoji
All reactions
-
👍
6 reactions
-
🎉
5 reactions
-
❤️
3 reactions
-
🚀
5 reactions
14 people reacted
PyO3 0.28.0
f0c1523
This commit was created on GitHub.com and signed with GitHub’s verified signature.
This release contains many improvements across PyO3's feature set:
- Proper support for
__init__ methods for #[pyclass] types
- Support for
#[deleter]s to complement the existing #[getter] and #[setter] attributes when implementing class "properties".
- Support for subclassing many Python types with the
abi3 feature (requires Python 3.12+).
- A new
#[pyclass(new = "from_fields")] option to automatically define the constructor from the class fields.
- Many corrections to FFI definitions (including removal of many private CPython methods)
- Many improvements to the
experimental-inspect feature's functionality.
The minimum supported Rust version has been increased to Rust 1.83.
This release also switches #[pymodule] to use PEP 489 multi-phase initialization internally. This should have no immediate functional impact other than preparing PyO3 to support newer technologies such as Python subinterpreters.
There are also many other incremental improvements, bug fixes and smaller features; full detail can be found in the CHANGELOG.
Please consult the migration guide for help upgrading.
Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:
@ABorgna
@ahlinc
@alex
@altendky
@bazaah
@bschoenmaeckers
@chirizxc
@clin1234
@davidhewitt
@dependabot[bot]
@freakboy3742
@henryp3278
@Icxolu
@lazka
@LilyFirefly
@linkmauve
@lmmx
@lukaslueg
@MatthieuDartiailh
@MusicalNinjaDad
@ngoldbaum
@pkalivas
@reaperhulk
@RedKinda
@SilasMarvin
@SoroushMoosapour
@stijndcl
@tpoliaw
@Tpt
Contributors
alex, freakboy3742, and 27 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
KMnO4-158, uwu-420, 950288, CaptainDriftwood, hoquoctrung98, jenchen95, vigith, edgarrmondragon, qerdinger, and shBLOCK reacted with thumbs up emoji
jorenham, uwu-420, Eric-Arellano, empicano, unclepomedev, ducdetronquito, Icxolu, jedhamzawi, serjflint, achapkowski, and 4 more reacted with hooray emoji
uwu-420, Eric-Arellano, empicano, jlogan03, bschoenmaeckers, and cjdsellers reacted with heart emoji
uwu-420, Eric-Arellano, tobhofmann, and cjdsellers reacted with rocket emoji
All reactions
-
👍
10 reactions
-
🎉
14 reactions
-
❤️
6 reactions
-
🚀
4 reactions
27 people reacted
|