Skip to content

Commit d7ad41f

Browse files
committed
release: 0.29.1
1 parent b55cb76 commit d7ad41f

38 files changed

Lines changed: 56 additions & 48 deletions

CHANGELOG.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,33 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h
1010

1111
<!-- towncrier release notes start -->
1212

13+
## [0.29.1] - 2026-08-02
14+
15+
### Changed
16+
17+
- Use the inline definition of `Py_TYPE` in the unlimited API on 3.14+ [#6179](https://github.com/PyO3/pyo3/pull/6179)
18+
19+
### Fixed
20+
21+
- Fix incorrect pointer arithmetic in FFI definitions `PyObject_GET_WEAKREFS_LISTPTR` and `PyHeapType_GET_MEMBERS`. [#6145](https://github.com/PyO3/pyo3/pull/6145)
22+
- Fix compilation error with `nightly` feature on PyPy and GraalPy due to `!Ungil` implementations for FFI types not available on those platforms. [#6146](https://github.com/PyO3/pyo3/pull/6146)
23+
- Fix `append_to_inittab` and `PyInit_<module>` internal module definition corruption on 32-bit and big-endian platforms on Python 3.15+. [#6150](https://github.com/PyO3/pyo3/pull/6150)
24+
- Fix return value of `PyClassGuardMutSuper::as_super` being scoped to the full guard lifetime, now the `&mut` borrow of the `as_super()` call. [#6181](https://github.com/PyO3/pyo3/pull/6181)
25+
- Fix builds for free-threaded interpreters older than 3.15 erroring with "cannot set a minimum Python version" when an `abi3t-py3*` feature is enabled and the configuration comes from `PYO3_CONFIG_FILE`, sysconfigdata or cross-compilation defaults. [#6192](https://github.com/PyO3/pyo3/pull/6192)
26+
- Fix a memory leak when deallocating `#[pyclass(dict)]` instances with a populated `__dict__`. [#6198](https://github.com/PyO3/pyo3/pull/6198)
27+
- Fix an abort inside a `#[pyclass]`'s GC traversal when the traversal is stopped early. [#6206](https://github.com/PyO3/pyo3/pull/6206)
28+
- Fix reference cycles through the `__dict__` of a `#[pyclass(dict)]` never being collected. [#6206](https://github.com/PyO3/pyo3/pull/6206)
29+
- Fix building on GraalPy 3.13. [#6208](https://github.com/PyO3/pyo3/pull/6208)
30+
- Fix reference count leak of references to `#[pyclass]` type objects held by their instances on instance deallocation. [#6224](https://github.com/PyO3/pyo3/pull/6224)
31+
- Fix FFI definitions `PyByteArray_GET_SIZE`, `PyList_GET_SIZE`, and `PySet_GET_SIZE` to use an atomic load for free-threaded Python. [#6230](https://github.com/PyO3/pyo3/pull/6230)
32+
- Fix a memory leak on Python 3.11 and 3.12 where creating an instance of a `#[pyclass(dict)]` class leaked one empty dict per instance. [#6234](https://github.com/PyO3/pyo3/pull/6234)
33+
- Fix `experimental-inspect` type stubs to emit the arguments of many magic methods as positional-only to match runtime behavior, rather than positional-or-keyword. [#6239](https://github.com/PyO3/pyo3/pull/6239)
34+
- Fix `experimental-inspect` type stubs to emit the Python name rather than the Rust name for `#[pyfunction(name = "...")]`. [#6254](https://github.com/PyO3/pyo3/pull/6254)
35+
- Fix `experimental-inspect` generating invalid internal JSON when `#[pymodule]` members are gated by `#[cfg]`. [#6255](https://github.com/PyO3/pyo3/pull/6255)
36+
- Fix `__inplace_concat__` and `__inplace_repeat__` overriding `__concat__` and `__repeat__` when both were defined. [#6260](https://github.com/PyO3/pyo3/pull/6260)
37+
- Fix conversion of out-of-range `time::Duration` values to return `OverflowError` instead of panicking. [#6266](https://github.com/PyO3/pyo3/pull/6266)
38+
- Fix `experimental-inspect` type stubs padding blank lines inside indented docstrings. [#6270](https://github.com/PyO3/pyo3/pull/6270)
39+
1340
## [0.29.0] - 2026-06-11
1441

1542
### Packaging
@@ -2655,7 +2682,9 @@ Yanked
26552682

26562683
- Initial release
26572684

2658-
[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.28.3...HEAD
2685+
[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.29.1...HEAD
2686+
[0.29.1]: https://github.com/pyo3/pyo3/compare/v0.29.0...v0.29.1
2687+
[0.29.0]: https://github.com/pyo3/pyo3/compare/v0.28.3...v0.29.0
26592688
[0.28.3]: https://github.com/pyo3/pyo3/compare/v0.28.2...v0.28.3
26602689
[0.28.2]: https://github.com/pyo3/pyo3/compare/v0.28.1...v0.28.2
26612690
[0.28.1]: https://github.com/pyo3/pyo3/compare/v0.28.0...v0.28.1

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pyo3"
3-
version = "0.29.0"
3+
version = "0.29.1"
44
description = "Bindings to Python interpreter"
55
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
66
readme = "README.md"
@@ -36,10 +36,10 @@ libc = "0.2.62"
3636
once_cell = "1.21"
3737

3838
# ffi bindings to the python interpreter, split into a separate crate so they can be used independently
39-
pyo3-ffi = { path = "pyo3-ffi", version = "=0.29.0" }
39+
pyo3-ffi = { path = "pyo3-ffi", version = "=0.29.1" }
4040

4141
# support crate for macros feature
42-
pyo3-macros = { path = "pyo3-macros", version = "=0.29.0", optional = true }
42+
pyo3-macros = { path = "pyo3-macros", version = "=0.29.1", optional = true }
4343

4444
# support crate for multiple-pymethods feature
4545
inventory = { version = "0.3.5", optional = true }
@@ -94,7 +94,7 @@ regex = "1.12.3"
9494
ctrlc = "3.5.2"
9595

9696
[build-dependencies]
97-
pyo3-build-config = { path = "pyo3-build-config", version = "=0.29.0" }
97+
pyo3-build-config = { path = "pyo3-build-config", version = "=0.29.1" }
9898

9999
[features]
100100
default = ["macros"]

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ name = "string_sum"
7171
crate-type = ["cdylib"]
7272

7373
[dependencies]
74-
pyo3 = "0.29.0"
74+
pyo3 = "0.29.1"
7575
```
7676

7777
**`src/lib.rs`**
@@ -139,7 +139,7 @@ Start a new project with `cargo new` and add `pyo3` to the `Cargo.toml` like th
139139

140140
```toml
141141
[dependencies.pyo3]
142-
version = "0.29.0"
142+
version = "0.29.1"
143143
# Enabling this cargo feature will cause PyO3 to start a Python interpreter on first call to `Python::attach`
144144
features = ["auto-initialize"]
145145
```
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.29.0");
1+
variable::set("PYO3_VERSION", "0.29.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/pyproject.toml", "pyproject.toml");
44
file::delete(".template");
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.29.0");
1+
variable::set("PYO3_VERSION", "0.29.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/pyproject.toml", "pyproject.toml");
44
file::delete(".template");
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.29.0");
1+
variable::set("PYO3_VERSION", "0.29.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/plugin_api/Cargo.toml", "plugin_api/Cargo.toml");
44
file::delete(".template");
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.29.0");
1+
variable::set("PYO3_VERSION", "0.29.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/setup.cfg", "setup.cfg");
44
file::delete(".template");
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.29.0");
1+
variable::set("PYO3_VERSION", "0.29.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/pyproject.toml", "pyproject.toml");
44
file::delete(".template");

guide/src/building-and-distribution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ An example output of doing this is shown below:
2828

2929
```console
3030
$ PYO3_PRINT_CONFIG=1 cargo build
31-
Compiling pyo3-ffi v0.29.0 (/Users/goldbaum/Documents/pyo3/pyo3-ffi)
32-
error: failed to run custom build command for `pyo3-ffi v0.29.0 (/Users/goldbaum/Documents/pyo3/pyo3-ffi)`
31+
Compiling pyo3-ffi v0.29.1 (/Users/goldbaum/Documents/pyo3/pyo3-ffi)
32+
error: failed to run custom build command for `pyo3-ffi v0.29.1 (/Users/goldbaum/Documents/pyo3/pyo3-ffi)`
3333

3434
Caused by:
3535
process didn't exit successfully: `/Users/goldbaum/Documents/pyo3/target/debug/build/pyo3-ffi-71f0882ba738a1f0/build-script-build` (exit status: 101)

newsfragments/6145.fixed.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)