From 8e9b497b78b35ad8289d2052b32d996f52fdb588 Mon Sep 17 00:00:00 2001 From: David Hewitt Date: Fri, 15 Nov 2024 14:41:13 +0000 Subject: [PATCH] release: 0.23.0 (#4651) --- CHANGELOG.md | 100 +++++++++++++++++++++++++++++++- Cargo.toml | 8 +-- newsfragments/4060.added.md | 1 - newsfragments/4060.changed.md | 1 - newsfragments/4233.added.md | 1 - newsfragments/4243.changed.md | 1 - newsfragments/4308.changed.md | 1 - newsfragments/4317.added.md | 1 - newsfragments/4322.changed.md | 1 - newsfragments/4322.removed.md | 1 - newsfragments/4323.removed.md | 1 - newsfragments/4347.changed.md | 1 - newsfragments/4348.added.md | 1 - newsfragments/4351.added.md | 1 - newsfragments/4370.removed.md | 1 - newsfragments/4378.removed.md | 1 - newsfragments/4388.changed.md | 1 - newsfragments/4389.fixed.md | 1 - newsfragments/4404.changed.md | 1 - newsfragments/4415.added.md | 1 - newsfragments/4415.changed.md | 1 - newsfragments/4421.added.md | 1 - newsfragments/4421.fixed.md | 1 - newsfragments/4434.changed.md | 5 -- newsfragments/4435.changed.md | 1 - newsfragments/4439.changed.md | 3 - newsfragments/4441.changed.md | 1 - newsfragments/4442.changed.md | 2 - newsfragments/4447.added.md | 1 - newsfragments/4447.fixed.md | 1 - newsfragments/4447.removed.md | 1 - newsfragments/4453.changed.md | 1 - newsfragments/4477.added.md | 1 - newsfragments/4493.changed.md | 1 - newsfragments/4495.added.md | 1 - newsfragments/4497.changed.md | 1 - newsfragments/4504.changed.md | 2 - newsfragments/4509.fixed.md | 1 - newsfragments/4512.changed.md | 1 - newsfragments/4520.added.md | 1 - newsfragments/4521.removed.md | 1 - newsfragments/4528.removed.md | 7 --- newsfragments/4529.added.md | 1 - newsfragments/4534.changed.md | 3 - newsfragments/4534.removed.md | 1 - newsfragments/4539.removed.md | 3 - newsfragments/4542.changed.md | 1 - newsfragments/4544.changed.md | 2 - newsfragments/4553.fixed.md | 1 - newsfragments/4566.changed.md | 5 -- newsfragments/4567.fixed.md | 1 - newsfragments/4577.added.md | 1 - newsfragments/4580.changed.md | 1 - newsfragments/4582.packaging.md | 1 - newsfragments/4587.added.md | 2 - newsfragments/4588.added.md | 3 - newsfragments/4595.changed.md | 2 - newsfragments/4597.changed.md | 1 - newsfragments/4598.changed.md | 1 - newsfragments/4604.packaging.md | 1 - newsfragments/4606.changed.md | 1 - newsfragments/4611.changed.md | 1 - newsfragments/4617.packaging.md | 13 ----- newsfragments/4618.changed.md | 1 - newsfragments/4623.fixed.md | 1 - newsfragments/4634.added.md | 1 - newsfragments/4644.added.md | 1 - newsfragments/4645.fixed.md | 1 - newsfragments/4654.fixed.md | 1 - newsfragments/4655.changed.md | 1 - newsfragments/4657.changed.md | 1 - newsfragments/4661.changed.md | 1 - newsfragments/4665.changed.md | 2 - newsfragments/4667.added.md | 1 - newsfragments/4671.fixed.md | 1 - newsfragments/4674.fixed.md | 1 - newsfragments/4676.added.md | 1 - newsfragments/4692.fixed.md | 1 - newsfragments/4694.fixed.md | 1 - newsfragments/4705.fixed.md | 1 - pyo3-build-config/Cargo.toml | 2 +- pyo3-ffi/Cargo.toml | 4 +- pyo3-macros-backend/Cargo.toml | 6 +- pyo3-macros/Cargo.toml | 4 +- pyproject.toml | 2 +- tests/ui/reject_generics.stderr | 4 +- 86 files changed, 114 insertions(+), 134 deletions(-) delete mode 100644 newsfragments/4060.added.md delete mode 100644 newsfragments/4060.changed.md delete mode 100644 newsfragments/4233.added.md delete mode 100644 newsfragments/4243.changed.md delete mode 100644 newsfragments/4308.changed.md delete mode 100644 newsfragments/4317.added.md delete mode 100644 newsfragments/4322.changed.md delete mode 100644 newsfragments/4322.removed.md delete mode 100644 newsfragments/4323.removed.md delete mode 100644 newsfragments/4347.changed.md delete mode 100644 newsfragments/4348.added.md delete mode 100644 newsfragments/4351.added.md delete mode 100644 newsfragments/4370.removed.md delete mode 100644 newsfragments/4378.removed.md delete mode 100644 newsfragments/4388.changed.md delete mode 100644 newsfragments/4389.fixed.md delete mode 100644 newsfragments/4404.changed.md delete mode 100644 newsfragments/4415.added.md delete mode 100644 newsfragments/4415.changed.md delete mode 100644 newsfragments/4421.added.md delete mode 100644 newsfragments/4421.fixed.md delete mode 100644 newsfragments/4434.changed.md delete mode 100644 newsfragments/4435.changed.md delete mode 100644 newsfragments/4439.changed.md delete mode 100644 newsfragments/4441.changed.md delete mode 100644 newsfragments/4442.changed.md delete mode 100644 newsfragments/4447.added.md delete mode 100644 newsfragments/4447.fixed.md delete mode 100644 newsfragments/4447.removed.md delete mode 100644 newsfragments/4453.changed.md delete mode 100644 newsfragments/4477.added.md delete mode 100644 newsfragments/4493.changed.md delete mode 100644 newsfragments/4495.added.md delete mode 100644 newsfragments/4497.changed.md delete mode 100644 newsfragments/4504.changed.md delete mode 100644 newsfragments/4509.fixed.md delete mode 100644 newsfragments/4512.changed.md delete mode 100644 newsfragments/4520.added.md delete mode 100644 newsfragments/4521.removed.md delete mode 100644 newsfragments/4528.removed.md delete mode 100644 newsfragments/4529.added.md delete mode 100644 newsfragments/4534.changed.md delete mode 100644 newsfragments/4534.removed.md delete mode 100644 newsfragments/4539.removed.md delete mode 100644 newsfragments/4542.changed.md delete mode 100644 newsfragments/4544.changed.md delete mode 100644 newsfragments/4553.fixed.md delete mode 100644 newsfragments/4566.changed.md delete mode 100644 newsfragments/4567.fixed.md delete mode 100644 newsfragments/4577.added.md delete mode 100644 newsfragments/4580.changed.md delete mode 100644 newsfragments/4582.packaging.md delete mode 100644 newsfragments/4587.added.md delete mode 100644 newsfragments/4588.added.md delete mode 100644 newsfragments/4595.changed.md delete mode 100644 newsfragments/4597.changed.md delete mode 100644 newsfragments/4598.changed.md delete mode 100644 newsfragments/4604.packaging.md delete mode 100644 newsfragments/4606.changed.md delete mode 100644 newsfragments/4611.changed.md delete mode 100644 newsfragments/4617.packaging.md delete mode 100644 newsfragments/4618.changed.md delete mode 100644 newsfragments/4623.fixed.md delete mode 100644 newsfragments/4634.added.md delete mode 100644 newsfragments/4644.added.md delete mode 100644 newsfragments/4645.fixed.md delete mode 100644 newsfragments/4654.fixed.md delete mode 100644 newsfragments/4655.changed.md delete mode 100644 newsfragments/4657.changed.md delete mode 100644 newsfragments/4661.changed.md delete mode 100644 newsfragments/4665.changed.md delete mode 100644 newsfragments/4667.added.md delete mode 100644 newsfragments/4671.fixed.md delete mode 100644 newsfragments/4674.fixed.md delete mode 100644 newsfragments/4676.added.md delete mode 100644 newsfragments/4692.fixed.md delete mode 100644 newsfragments/4694.fixed.md delete mode 100644 newsfragments/4705.fixed.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 34727da8b24..eef2151e07c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,103 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h +## [0.23.0] - 2024-11-15 + +### Packaging + +- Drop support for PyPy 3.7 and 3.8. [#4582](https://github.com/PyO3/pyo3/pull/4582) +- Extend range of supported versions of `hashbrown` optional dependency to include version 0.15. [#4604](https://github.com/PyO3/pyo3/pull/4604) +- Bump minimum version of `eyre` optional dependency to 0.6.8. [#4617](https://github.com/PyO3/pyo3/pull/4617) +- Bump minimum version of `hashbrown` optional dependency to 0.14.5. [#4617](https://github.com/PyO3/pyo3/pull/4617) +- Bump minimum version of `indexmap` optional dependency to 2.5.0. [#4617](https://github.com/PyO3/pyo3/pull/4617) +- Bump minimum version of `num-complex` optional dependency to 0.4.6. [#4617](https://github.com/PyO3/pyo3/pull/4617) +- Bump minimum version of `chrono-tz` optional dependency to 0.10. [#4617](https://github.com/PyO3/pyo3/pull/4617) +- Support free-threaded Python 3.13t. [#4588](https://github.com/PyO3/pyo3/pull/4588) + +### Added + +- Add `IntoPyObject` (fallible) conversion trait to convert from Rust to Python values. [#4060](https://github.com/PyO3/pyo3/pull/4060) +- Add `#[pyclass(str="")]` option to generate `__str__` based on a `Display` implementation or format string. [#4233](https://github.com/PyO3/pyo3/pull/4233) +- Implement `PartialEq` for `Bound<'py, PyInt>` with `u8`, `u16`, `u32`, `u64`, `u128`, `usize`, `i8`, `i16`, `i32`, `i64`, `i128` and `isize`. [#4317](https://github.com/PyO3/pyo3/pull/4317) +- Implement `PartialEq` and `PartialEq` for `Bound<'py, PyFloat>`. [#4348](https://github.com/PyO3/pyo3/pull/4348) +- Add `as_super` and `into_super` methods for `Bound`. [#4351](https://github.com/PyO3/pyo3/pull/4351) +- Add FFI definitions `PyCFunctionFast` and `PyCFunctionFastWithKeywords` [#4415](https://github.com/PyO3/pyo3/pull/4415) +- Add FFI definitions for `PyMutex` on Python 3.13 and newer. [#4421](https://github.com/PyO3/pyo3/pull/4421) +- Add `PyDict::locked_for_each` to iterate efficiently on freethreaded Python. [#4439](https://github.com/PyO3/pyo3/pull/4439) +- Add FFI definitions `PyObject_GetOptionalAttr`, `PyObject_GetOptionalAttrString`, `PyObject_HasAttrWithError`, `PyObject_HasAttrStringWithError`, `Py_CONSTANT_*` constants, `Py_GetConstant`, `Py_GetConstantBorrowed`, and `PyType_GetModuleByDef` on Python 3.13 and newer. [#4447](https://github.com/PyO3/pyo3/pull/4447) +- Add FFI definitions for the Python critical section API available on Python 3.13 and newer. [#4477](https://github.com/PyO3/pyo3/pull/4477) +- Add derive macro for `IntoPyObject`. [#4495](https://github.com/PyO3/pyo3/pull/4495) +- Add `Borrowed::as_ptr`. [#4520](https://github.com/PyO3/pyo3/pull/4520) +- Add FFI definition for `PyImport_AddModuleRef`. [#4529](https://github.com/PyO3/pyo3/pull/4529) +- Add `PyAnyMethods::try_iter`. [#4553](https://github.com/PyO3/pyo3/pull/4553) +- Add `pyo3::sync::with_critical_section`, a wrapper around the Python Critical Section API added in Python 3.13. [#4587](https://github.com/PyO3/pyo3/pull/4587) +- Add `#[pymodule(gil_used = false)]` option to declare that a module supports the free-threaded build. [#4588](https://github.com/PyO3/pyo3/pull/4588) +- Add `PyModule::gil_used` method to declare that a module supports the free-threaded build. [#4588](https://github.com/PyO3/pyo3/pull/4588) +- Add FFI definition `PyDateTime_CAPSULE_NAME`. [#4634](https://github.com/PyO3/pyo3/pull/4634) +- Add `PyMappingProxy` type to represent the `mappingproxy` Python class. [#4644](https://github.com/PyO3/pyo3/pull/4644) +- Add FFI definitions `PyList_Extend` and `PyList_Clear`. [#4667](https://github.com/PyO3/pyo3/pull/4667) +- Add derive macro for `IntoPyObjectRef`. [#4674](https://github.com/PyO3/pyo3/pull/4674) +- Add `pyo3::sync::OnceExt` and `pyo3::sync::OnceLockExt` traits. [#4676](https://github.com/PyO3/pyo3/pull/4676) + +### Changed + +- Prefer `IntoPyObject` over `IntoPy>>` for `#[pyfunction]` and `#[pymethods]` return types. [#4060](https://github.com/PyO3/pyo3/pull/4060) +- Report multiple errors from `#[pyclass]` and `#[pyo3(..)]` attributes. [#4243](https://github.com/PyO3/pyo3/pull/4243) +- Nested declarative `#[pymodule]` are automatically treated as submodules (no `PyInit_` entrypoint is created). [#4308](https://github.com/PyO3/pyo3/pull/4308) +- Deprecate `PyAnyMethods::is_ellipsis` (`Py::is_ellipsis` was deprecated in PyO3 0.20). [#4322](https://github.com/PyO3/pyo3/pull/4322) +- Deprecate `PyLong` in favor of `PyInt`. [#4347](https://github.com/PyO3/pyo3/pull/4347) +- Rename `IntoPyDict::into_py_dict_bound` to `IntoPyDict::into_py_dict`. [#4388](https://github.com/PyO3/pyo3/pull/4388) +- `PyModule::from_code` now expects `&CStr` as arguments instead of `&str`. [#4404](https://github.com/PyO3/pyo3/pull/4404) +- Use "fastcall" Python calling convention for `#[pyfunction]`s when compiling on abi3 for Python 3.10 and up. [#4415](https://github.com/PyO3/pyo3/pull/4415) +- Remove `Copy` and `Clone` from `PyObject` struct FFI definition. [#4434](https://github.com/PyO3/pyo3/pull/4434) +- `Python::eval` and `Python::run` now take a `&CStr` instead of `&str`. [#4435](https://github.com/PyO3/pyo3/pull/4435) +- Deprecate `IPowModulo`, `PyClassAttributeDef`, `PyGetterDef`, `PyMethodDef`, `PyMethodDefType`, and `PySetterDef` from PyO3's public API. [#4441](https://github.com/PyO3/pyo3/pull/4441) +- `IntoPyObject` impls for `Vec`, `&[u8]`, `[u8; N]`, `Cow<[u8]>` and `SmallVec<[u8; N]>` now convert into Python `bytes` rather than a `list` of integers. [#4442](https://github.com/PyO3/pyo3/pull/4442) +- Emit a compile-time error when attempting to subclass a class that doesn't allow subclassing. [#4453](https://github.com/PyO3/pyo3/pull/4453) +- `IntoPyDict::into_py_dict` is now fallible due to `IntoPyObject` migration. [#4493](https://github.com/PyO3/pyo3/pull/4493) +- The `abi3` feature will now override config files provided via `PYO3_BUILD_CONFIG`. [#4497](https://github.com/PyO3/pyo3/pull/4497) +- Disable the `GILProtected` struct on free-threaded Python. [#4504](https://github.com/PyO3/pyo3/pull/4504) +- Updated FFI definitions for functions and struct fields that have been deprecated or removed from CPython. [#4534](https://github.com/PyO3/pyo3/pull/4534) +- Disable `PyListMethods::get_item_unchecked` on free-threaded Python. [#4539](https://github.com/PyO3/pyo3/pull/4539) +- Add `GILOnceCell::import`. [#4542](https://github.com/PyO3/pyo3/pull/4542) +- Deprecate `PyAnyMethods::iter` in favour of `PyAnyMethods::try_iter`. [#4553](https://github.com/PyO3/pyo3/pull/4553) +- The `#[pyclass]` macro now requires a types to be `Sync`. (Except for `#[pyclass(unsendable)]` types). [#4566](https://github.com/PyO3/pyo3/pull/4566) +- `PyList::new` and `PyTuple::new` are now fallible due to `IntoPyObject` migration. [#4580](https://github.com/PyO3/pyo3/pull/4580) +- `PyErr::matches` is now fallible due to `IntoPyObject` migration. [#4595](https://github.com/PyO3/pyo3/pull/4595) +- Deprecate `ToPyObject` in favour of `IntoPyObject` [#4595](https://github.com/PyO3/pyo3/pull/4595) +- Deprecate `PyWeakrefMethods::get_option`. [#4597](https://github.com/PyO3/pyo3/pull/4597) +- Seal `PyWeakrefMethods` trait. [#4598](https://github.com/PyO3/pyo3/pull/4598) +- Remove `PyNativeTypeInitializer` and `PyObjectInit` from the PyO3 public API. [#4611](https://github.com/PyO3/pyo3/pull/4611) +- Deprecate `IntoPy` in favor of `IntoPyObject` [#4618](https://github.com/PyO3/pyo3/pull/4618) +- Eagerly normalize exceptions in `PyErr::take()` and `PyErr::fetch()` on Python 3.11 and older. [#4655](https://github.com/PyO3/pyo3/pull/4655) +- Move `IntoPy::type_output` to `IntoPyObject::type_output`. [#4657](https://github.com/PyO3/pyo3/pull/4657) +- Change return type of `PyMapping::keys`, `PyMapping::values` and `PyMapping::items` to `Bound<'py, PyList>` instead of `Bound<'py, PySequence>`. [#4661](https://github.com/PyO3/pyo3/pull/4661) +- Complex enums now allow field types that either implement `IntoPyObject` by reference or by value together with `Clone`. This makes `Py` available as field type. [#4694](https://github.com/PyO3/pyo3/pull/4694) + + +### Removed + +- Remove all functionality deprecated in PyO3 0.20. [#4322](https://github.com/PyO3/pyo3/pull/4322) +- Remove all functionality deprecated in PyO3 0.21. [#4323](https://github.com/PyO3/pyo3/pull/4323) +- Deprecate `PyUnicode` in favour of `PyString`. [#4370](https://github.com/PyO3/pyo3/pull/4370) +- Remove deprecated `gil-refs` feature. [#4378](https://github.com/PyO3/pyo3/pull/4378) +- Remove private FFI definitions `_Py_IMMORTAL_REFCNT`, `_Py_IsImmortal`, `_Py_TPFLAGS_STATIC_BUILTIN`, `_Py_Dealloc`, `_Py_IncRef`, `_Py_DecRef`. [#4447](https://github.com/PyO3/pyo3/pull/4447) +- Remove private FFI definitions `_Py_c_sum`, `_Py_c_diff`, `_Py_c_neg`, `_Py_c_prod`, `_Py_c_quot`, `_Py_c_pow`, `_Py_c_abs`. [#4521](https://github.com/PyO3/pyo3/pull/4521) +- Remove `_borrowed` methods of `PyWeakRef` and `PyWeakRefProxy`. [#4528](https://github.com/PyO3/pyo3/pull/4528) +- Removed private FFI definition `_PyErr_ChainExceptions`. [#4534](https://github.com/PyO3/pyo3/pull/4534) + +### Fixed + +- Fix invalid library search path `lib_dir` when cross-compiling. [#4389](https://github.com/PyO3/pyo3/pull/4389) +- Fix FFI definition `Py_Is` for PyPy on 3.10 to call the function defined by PyPy. [#4447](https://github.com/PyO3/pyo3/pull/4447) +- Fix compile failure when using `#[cfg]` attributes for simple enum variants. [#4509](https://github.com/PyO3/pyo3/pull/4509) +- Fix compiler warning for `non_snake_case` method names inside `#[pymethods]` generated code. [#4567](https://github.com/PyO3/pyo3/pull/4567) +- Fix compile error with `#[derive(FromPyObject)]` generic struct with trait bounds. [#4645](https://github.com/PyO3/pyo3/pull/4645) +- Fix compile error for `#[classmethod]` and `#[staticmethod]` on magic methods. [#4654](https://github.com/PyO3/pyo3/pull/4654) +- Fix compile warning for `unsafe_op_in_unsafe_fn` in generated macro code. [#4674](https://github.com/PyO3/pyo3/pull/4674) +- Fix incorrect deprecation warning for `#[pyclass] enum`s with custom `__eq__` implementation. [#4692](https://github.com/PyO3/pyo3/pull/4692) +- Fix `non_upper_case_globals` lint firing for generated `__match_args__` on complex enums. [#4705](https://github.com/PyO3/pyo3/pull/4705) + ## [0.22.5] - 2024-10-15 ### Fixed @@ -1899,7 +1996,8 @@ Yanked - Initial release -[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.22.5...HEAD +[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.23.0...HEAD +[0.23.0]: https://github.com/pyo3/pyo3/compare/v0.22.5...v0.23.0 [0.22.5]: https://github.com/pyo3/pyo3/compare/v0.22.4...v0.22.5 [0.22.4]: https://github.com/pyo3/pyo3/compare/v0.22.3...v0.22.4 [0.22.3]: https://github.com/pyo3/pyo3/compare/v0.22.2...v0.22.3 diff --git a/Cargo.toml b/Cargo.toml index 9e931ed00b6..1dc198fecac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3" -version = "0.23.0-dev" +version = "0.23.0" description = "Bindings to Python interpreter" authors = ["PyO3 Project and Contributors "] readme = "README.md" @@ -21,10 +21,10 @@ memoffset = "0.9" once_cell = "1.13" # ffi bindings to the python interpreter, split into a separate crate so they can be used independently -pyo3-ffi = { path = "pyo3-ffi", version = "=0.23.0-dev" } +pyo3-ffi = { path = "pyo3-ffi", version = "=0.23.0" } # support crates for macros feature -pyo3-macros = { path = "pyo3-macros", version = "=0.23.0-dev", optional = true } +pyo3-macros = { path = "pyo3-macros", version = "=0.23.0", optional = true } indoc = { version = "2.0.1", optional = true } unindent = { version = "0.2.1", optional = true } @@ -66,7 +66,7 @@ static_assertions = "1.1.0" uuid = {version = "1.10.0", features = ["v4"] } [build-dependencies] -pyo3-build-config = { path = "pyo3-build-config", version = "=0.23.0-dev", features = ["resolve-config"] } +pyo3-build-config = { path = "pyo3-build-config", version = "=0.23.0", features = ["resolve-config"] } [features] default = ["macros"] diff --git a/newsfragments/4060.added.md b/newsfragments/4060.added.md deleted file mode 100644 index 2734df34bc9..00000000000 --- a/newsfragments/4060.added.md +++ /dev/null @@ -1 +0,0 @@ -New `IntoPyObject` (fallible) conversion trait to convert from Rust to Python values. \ No newline at end of file diff --git a/newsfragments/4060.changed.md b/newsfragments/4060.changed.md deleted file mode 100644 index 8d104a05cae..00000000000 --- a/newsfragments/4060.changed.md +++ /dev/null @@ -1 +0,0 @@ -`#[pyfunction]` and `#[pymethods]` return types will prefer `IntoPyObject` over `IntoPy` \ No newline at end of file diff --git a/newsfragments/4233.added.md b/newsfragments/4233.added.md deleted file mode 100644 index cd45d163951..00000000000 --- a/newsfragments/4233.added.md +++ /dev/null @@ -1 +0,0 @@ -Added `#[pyclass(str="")]` option to generate `__str__` based on a `Display` implementation or format string. \ No newline at end of file diff --git a/newsfragments/4243.changed.md b/newsfragments/4243.changed.md deleted file mode 100644 index d9464ab37aa..00000000000 --- a/newsfragments/4243.changed.md +++ /dev/null @@ -1 +0,0 @@ -Report multiple errors from `#[pyclass]` and `#[pyo3(..)]` attributes. diff --git a/newsfragments/4308.changed.md b/newsfragments/4308.changed.md deleted file mode 100644 index 6b5310cdd36..00000000000 --- a/newsfragments/4308.changed.md +++ /dev/null @@ -1 +0,0 @@ -Nested declarative `#[pymodule]` are automatically treated as submodules (no `PyInit_` entrypoint is created) diff --git a/newsfragments/4317.added.md b/newsfragments/4317.added.md deleted file mode 100644 index 99849236101..00000000000 --- a/newsfragments/4317.added.md +++ /dev/null @@ -1 +0,0 @@ -Implement `PartialEq` for `Bound<'py, PyInt>` with `u8`, `u16`, `u32`, `u64`, `u128`, `usize`, `i8`, `i16`, `i32`, `i64`, `i128` and `isize`. diff --git a/newsfragments/4322.changed.md b/newsfragments/4322.changed.md deleted file mode 100644 index dd15a89dcba..00000000000 --- a/newsfragments/4322.changed.md +++ /dev/null @@ -1 +0,0 @@ -Deprecate `PyAnyMethods::is_ellipsis` (`Py::is_ellpsis` was deprecated in PyO3 0.20). diff --git a/newsfragments/4322.removed.md b/newsfragments/4322.removed.md deleted file mode 100644 index 4d8f62e4aef..00000000000 --- a/newsfragments/4322.removed.md +++ /dev/null @@ -1 +0,0 @@ -Remove all functionality deprecated in PyO3 0.20. diff --git a/newsfragments/4323.removed.md b/newsfragments/4323.removed.md deleted file mode 100644 index c9d46f6a886..00000000000 --- a/newsfragments/4323.removed.md +++ /dev/null @@ -1 +0,0 @@ -Remove all functionality deprecated in PyO3 0.21. diff --git a/newsfragments/4347.changed.md b/newsfragments/4347.changed.md deleted file mode 100644 index e64ad2c6395..00000000000 --- a/newsfragments/4347.changed.md +++ /dev/null @@ -1 +0,0 @@ -Deprecate `PyLong` in favor of `PyInt`. diff --git a/newsfragments/4348.added.md b/newsfragments/4348.added.md deleted file mode 100644 index 57d3e415187..00000000000 --- a/newsfragments/4348.added.md +++ /dev/null @@ -1 +0,0 @@ -Implement `PartialEq` and `PartialEq` for `Bound<'py, PyFloat>`. \ No newline at end of file diff --git a/newsfragments/4351.added.md b/newsfragments/4351.added.md deleted file mode 100644 index f9276ae0d4f..00000000000 --- a/newsfragments/4351.added.md +++ /dev/null @@ -1 +0,0 @@ -Added `as_super` and `into_super` methods for `Bound`. \ No newline at end of file diff --git a/newsfragments/4370.removed.md b/newsfragments/4370.removed.md deleted file mode 100644 index d54c6a26601..00000000000 --- a/newsfragments/4370.removed.md +++ /dev/null @@ -1 +0,0 @@ -Deprecated PyUnicode in favour of PyString. diff --git a/newsfragments/4378.removed.md b/newsfragments/4378.removed.md deleted file mode 100644 index 3c43d46478d..00000000000 --- a/newsfragments/4378.removed.md +++ /dev/null @@ -1 +0,0 @@ -removed deprecated `gil-refs` feature diff --git a/newsfragments/4388.changed.md b/newsfragments/4388.changed.md deleted file mode 100644 index 6fa66449c9c..00000000000 --- a/newsfragments/4388.changed.md +++ /dev/null @@ -1 +0,0 @@ -Renamed `IntoPyDict::into_py_dict_bound` into `IntoPyDict::into_py_dict`. diff --git a/newsfragments/4389.fixed.md b/newsfragments/4389.fixed.md deleted file mode 100644 index 6702efd3a75..00000000000 --- a/newsfragments/4389.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix invalid library search path `lib_dir` when cross-compiling. diff --git a/newsfragments/4404.changed.md b/newsfragments/4404.changed.md deleted file mode 100644 index 728c45ae694..00000000000 --- a/newsfragments/4404.changed.md +++ /dev/null @@ -1 +0,0 @@ -`PyModule::from_code` now expects &CStr as arguments instead of `&str`. \ No newline at end of file diff --git a/newsfragments/4415.added.md b/newsfragments/4415.added.md deleted file mode 100644 index 51796b3c816..00000000000 --- a/newsfragments/4415.added.md +++ /dev/null @@ -1 +0,0 @@ -Add FFI definitions `PyCFunctionFast` and `PyCFunctionFastWithKeywords` diff --git a/newsfragments/4415.changed.md b/newsfragments/4415.changed.md deleted file mode 100644 index 47c5e8bfb6d..00000000000 --- a/newsfragments/4415.changed.md +++ /dev/null @@ -1 +0,0 @@ -Use "fastcall" Python calling convention for `#[pyfunction]`s when compiling on abi3 for Python 3.10 and up. diff --git a/newsfragments/4421.added.md b/newsfragments/4421.added.md deleted file mode 100644 index b0a85bea3ca..00000000000 --- a/newsfragments/4421.added.md +++ /dev/null @@ -1 +0,0 @@ -* Added bindings for PyMutex. diff --git a/newsfragments/4421.fixed.md b/newsfragments/4421.fixed.md deleted file mode 100644 index 075b1fa7b5a..00000000000 --- a/newsfragments/4421.fixed.md +++ /dev/null @@ -1 +0,0 @@ -* Updated FFI bindings for free-threaded CPython 3.13 ABI diff --git a/newsfragments/4434.changed.md b/newsfragments/4434.changed.md deleted file mode 100644 index f16513add1b..00000000000 --- a/newsfragments/4434.changed.md +++ /dev/null @@ -1,5 +0,0 @@ -* The `PyO3::ffi` bindings for the C `PyObject` struct no longer derive from - `Copy` and `Clone`. If you use the ffi directly you will need to remove `Copy` - and `Clone` from any derived types. Any cases where a PyObject struct was - copied or cloned directly likely indicates a bug, it is not safe to allocate - PyObject structs outside of the Python runtime. diff --git a/newsfragments/4435.changed.md b/newsfragments/4435.changed.md deleted file mode 100644 index 9de2b84df5e..00000000000 --- a/newsfragments/4435.changed.md +++ /dev/null @@ -1 +0,0 @@ -Reintroduced `Python::eval` and `Python::run` now take a `&CStr` instead of `&str`. \ No newline at end of file diff --git a/newsfragments/4439.changed.md b/newsfragments/4439.changed.md deleted file mode 100644 index 9cb01a4d2b8..00000000000 --- a/newsfragments/4439.changed.md +++ /dev/null @@ -1,3 +0,0 @@ -* Make `PyDict` iterator compatible with free-threaded build -* Added `PyDict::locked_for_each` method to iterate on free-threaded builds to prevent the dict being mutated during iteration -* Iterate over `dict.items()` when dict is subclassed from `PyDict` diff --git a/newsfragments/4441.changed.md b/newsfragments/4441.changed.md deleted file mode 100644 index 996b368807e..00000000000 --- a/newsfragments/4441.changed.md +++ /dev/null @@ -1 +0,0 @@ -Deprecate `IPowModulo`, `PyClassAttributeDef`, `PyGetterDef`, `PyMethodDef`, `PyMethodDefType`, and `PySetterDef` from PyO3's public API. diff --git a/newsfragments/4442.changed.md b/newsfragments/4442.changed.md deleted file mode 100644 index 44fbcbfe23c..00000000000 --- a/newsfragments/4442.changed.md +++ /dev/null @@ -1,2 +0,0 @@ -`IntoPyObject` impls for `Vec`, `&[u8]`, `[u8; N]`, `Cow<[u8]>` and `SmallVec<[u8; N]>` now -convert into `PyBytes` rather than `PyList`. \ No newline at end of file diff --git a/newsfragments/4447.added.md b/newsfragments/4447.added.md deleted file mode 100644 index a1e6b5eaa39..00000000000 --- a/newsfragments/4447.added.md +++ /dev/null @@ -1 +0,0 @@ -Add Python 3.13 FFI definitions `PyObject_GetOptionalAttr`, `PyObject_GetOptionalAttrString`, `PyObject_HasAttrWithError`, `PyObject_HasAttrStringWithError`, `Py_CONSTANT_*` constants, `Py_GetConstant`, `Py_GetConstantBorrowed`, and `PyType_GetModuleByDef`. diff --git a/newsfragments/4447.fixed.md b/newsfragments/4447.fixed.md deleted file mode 100644 index bfc92ae1d26..00000000000 --- a/newsfragments/4447.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix FFI definition `Py_Is` for PyPy on 3.10 to call the function defined by PyPy. diff --git a/newsfragments/4447.removed.md b/newsfragments/4447.removed.md deleted file mode 100644 index c7451866d83..00000000000 --- a/newsfragments/4447.removed.md +++ /dev/null @@ -1 +0,0 @@ -Remove private FFI definitions `_Py_IMMORTAL_REFCNT`, `_Py_IsImmortal`, `_Py_TPFLAGS_STATIC_BUILTIN`, `_Py_Dealloc`, `_Py_IncRef`, `_Py_DecRef`. diff --git a/newsfragments/4453.changed.md b/newsfragments/4453.changed.md deleted file mode 100644 index 58a1e0ffcbd..00000000000 --- a/newsfragments/4453.changed.md +++ /dev/null @@ -1 +0,0 @@ -Make subclassing a class that doesn't allow that a compile-time error instead of runtime \ No newline at end of file diff --git a/newsfragments/4477.added.md b/newsfragments/4477.added.md deleted file mode 100644 index d0f43f909d5..00000000000 --- a/newsfragments/4477.added.md +++ /dev/null @@ -1 +0,0 @@ -* Added bindings for the Python critical section API available on Python 3.13 and newer. diff --git a/newsfragments/4493.changed.md b/newsfragments/4493.changed.md deleted file mode 100644 index efff3b6fa6e..00000000000 --- a/newsfragments/4493.changed.md +++ /dev/null @@ -1 +0,0 @@ -`IntoPyDict::into_py_dict` is now fallible due to `IntoPyObject` migration. \ No newline at end of file diff --git a/newsfragments/4495.added.md b/newsfragments/4495.added.md deleted file mode 100644 index 2cbe2a85bbf..00000000000 --- a/newsfragments/4495.added.md +++ /dev/null @@ -1 +0,0 @@ -Added `IntoPyObject` derive macro \ No newline at end of file diff --git a/newsfragments/4497.changed.md b/newsfragments/4497.changed.md deleted file mode 100644 index 594b6d373e5..00000000000 --- a/newsfragments/4497.changed.md +++ /dev/null @@ -1 +0,0 @@ -The `abi3` feature will now override config files provided via `PYO3_BUILD_CONFIG`. diff --git a/newsfragments/4504.changed.md b/newsfragments/4504.changed.md deleted file mode 100644 index 94d056dcef9..00000000000 --- a/newsfragments/4504.changed.md +++ /dev/null @@ -1,2 +0,0 @@ -* The `GILProtected` struct is not available on the free-threaded build of - Python 3.13. diff --git a/newsfragments/4509.fixed.md b/newsfragments/4509.fixed.md deleted file mode 100644 index 3684b3e617d..00000000000 --- a/newsfragments/4509.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix compile failure when using `#[cfg]` attributes for simple enum variants. diff --git a/newsfragments/4512.changed.md b/newsfragments/4512.changed.md deleted file mode 100644 index 1e86689c5ae..00000000000 --- a/newsfragments/4512.changed.md +++ /dev/null @@ -1 +0,0 @@ -`GILOnceCell` is now thread-safe for the Python 3.13 freethreaded builds. diff --git a/newsfragments/4520.added.md b/newsfragments/4520.added.md deleted file mode 100644 index d9952934de5..00000000000 --- a/newsfragments/4520.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `Borrowed::as_ptr`. diff --git a/newsfragments/4521.removed.md b/newsfragments/4521.removed.md deleted file mode 100644 index 3ef52c5515d..00000000000 --- a/newsfragments/4521.removed.md +++ /dev/null @@ -1 +0,0 @@ -Remove private FFI definitions `_Py_c_sum`, `_Py_c_diff`, `_Py_c_neg`, `_Py_c_prod`, `_Py_c_quot`, `_Py_c_pow`, `_Py_c_abs`. diff --git a/newsfragments/4528.removed.md b/newsfragments/4528.removed.md deleted file mode 100644 index 79c66b98818..00000000000 --- a/newsfragments/4528.removed.md +++ /dev/null @@ -1,7 +0,0 @@ -* Removed the `get_object_borrowed`, `upgrade_borrowed`, `upgrade_borrowed_as`, -`upgrade_borrowed_as_unchecked`, `upgrade_borrowed_as_exact` methods of -`PyWeakref` and `PyWeakrefProxy`. These returned borrowed references to weakly -referenced data, and in principle if the GIL is released the last strong -reference could be released, allowing a possible use-after-free error. If you -are using these functions, you should change to the equivalent function that -returns a `Bound<'py, T>` reference. diff --git a/newsfragments/4529.added.md b/newsfragments/4529.added.md deleted file mode 100644 index 8a82a942eb6..00000000000 --- a/newsfragments/4529.added.md +++ /dev/null @@ -1 +0,0 @@ -* Added FFI bindings for `PyImport_AddModuleRef`. diff --git a/newsfragments/4534.changed.md b/newsfragments/4534.changed.md deleted file mode 100644 index c6ff877976d..00000000000 --- a/newsfragments/4534.changed.md +++ /dev/null @@ -1,3 +0,0 @@ -* Updated the FFI bindings for functions and struct fields that have been - deprecated or removed. You may see new deprecation warnings if you are using - functions or fields exposed by the C API that are deprecated. diff --git a/newsfragments/4534.removed.md b/newsfragments/4534.removed.md deleted file mode 100644 index 3ecd27f5eb9..00000000000 --- a/newsfragments/4534.removed.md +++ /dev/null @@ -1 +0,0 @@ -* Removed the bindings for the private function `_PyErr_ChainExceptions`. diff --git a/newsfragments/4539.removed.md b/newsfragments/4539.removed.md deleted file mode 100644 index dd1da0169b6..00000000000 --- a/newsfragments/4539.removed.md +++ /dev/null @@ -1,3 +0,0 @@ -* `PyListMethods::get_item_unchecked` is disabled on the free-threaded build. - It relies on accessing list internals without any locking and is not - thread-safe without the GIL to synchronize access. diff --git a/newsfragments/4542.changed.md b/newsfragments/4542.changed.md deleted file mode 100644 index 1f983a5e344..00000000000 --- a/newsfragments/4542.changed.md +++ /dev/null @@ -1 +0,0 @@ -Change `GILOnceCell::get_or_try_init_type_ref` to `GILOnceCell::import` and make it public API. diff --git a/newsfragments/4544.changed.md b/newsfragments/4544.changed.md deleted file mode 100644 index c94758a770d..00000000000 --- a/newsfragments/4544.changed.md +++ /dev/null @@ -1,2 +0,0 @@ -* Refactored runtime borrow checking for mutable pyclass instances - to be thread-safe when the GIL is disabled. diff --git a/newsfragments/4553.fixed.md b/newsfragments/4553.fixed.md deleted file mode 100644 index c6714bfce95..00000000000 --- a/newsfragments/4553.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Deprecate `PyAnyMethods.iter` and replace it with `PyAnyMethods.try_iter` diff --git a/newsfragments/4566.changed.md b/newsfragments/4566.changed.md deleted file mode 100644 index 2e9db108df1..00000000000 --- a/newsfragments/4566.changed.md +++ /dev/null @@ -1,5 +0,0 @@ -* The `pyclass` macro now creates a rust type that is `Sync` by default. If you - would like to opt out of this, annotate your class with - `pyclass(unsendable)`. See the migraiton guide entry (INSERT GUIDE LINK HERE) - for more information on updating to accommadate this change. - diff --git a/newsfragments/4567.fixed.md b/newsfragments/4567.fixed.md deleted file mode 100644 index 24507b81b41..00000000000 --- a/newsfragments/4567.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix compiler warning about non snake case method names inside `#[pymethods]` generated code. diff --git a/newsfragments/4577.added.md b/newsfragments/4577.added.md deleted file mode 100644 index 71858564fe5..00000000000 --- a/newsfragments/4577.added.md +++ /dev/null @@ -1 +0,0 @@ -* Added a guide page for free-threaded Python. diff --git a/newsfragments/4580.changed.md b/newsfragments/4580.changed.md deleted file mode 100644 index 72b838d4055..00000000000 --- a/newsfragments/4580.changed.md +++ /dev/null @@ -1 +0,0 @@ -`PyList::new` and `PyTuple::new` are now fallible due to `IntoPyObject` migration. \ No newline at end of file diff --git a/newsfragments/4582.packaging.md b/newsfragments/4582.packaging.md deleted file mode 100644 index 524ee02e017..00000000000 --- a/newsfragments/4582.packaging.md +++ /dev/null @@ -1 +0,0 @@ -Drop support for PyPy 3.7 and 3.8. diff --git a/newsfragments/4587.added.md b/newsfragments/4587.added.md deleted file mode 100644 index 4ccd4cd1c5e..00000000000 --- a/newsfragments/4587.added.md +++ /dev/null @@ -1,2 +0,0 @@ -* Added `with_critical_section`, a safe wrapper around the Python Critical - Section API added in Python 3.13 for the free-threaded build. diff --git a/newsfragments/4588.added.md b/newsfragments/4588.added.md deleted file mode 100644 index 42b5b8e219a..00000000000 --- a/newsfragments/4588.added.md +++ /dev/null @@ -1,3 +0,0 @@ -* It is now possible to declare that a module supports the free-threaded build - by either calling `PyModule::gil_used` or passing - `gil_used = false` as a parameter to the `pymodule` proc macro. diff --git a/newsfragments/4595.changed.md b/newsfragments/4595.changed.md deleted file mode 100644 index e8b7eba5cbf..00000000000 --- a/newsfragments/4595.changed.md +++ /dev/null @@ -1,2 +0,0 @@ -- `PyErr::matches` is now fallible due to `IntoPyObject` migration. -- deprecate `ToPyObject` in favor of `IntoPyObject` \ No newline at end of file diff --git a/newsfragments/4597.changed.md b/newsfragments/4597.changed.md deleted file mode 100644 index 7ec760451bd..00000000000 --- a/newsfragments/4597.changed.md +++ /dev/null @@ -1 +0,0 @@ -Deprecate `PyWeakrefMethods::get_option`. diff --git a/newsfragments/4598.changed.md b/newsfragments/4598.changed.md deleted file mode 100644 index a8dfc040813..00000000000 --- a/newsfragments/4598.changed.md +++ /dev/null @@ -1 +0,0 @@ -Seal `PyWeakrefMethods` trait. diff --git a/newsfragments/4604.packaging.md b/newsfragments/4604.packaging.md deleted file mode 100644 index c6dd6a60cf9..00000000000 --- a/newsfragments/4604.packaging.md +++ /dev/null @@ -1 +0,0 @@ -Extend range of supported versions of `hashbrown` optional dependency to include version 0.15 diff --git a/newsfragments/4606.changed.md b/newsfragments/4606.changed.md deleted file mode 100644 index 173252992c1..00000000000 --- a/newsfragments/4606.changed.md +++ /dev/null @@ -1 +0,0 @@ -Seal `PyAddToModule` trait. diff --git a/newsfragments/4611.changed.md b/newsfragments/4611.changed.md deleted file mode 100644 index 950de4305ea..00000000000 --- a/newsfragments/4611.changed.md +++ /dev/null @@ -1 +0,0 @@ -`PyNativeTypeInitializer` and `PyObjectInit` are moved into `impl_`. `PyObjectInit` is now a Sealed trait diff --git a/newsfragments/4617.packaging.md b/newsfragments/4617.packaging.md deleted file mode 100644 index a9a0a41a8d7..00000000000 --- a/newsfragments/4617.packaging.md +++ /dev/null @@ -1,13 +0,0 @@ -deps: update dependencies - -- eyre: 0.4 => 0.6.8 -- hashbrown: 0.9 => 0.14.5 -- indexmap: 1.6 => 2.5.0 -- num-complex: 0.2 => 0.4.6 -- chrono-tz: 0.6 => 0.10 - -Eyre min-version is limited to 0.6.8 to be compatible with MSRV 1.63 -Hashbrown min-version is limited to 0.14.5: - https://github.com/rust-lang/hashbrown/issues/574 -Indexmap min-version is limited to 2.5.0 to be compatible with hashbrown 0.14.5 - diff --git a/newsfragments/4618.changed.md b/newsfragments/4618.changed.md deleted file mode 100644 index f3e9dee773d..00000000000 --- a/newsfragments/4618.changed.md +++ /dev/null @@ -1 +0,0 @@ -deprecate `IntoPy` in favor of `IntoPyObject` \ No newline at end of file diff --git a/newsfragments/4623.fixed.md b/newsfragments/4623.fixed.md deleted file mode 100644 index 18fd8460b44..00000000000 --- a/newsfragments/4623.fixed.md +++ /dev/null @@ -1 +0,0 @@ -* The FFI wrapper for the PyDateTime_IMPORT macro is now thread-safe. diff --git a/newsfragments/4634.added.md b/newsfragments/4634.added.md deleted file mode 100644 index 886e56911bd..00000000000 --- a/newsfragments/4634.added.md +++ /dev/null @@ -1 +0,0 @@ -Add FFI definition `PyDateTime_CAPSULE_NAME`. diff --git a/newsfragments/4644.added.md b/newsfragments/4644.added.md deleted file mode 100644 index 4b4a277abf8..00000000000 --- a/newsfragments/4644.added.md +++ /dev/null @@ -1 +0,0 @@ -New `PyMappingProxy` struct corresponing to the `mappingproxy` class in Python. diff --git a/newsfragments/4645.fixed.md b/newsfragments/4645.fixed.md deleted file mode 100644 index ec4352d6693..00000000000 --- a/newsfragments/4645.fixed.md +++ /dev/null @@ -1 +0,0 @@ -fix `#[derive(FromPyObject)]` expansion on generic with trait bounds \ No newline at end of file diff --git a/newsfragments/4654.fixed.md b/newsfragments/4654.fixed.md deleted file mode 100644 index 5e470178b55..00000000000 --- a/newsfragments/4654.fixed.md +++ /dev/null @@ -1 +0,0 @@ -fix compile error for `#[classmethod]`/`#[staticmethod]` on magic methods \ No newline at end of file diff --git a/newsfragments/4655.changed.md b/newsfragments/4655.changed.md deleted file mode 100644 index 544fac4973f..00000000000 --- a/newsfragments/4655.changed.md +++ /dev/null @@ -1 +0,0 @@ -Eagerly normalize exceptions in `PyErr::take()` and `PyErr::fetch()` on Python 3.11 and older. diff --git a/newsfragments/4657.changed.md b/newsfragments/4657.changed.md deleted file mode 100644 index 38018916001..00000000000 --- a/newsfragments/4657.changed.md +++ /dev/null @@ -1 +0,0 @@ -`IntoPy::type_output` moved to `IntoPyObject::type_output` \ No newline at end of file diff --git a/newsfragments/4661.changed.md b/newsfragments/4661.changed.md deleted file mode 100644 index 10b521fc605..00000000000 --- a/newsfragments/4661.changed.md +++ /dev/null @@ -1 +0,0 @@ -`PyMapping`'s `keys`, `values` and `items` methods return `PyList` instead of `PySequence`. \ No newline at end of file diff --git a/newsfragments/4665.changed.md b/newsfragments/4665.changed.md deleted file mode 100644 index 2ebbf0c86b4..00000000000 --- a/newsfragments/4665.changed.md +++ /dev/null @@ -1,2 +0,0 @@ -* The `sequential` and `string-sum` examples have moved into a new `examples` - directory in the `pyo3-ffi` crate. diff --git a/newsfragments/4667.added.md b/newsfragments/4667.added.md deleted file mode 100644 index fc2a914607e..00000000000 --- a/newsfragments/4667.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `PyList_Extend` & `PyList_Clear` to pyo3-ffi diff --git a/newsfragments/4671.fixed.md b/newsfragments/4671.fixed.md deleted file mode 100644 index 9b0cd9d8f0c..00000000000 --- a/newsfragments/4671.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Make `PyErr` internals thread-safe. diff --git a/newsfragments/4674.fixed.md b/newsfragments/4674.fixed.md deleted file mode 100644 index 6245a6f734a..00000000000 --- a/newsfragments/4674.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixes unintentional `unsafe_op_in_unsafe_fn` trigger by adjusting macro hygiene. \ No newline at end of file diff --git a/newsfragments/4676.added.md b/newsfragments/4676.added.md deleted file mode 100644 index 730b2297d91..00000000000 --- a/newsfragments/4676.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `pyo3::sync::OnceExt` and `pyo3::sync::OnceLockExt` traits. diff --git a/newsfragments/4692.fixed.md b/newsfragments/4692.fixed.md deleted file mode 100644 index a5dc6d098cf..00000000000 --- a/newsfragments/4692.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix incorrect deprecation warning for `#[pyclass] enum`s with custom `__eq__` implementation. diff --git a/newsfragments/4694.fixed.md b/newsfragments/4694.fixed.md deleted file mode 100644 index 80df8802cd4..00000000000 --- a/newsfragments/4694.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Complex enums now allow field types that either implement `IntoPyObject` by reference or by value together with `Clone`. This makes `Py` available as field type. \ No newline at end of file diff --git a/newsfragments/4705.fixed.md b/newsfragments/4705.fixed.md deleted file mode 100644 index b7f49d40b0d..00000000000 --- a/newsfragments/4705.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix `non_upper_case_globals` lint firing for generated `__match_args__` on complex enums. diff --git a/pyo3-build-config/Cargo.toml b/pyo3-build-config/Cargo.toml index a5549df3ecb..f760152a087 100644 --- a/pyo3-build-config/Cargo.toml +++ b/pyo3-build-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-build-config" -version = "0.23.0-dev" +version = "0.23.0" description = "Build configuration for the PyO3 ecosystem" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] diff --git a/pyo3-ffi/Cargo.toml b/pyo3-ffi/Cargo.toml index 0e58197bbfd..74f23aa5429 100644 --- a/pyo3-ffi/Cargo.toml +++ b/pyo3-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-ffi" -version = "0.23.0-dev" +version = "0.23.0" description = "Python-API bindings for the PyO3 ecosystem" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -41,7 +41,7 @@ generate-import-lib = ["pyo3-build-config/python3-dll-a"] paste = "1" [build-dependencies] -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.23.0-dev", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.23.0", features = ["resolve-config"] } [lints] workspace = true diff --git a/pyo3-macros-backend/Cargo.toml b/pyo3-macros-backend/Cargo.toml index 337d19f5653..ec74aa07640 100644 --- a/pyo3-macros-backend/Cargo.toml +++ b/pyo3-macros-backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros-backend" -version = "0.23.0-dev" +version = "0.23.0" description = "Code generation for PyO3 package" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -16,7 +16,7 @@ edition = "2021" [dependencies] heck = "0.5" proc-macro2 = { version = "1.0.60", default-features = false } -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.23.0-dev", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.23.0", features = ["resolve-config"] } quote = { version = "1", default-features = false } [dependencies.syn] @@ -25,7 +25,7 @@ default-features = false features = ["derive", "parsing", "printing", "clone-impls", "full", "extra-traits"] [build-dependencies] -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.23.0-dev" } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.23.0" } [lints] workspace = true diff --git a/pyo3-macros/Cargo.toml b/pyo3-macros/Cargo.toml index c86afd8e2d2..4fb52ea1e69 100644 --- a/pyo3-macros/Cargo.toml +++ b/pyo3-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros" -version = "0.23.0-dev" +version = "0.23.0" description = "Proc macros for PyO3 package" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -21,7 +21,7 @@ experimental-async = ["pyo3-macros-backend/experimental-async"] proc-macro2 = { version = "1.0.60", default-features = false } quote = "1" syn = { version = "2", features = ["full", "extra-traits"] } -pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.23.0-dev" } +pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.23.0" } [lints] workspace = true diff --git a/pyproject.toml b/pyproject.toml index 0b58bb9a71b..45d538a669a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [tool.towncrier] filename = "CHANGELOG.md" -version = "0.23.0-dev" +version = "0.23.0" start_string = "\n" template = ".towncrier.template.md" title_format = "## [{version}] - {project_date}" diff --git a/tests/ui/reject_generics.stderr b/tests/ui/reject_generics.stderr index 78c3d00e624..1718c8adeae 100644 --- a/tests/ui/reject_generics.stderr +++ b/tests/ui/reject_generics.stderr @@ -1,10 +1,10 @@ -error: #[pyclass] cannot have generic parameters. For an explanation, see https://pyo3.rs/v0.23.0-dev/class.html#no-generic-parameters +error: #[pyclass] cannot have generic parameters. For an explanation, see https://pyo3.rs/v0.23.0/class.html#no-generic-parameters --> tests/ui/reject_generics.rs:4:25 | 4 | struct ClassWithGenerics { | ^ -error: #[pyclass] cannot have lifetime parameters. For an explanation, see https://pyo3.rs/v0.23.0-dev/class.html#no-lifetime-parameters +error: #[pyclass] cannot have lifetime parameters. For an explanation, see https://pyo3.rs/v0.23.0/class.html#no-lifetime-parameters --> tests/ui/reject_generics.rs:9:27 | 9 | struct ClassWithLifetimes<'a> {