Skip to content

Commit cd5369c

Browse files
committed
release: 0.22.3
1 parent f38c43a commit cd5369c

File tree

34 files changed

+56
-54
lines changed

34 files changed

+56
-54
lines changed

CHANGELOG.md

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

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

13+
## [0.22.3] - 2024-09-15
14+
15+
### Added
16+
17+
- Add `pyo3::ffi::compat` namespace with compatibility shims for C API functions added in recent versions of Python.
18+
- Add FFI definition `PyDict_GetItemRef` on Python 3.13 and newer, and `compat::PyDict_GetItemRef` for all versions. [#4355](https://github.com/PyO3/pyo3/pull/4355)
19+
- Add FFI definition `PyList_GetItemRef` on Python 3.13 and newer, and `pyo3_ffi::compat::PyList_GetItemRef` for all versions. [#4410](https://github.com/PyO3/pyo3/pull/4410)
20+
- Add FFI definitions `compat::Py_NewRef` and `compat::Py_XNewRef`. [#4445](https://github.com/PyO3/pyo3/pull/4445)
21+
- Add FFI definitions `compat::PyObject_CallNoArgs` and `compat::PyObject_CallMethodNoArgs`. [#4461](https://github.com/PyO3/pyo3/pull/4461)
22+
- Add `GilOnceCell<Py<T>>::clone_ref`. [#4511](https://github.com/PyO3/pyo3/pull/4511)
23+
24+
### Changed
25+
26+
- Improve error messages for `#[pyfunction]` defined inside `#[pymethods]`. [#4349](https://github.com/PyO3/pyo3/pull/4349)
27+
- Improve performance of calls to Python by using the vectorcall calling convention where possible. [#4456](https://github.com/PyO3/pyo3/pull/4456)
28+
- Mention the type name in the exception message when trying to instantiate a class with no constructor defined. [#4481](https://github.com/PyO3/pyo3/pull/4481)
29+
30+
### Removed
31+
32+
- Remove private FFI definition `_Py_PackageContext`. [#4420](https://github.com/PyO3/pyo3/pull/4420)
33+
34+
### Fixed
35+
36+
- Fix compile failure in declarative `#[pymodule]` under presence of `#![no_implicit_prelude]`. [#4328](https://github.com/PyO3/pyo3/pull/4328)
37+
- Fix use of borrowed reference in `PyDict::get_item` (unsafe in free-threaded Python). [#4355](https://github.com/PyO3/pyo3/pull/4355)
38+
- Fix `#[pyclass(eq)]` macro hygiene issues for structs and enums. [#4359](https://github.com/PyO3/pyo3/pull/4359)
39+
- Fix hygiene/span issues of `'#[pyfunction]` and `#[pymethods]` generated code which affected expansion in `macro_rules` context. [#4382](https://github.com/PyO3/pyo3/pull/4382)
40+
- Fix `unsafe_code` lint error in `#[pyclass]` generated code. [#4396](https://github.com/PyO3/pyo3/pull/4396)
41+
- Fix async functions returning a tuple only returning the first element to Python. [#4407](https://github.com/PyO3/pyo3/pull/4407)
42+
- Fix use of borrowed reference in `PyList::get_item` (unsafe in free-threaded Python). [#4410](https://github.com/PyO3/pyo3/pull/4410)
43+
- Correct FFI definition `PyArg_ParseTupleAndKeywords` to take `*const *const c_char` instead of `*mut *mut c_char` on Python 3.13 and up. [#4420](https://github.com/PyO3/pyo3/pull/4420)
44+
- Fix a soundness bug with `PyClassInitializer`: panic if adding subclass to existing instance via `PyClassInitializer::from(Py<BaseClass>).add_subclass(SubClass)`. [#4454](https://github.com/PyO3/pyo3/pull/4454)
45+
- Fix illegal reference counting op inside implementation of `__traverse__` handlers. [#4479](https://github.com/PyO3/pyo3/pull/4479)
46+
1347
## [0.22.2] - 2024-07-17
1448

1549
### Packaging

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.22.2"
3+
version = "0.22.3"
44
description = "Bindings to Python interpreter"
55
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
66
readme = "README.md"
@@ -21,10 +21,10 @@ memoffset = "0.9"
2121
once_cell = "1.13"
2222

2323
# ffi bindings to the python interpreter, split into a separate crate so they can be used independently
24-
pyo3-ffi = { path = "pyo3-ffi", version = "=0.22.2" }
24+
pyo3-ffi = { path = "pyo3-ffi", version = "=0.22.3" }
2525

2626
# support crates for macros feature
27-
pyo3-macros = { path = "pyo3-macros", version = "=0.22.2", optional = true }
27+
pyo3-macros = { path = "pyo3-macros", version = "=0.22.3", optional = true }
2828
indoc = { version = "2.0.1", optional = true }
2929
unindent = { version = "0.2.1", optional = true }
3030

@@ -64,7 +64,7 @@ futures = "0.3.28"
6464
static_assertions = "1.1.0"
6565

6666
[build-dependencies]
67-
pyo3-build-config = { path = "pyo3-build-config", version = "=0.22.2", features = ["resolve-config"] }
67+
pyo3-build-config = { path = "pyo3-build-config", version = "=0.22.3", features = ["resolve-config"] }
6868

6969
[features]
7070
default = ["macros"]

README.md

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

7070
[dependencies]
71-
pyo3 = { version = "0.22.2", features = ["extension-module"] }
71+
pyo3 = { version = "0.22.3", features = ["extension-module"] }
7272
```
7373

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

138138
```toml
139139
[dependencies.pyo3]
140-
version = "0.22.2"
140+
version = "0.22.3"
141141
features = ["auto-initialize"]
142142
```
143143

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.22.2");
1+
variable::set("PYO3_VERSION", "0.22.3");
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.22.2");
1+
variable::set("PYO3_VERSION", "0.22.3");
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.22.2");
1+
variable::set("PYO3_VERSION", "0.22.3");
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.22.2");
1+
variable::set("PYO3_VERSION", "0.22.3");
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.22.2");
1+
variable::set("PYO3_VERSION", "0.22.3");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/pyproject.toml", "pyproject.toml");
44
file::delete(".template");

newsfragments/4328.fixed.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4349.fixed.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)