diff --git a/CHANGELOG.md b/CHANGELOG.md index fa9c80f7f2b..b13c92caef9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,65 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h +## [0.25.0] - 2025-05-14 + +### Packaging + +- Support Python 3.14.0b1. [#4811](https://github.com/PyO3/pyo3/pull/4811) +- Bump supported GraalPy version to 24.2. [#5116](https://github.com/PyO3/pyo3/pull/5116) +- Add optional `bigdecimal` dependency to add conversions for `bigdecimal::BigDecimal`. [#5011](https://github.com/PyO3/pyo3/pull/5011) +- Add optional `time` dependency to add conversions for `time` types. [#5057](https://github.com/PyO3/pyo3/pull/5057) +- Remove `cfg-if` dependency. [#5110](https://github.com/PyO3/pyo3/pull/5110) +- Add optional `ordered_float` dependency to add conversions for `ordered_float::NotNan` and `ordered_float::OrderedFloat`. [#5114](https://github.com/PyO3/pyo3/pull/5114) + +### Added + +- Add initial type stub generation to the `experimental-inspect` feature. [#3977](https://github.com/PyO3/pyo3/pull/3977) +- Add `#[pyclass(generic)]` option to support runtime generic typing. [#4926](https://github.com/PyO3/pyo3/pull/4926) +- Implement `OnceExt` & `MutexExt` for `parking_lot` & `lock_api`. Use the new extension traits by enabling the `arc_lock`, `lock_api`, or `parking_lot` cargo features. [#5044](https://github.com/PyO3/pyo3/pull/5044) +- Implement `From`/`Into` for `Borrowed` -> `Py`. [#5054](https://github.com/PyO3/pyo3/pull/5054) +- Add `PyTzInfo` constructors. [#5055](https://github.com/PyO3/pyo3/pull/5055) +- Add FFI definition `PY_INVALID_STACK_EFFECT`. [#5064](https://github.com/PyO3/pyo3/pull/5064) +- Implement `AsRef>` for `Py`, `Bound` and `Borrowed`. [#5071](https://github.com/PyO3/pyo3/pull/5071) +- Add FFI definition `PyModule_Add` and `compat::PyModule_Add`. [#5085](https://github.com/PyO3/pyo3/pull/5085) +- Add FFI definitions `Py_HashBuffer`, `Py_HashPointer`, and `PyObject_GenericHash`. [#5086](https://github.com/PyO3/pyo3/pull/5086) +- Support `#[pymodule_export]` on `const` items in declarative modules. [#5096](https://github.com/PyO3/pyo3/pull/5096) +- Add `#[pyclass(immutable_type)]` option (on Python 3.14+ with `abi3`, or 3.10+ otherwise) for immutable type objects. [#5101](https://github.com/PyO3/pyo3/pull/5101) +- Support `#[pyo3(rename_all)]` support on `#[derive(IntoPyObject)]`. [#5112](https://github.com/PyO3/pyo3/pull/5112) +- Add `PyRange` wrapper. [#5117](https://github.com/PyO3/pyo3/pull/5117) + +### Changed + +- Enable use of `datetime` types with `abi3` feature enabled. [#4970](https://github.com/PyO3/pyo3/pull/4970) +- Deprecate `timezone_utc` in favor of `PyTzInfo::utc`. [#5055](https://github.com/PyO3/pyo3/pull/5055) +- Reduce visibility of some CPython implementation details: [#5064](https://github.com/PyO3/pyo3/pull/5064) + - The FFI definition `PyCodeObject` is now an opaque struct on all Python versions. + - The FFI definition `PyFutureFeatures` is now only defined up until Python 3.10 (it was present in CPython headers but unused in 3.11 and 3.12). +- Change `PyAnyMethods::is` to take `other: &Bound`. [#5071](https://github.com/PyO3/pyo3/pull/5071) +- Change `Py::is` to take `other: &Py`. [#5071](https://github.com/PyO3/pyo3/pull/5071) +- Change `PyVisit::call` to take `T: Into>>`. [#5071](https://github.com/PyO3/pyo3/pull/5071) +- Expose `PyDateTime_DATE_GET_TZINFO` and `PyDateTime_TIME_GET_TZINFO` on PyPy 3.10 and later. [#5079](https://github.com/PyO3/pyo3/pull/5079) +- Add `#[track_caller]` to `with_gil` and `with_gil_unchecked`. [#5109](https://github.com/PyO3/pyo3/pull/5109) +- Use `std::thread::park()` instead of `libc::pause()` or `sleep(9999999)`. [#5115](https://github.com/PyO3/pyo3/pull/5115) + +### Removed + +- Remove all functionality deprecated in PyO3 0.23. [#4982](https://github.com/PyO3/pyo3/pull/4982) +- Remove deprecated `IntoPy` and `ToPyObject` traits. [#5010](https://github.com/PyO3/pyo3/pull/5010) +- Remove private types from `pyo3-ffi` (i.e. starting with `_Py`) which are not referenced by public APIs: `_PyLocalMonitors`, `_Py_GlobalMonitors`, `_PyCoCached`, `_PyCoLineInstrumentationData`, `_PyCoMonitoringData`, `_PyCompilerSrcLocation`, `_PyErr_StackItem`. [#5064](https://github.com/PyO3/pyo3/pull/5064) +- Remove FFI definition `PyCode_GetNumFree` (PyO3 cannot support it due to knowledge of the code object). [#5064](https://github.com/PyO3/pyo3/pull/5064) +- Remove `AsPyPointer` trait. [#5071](https://github.com/PyO3/pyo3/pull/5071) +- Remove support for the deprecated string form of `from_py_with`. [#5097](https://github.com/PyO3/pyo3/pull/5097) +- Remove FFI definitions of private static variables: `_PyMethodWrapper_Type`, `_PyCoroWrapper_Type`, `_PyImport_FrozenBootstrap`, `_PyImport_FrozenStdlib`, `_PyImport_FrozenTest`, `_PyManagedBuffer_Type`, `_PySet_Dummy`, `_PyWeakref_ProxyType`, and `_PyWeakref_CallableProxyType`. [#5105](https://github.com/PyO3/pyo3/pull/5105) +- Remove FFI definitions `PyASCIIObjectState`, `PyUnicode_IS_ASCII`, `PyUnicode_IS_COMPACT`, and `PyUnicode_IS_COMPACT_ASCII` on Python 3.14 and newer. [#5133](https://github.com/PyO3/pyo3/pull/5133) + +### Fixed + +- Correctly pick up the shared state for conda-based Python installation when reading information from sysconfigdata. [#5037](https://github.com/PyO3/pyo3/pull/5037) +- Fix compile failure with `#[derive(IntoPyObject, FromPyObject)]` when using `#[pyo3()]` options recognised by only one of the two derives. [#5070](https://github.com/PyO3/pyo3/pull/5070) +- Fix various compile errors from missing FFI definitions using certain feature combinations on PyPy and GraalPy. [#5091](https://github.com/PyO3/pyo3/pull/5091) +- Fallback on `backports.zoneinfo` for python <3.9 when converting timezones into python. [#5120](https://github.com/PyO3/pyo3/pull/5120) + ## [0.24.2] - 2025-04-21 ### Fixed @@ -2139,7 +2198,8 @@ Yanked - Initial release -[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.24.2...HEAD +[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.25.0...HEAD +[0.25.0]: https://github.com/pyo3/pyo3/compare/v0.24.2...v0.25.0 [0.24.2]: https://github.com/pyo3/pyo3/compare/v0.24.1...v0.24.2 [0.24.1]: https://github.com/pyo3/pyo3/compare/v0.24.0...v0.24.1 [0.24.0]: https://github.com/pyo3/pyo3/compare/v0.23.5...v0.24.0 diff --git a/Cargo.toml b/Cargo.toml index c17c9bd4dbb..55e4a29170c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3" -version = "0.25.0-dev" +version = "0.25.0" description = "Bindings to Python interpreter" authors = ["PyO3 Project and Contributors "] readme = "README.md" @@ -20,10 +20,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.25.0-dev" } +pyo3-ffi = { path = "pyo3-ffi", version = "=0.25.0" } # support crates for macros feature -pyo3-macros = { path = "pyo3-macros", version = "=0.25.0-dev", optional = true } +pyo3-macros = { path = "pyo3-macros", version = "=0.25.0", optional = true } indoc = { version = "2.0.1", optional = true } unindent = { version = "0.2.1", optional = true } @@ -73,7 +73,7 @@ uuid = { version = "1.10.0", features = ["v4"] } parking_lot = { version = "0.12.3", features = ["arc_lock"]} [build-dependencies] -pyo3-build-config = { path = "pyo3-build-config", version = "=0.25.0-dev", features = ["resolve-config"] } +pyo3-build-config = { path = "pyo3-build-config", version = "=0.25.0", features = ["resolve-config"] } [features] default = ["macros"] diff --git a/README.md b/README.md index 8b5c5dd085b..47a74ec84a3 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ name = "string_sum" crate-type = ["cdylib"] [dependencies] -pyo3 = { version = "0.24.2", features = ["extension-module"] } +pyo3 = { version = "0.25.0", features = ["extension-module"] } ``` **`src/lib.rs`** @@ -140,7 +140,7 @@ Start a new project with `cargo new` and add `pyo3` to the `Cargo.toml` like th ```toml [dependencies.pyo3] -version = "0.24.2" +version = "0.25.0" features = ["auto-initialize"] ``` diff --git a/examples/decorator/.template/pre-script.rhai b/examples/decorator/.template/pre-script.rhai index eb613152e8f..80ebe3ce006 100644 --- a/examples/decorator/.template/pre-script.rhai +++ b/examples/decorator/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.24.2"); +variable::set("PYO3_VERSION", "0.25.0"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/pyproject.toml", "pyproject.toml"); file::delete(".template"); diff --git a/examples/maturin-starter/.template/pre-script.rhai b/examples/maturin-starter/.template/pre-script.rhai index eb613152e8f..80ebe3ce006 100644 --- a/examples/maturin-starter/.template/pre-script.rhai +++ b/examples/maturin-starter/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.24.2"); +variable::set("PYO3_VERSION", "0.25.0"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/pyproject.toml", "pyproject.toml"); file::delete(".template"); diff --git a/examples/plugin/.template/pre-script.rhai b/examples/plugin/.template/pre-script.rhai index b65bf19a654..2a21f6b2e53 100644 --- a/examples/plugin/.template/pre-script.rhai +++ b/examples/plugin/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.24.2"); +variable::set("PYO3_VERSION", "0.25.0"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/plugin_api/Cargo.toml", "plugin_api/Cargo.toml"); file::delete(".template"); diff --git a/examples/setuptools-rust-starter/.template/pre-script.rhai b/examples/setuptools-rust-starter/.template/pre-script.rhai index 854b4662940..92eeabb3ea8 100644 --- a/examples/setuptools-rust-starter/.template/pre-script.rhai +++ b/examples/setuptools-rust-starter/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.24.2"); +variable::set("PYO3_VERSION", "0.25.0"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/setup.cfg", "setup.cfg"); file::delete(".template"); diff --git a/examples/word-count/.template/pre-script.rhai b/examples/word-count/.template/pre-script.rhai index eb613152e8f..80ebe3ce006 100644 --- a/examples/word-count/.template/pre-script.rhai +++ b/examples/word-count/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.24.2"); +variable::set("PYO3_VERSION", "0.25.0"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/pyproject.toml", "pyproject.toml"); file::delete(".template"); diff --git a/newsfragments/3977.added.md b/newsfragments/3977.added.md deleted file mode 100644 index 58f116cd837..00000000000 --- a/newsfragments/3977.added.md +++ /dev/null @@ -1 +0,0 @@ -Basic introspection and stub generation based on metadata embedded in produced cdylib. \ No newline at end of file diff --git a/newsfragments/4811.fixed.md b/newsfragments/4811.fixed.md deleted file mode 100644 index cad2a26146b..00000000000 --- a/newsfragments/4811.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Bump supported cpython version to 3.14 for testing diff --git a/newsfragments/4926.added.md b/newsfragments/4926.added.md deleted file mode 100644 index a81a4155358..00000000000 --- a/newsfragments/4926.added.md +++ /dev/null @@ -1,4 +0,0 @@ -Introduced a new optional parameter with `#[pyclass(generic)]`. This new -parameter makes classes support generic typing at the runtime following -[PEP 560](https://peps.python.org/pep-0560/). It is an alternative -to inheriting from [typing.Generic](https://docs.python.org/3/library/typing.html#typing.Generic). \ No newline at end of file diff --git a/newsfragments/4970.changed.md b/newsfragments/4970.changed.md deleted file mode 100644 index 7ea1b6ae0cd..00000000000 --- a/newsfragments/4970.changed.md +++ /dev/null @@ -1 +0,0 @@ -- Make `datetime` rust wrappers compatible with `abi3` feature diff --git a/newsfragments/4982.removed.md b/newsfragments/4982.removed.md deleted file mode 100644 index 61f9dedbc48..00000000000 --- a/newsfragments/4982.removed.md +++ /dev/null @@ -1 +0,0 @@ -Remove all functionality deprecated in PyO3 0.23. diff --git a/newsfragments/5010.removed.md b/newsfragments/5010.removed.md deleted file mode 100644 index 9b42e682154..00000000000 --- a/newsfragments/5010.removed.md +++ /dev/null @@ -1 +0,0 @@ -Remove deprecated `IntoPy` and `ToPyObject` traits \ No newline at end of file diff --git a/newsfragments/5011.added.md b/newsfragments/5011.added.md deleted file mode 100644 index 741a25b3707..00000000000 --- a/newsfragments/5011.added.md +++ /dev/null @@ -1 +0,0 @@ -Added conversion support for `bigdecimal::BigDecimal` to and from python `Decimal` type \ No newline at end of file diff --git a/newsfragments/5037.fixed.md b/newsfragments/5037.fixed.md deleted file mode 100644 index 770a136f4f1..00000000000 --- a/newsfragments/5037.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Ensure we correctly pick up the shared state for conda-based Python installation when reading information from sysconfigdata. diff --git a/newsfragments/5044.added.md b/newsfragments/5044.added.md deleted file mode 100644 index c6898f277f4..00000000000 --- a/newsfragments/5044.added.md +++ /dev/null @@ -1 +0,0 @@ -Implement `OnceExt` & `MutexExt` for `parking_lot` & `lock_api`. Use the new extension traits by enabling the `arc_lock`, `lock_api`, or `parking_lot` cargo features. diff --git a/newsfragments/5054.added.md b/newsfragments/5054.added.md deleted file mode 100644 index 1400624a577..00000000000 --- a/newsfragments/5054.added.md +++ /dev/null @@ -1 +0,0 @@ -Implement `From`/`Into` for `Borrowed` -> `Py` diff --git a/newsfragments/5055.added.md b/newsfragments/5055.added.md deleted file mode 100644 index 75f013f2bb7..00000000000 --- a/newsfragments/5055.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `PyTzInfo` constructors diff --git a/newsfragments/5055.changed.md b/newsfragments/5055.changed.md deleted file mode 100644 index 1088f0c92ec..00000000000 --- a/newsfragments/5055.changed.md +++ /dev/null @@ -1 +0,0 @@ -Deprecated `timezone_utc` in favor of `PyTzInfo::utc` diff --git a/newsfragments/5057.added.md b/newsfragments/5057.added.md deleted file mode 100644 index 0bfcfaa9d10..00000000000 --- a/newsfragments/5057.added.md +++ /dev/null @@ -1 +0,0 @@ -Integrate `time` crate into PyO3 \ No newline at end of file diff --git a/newsfragments/5064.added.md b/newsfragments/5064.added.md deleted file mode 100644 index 21e2cce6430..00000000000 --- a/newsfragments/5064.added.md +++ /dev/null @@ -1 +0,0 @@ -Add FFI definition `PY_INVALID_STACK_EFFECT`. diff --git a/newsfragments/5064.changed.md b/newsfragments/5064.changed.md deleted file mode 100644 index 0ca3ad7d542..00000000000 --- a/newsfragments/5064.changed.md +++ /dev/null @@ -1,3 +0,0 @@ -Reduce visibility of some CPython implementation details: -- The FFI definition `PyCodeObject` is now an opaque struct on all Python versions. -- The FFI definition `PyFutureFeatures` is now only defined up until Python 3.10 (it was present in CPython headers but unused in 3.11 and 3.12). diff --git a/newsfragments/5064.removed.md b/newsfragments/5064.removed.md deleted file mode 100644 index f1a04a78aa7..00000000000 --- a/newsfragments/5064.removed.md +++ /dev/null @@ -1,2 +0,0 @@ -Remove private types from `pyo3-ffi` (i.e. starting with `_Py`) which are not referenced by public APIs: `_PyLocalMonitors`, `_Py_GlobalMonitors`, `_PyCoCached`, `_PyCoLineInstrumentationData`, `_PyCoMonitoringData`, `_PyCompilerSrcLocation`, `_PyErr_StackItem`. -Remove FFI definition `PyCode_GetNumFree` (PyO3 cannot support it due to knowledge of the code object). diff --git a/newsfragments/5070.fixed.md b/newsfragments/5070.fixed.md deleted file mode 100644 index 813bd7e0c4c..00000000000 --- a/newsfragments/5070.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix compile failure with `#[derive(IntoPyObject, FromPyObject)]` when using `#[pyo3()]` options recognised by only one of the two derives. \ No newline at end of file diff --git a/newsfragments/5071.added.md b/newsfragments/5071.added.md deleted file mode 100644 index 96ae6761c4a..00000000000 --- a/newsfragments/5071.added.md +++ /dev/null @@ -1,3 +0,0 @@ -- `AsRef> for Py` -- `AsRef> for Bound` -- `AsRef> for Borrowed` \ No newline at end of file diff --git a/newsfragments/5071.changed.md b/newsfragments/5071.changed.md deleted file mode 100644 index 0cd2f175b83..00000000000 --- a/newsfragments/5071.changed.md +++ /dev/null @@ -1,3 +0,0 @@ -- `PyAnyMethods::is` now takes `other: &Bound` -- `Py::is` now takes `other: &Py` -- `PyVisit::call` now takes `T: Into>>` \ No newline at end of file diff --git a/newsfragments/5071.removed.md b/newsfragments/5071.removed.md deleted file mode 100644 index 2d037b74274..00000000000 --- a/newsfragments/5071.removed.md +++ /dev/null @@ -1 +0,0 @@ -removed `AsPyPointer` trait \ No newline at end of file diff --git a/newsfragments/5079.changed.md b/newsfragments/5079.changed.md deleted file mode 100644 index c5321466994..00000000000 --- a/newsfragments/5079.changed.md +++ /dev/null @@ -1 +0,0 @@ -Expose `PyDateTime_DATE_GET_TZINFO` and `PyDateTime_TIME_GET_TZINFO` on PyPy 3.10 and later diff --git a/newsfragments/5085.added.md b/newsfragments/5085.added.md deleted file mode 100644 index b11570327cf..00000000000 --- a/newsfragments/5085.added.md +++ /dev/null @@ -1 +0,0 @@ -add `PyModule_Add` to `pyo3-ffi` diff --git a/newsfragments/5086.added.md b/newsfragments/5086.added.md deleted file mode 100644 index b79e62d77fc..00000000000 --- a/newsfragments/5086.added.md +++ /dev/null @@ -1,3 +0,0 @@ -- add `Py_HashBuffer` to `pyo3-ffi` -- add `Py_HashPointer` to `pyo3-ffi` -- add `PyObject_GenericHash` to `pyo3-ffi` diff --git a/newsfragments/5091.fixed.md b/newsfragments/5091.fixed.md deleted file mode 100644 index 2f061195027..00000000000 --- a/newsfragments/5091.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix various compile errors from missing FFI definitions using certain feature combinations on PyPy and GraalPy. diff --git a/newsfragments/5096.added.md b/newsfragments/5096.added.md deleted file mode 100644 index 9d5c12a99db..00000000000 --- a/newsfragments/5096.added.md +++ /dev/null @@ -1 +0,0 @@ -declarative modules can now `#[pymodule_export]` `const` items \ No newline at end of file diff --git a/newsfragments/5097.removed.md b/newsfragments/5097.removed.md deleted file mode 100644 index a2fb6998959..00000000000 --- a/newsfragments/5097.removed.md +++ /dev/null @@ -1 +0,0 @@ -removed support for the deprecated string from of `from_py_with` \ No newline at end of file diff --git a/newsfragments/5101.added.md b/newsfragments/5101.added.md deleted file mode 100644 index 8481dcc7f82..00000000000 --- a/newsfragments/5101.added.md +++ /dev/null @@ -1 +0,0 @@ -added `immutable_type` pyclass option (on Python 3.14+ with `abi3`, or 3.10+ otherwise) for immutable type objects \ No newline at end of file diff --git a/newsfragments/5105.removed.md b/newsfragments/5105.removed.md deleted file mode 100644 index d1a0f916bd9..00000000000 --- a/newsfragments/5105.removed.md +++ /dev/null @@ -1 +0,0 @@ -Remove FFI definitions of private static variables: `_PyMethodWrapper_Type`, `_PyCoroWrapper_Type`, `_PyImport_FrozenBootstrap`, `_PyImport_FrozenStdlib`, `_PyImport_FrozenTest`, `_PyManagedBuffer_Type`, `_PySet_Dummy`, `_PyWeakref_ProxyType`, and `_PyWeakref_CallableProxyType`. diff --git a/newsfragments/5109.changed.md b/newsfragments/5109.changed.md deleted file mode 100644 index 0f46eb936e6..00000000000 --- a/newsfragments/5109.changed.md +++ /dev/null @@ -1 +0,0 @@ -Add `#[track_caller]` to `with_gil` and `with_gil_unchecked`. diff --git a/newsfragments/5110.changed.md b/newsfragments/5110.changed.md deleted file mode 100644 index 262d1b36617..00000000000 --- a/newsfragments/5110.changed.md +++ /dev/null @@ -1 +0,0 @@ -Remove `cfg-if` dependency. diff --git a/newsfragments/5112.added.md b/newsfragments/5112.added.md deleted file mode 100644 index 5320d26bb6f..00000000000 --- a/newsfragments/5112.added.md +++ /dev/null @@ -1 +0,0 @@ -add `rename_all` support for `#[derive(IntoPyObject)]` \ No newline at end of file diff --git a/newsfragments/5114.added.md b/newsfragments/5114.added.md deleted file mode 100644 index 90d530e6747..00000000000 --- a/newsfragments/5114.added.md +++ /dev/null @@ -1 +0,0 @@ -Added conversion support for `ordered_float::NotNan` & `ordered_float::OrderedFloat` to and from python native float type diff --git a/newsfragments/5115.changed.md b/newsfragments/5115.changed.md deleted file mode 100644 index df91b7c36a8..00000000000 --- a/newsfragments/5115.changed.md +++ /dev/null @@ -1 +0,0 @@ -Use `std::thread::park()` instead of `libc::pause()` or `sleep(9999999)`. diff --git a/newsfragments/5116.packaging.md b/newsfragments/5116.packaging.md deleted file mode 100644 index a0675b626a4..00000000000 --- a/newsfragments/5116.packaging.md +++ /dev/null @@ -1 +0,0 @@ -Bump supported GraalPy version to 24.2. diff --git a/newsfragments/5117.added.md b/newsfragments/5117.added.md deleted file mode 100644 index 46ff2f5d411..00000000000 --- a/newsfragments/5117.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `PyRange` wrapper. diff --git a/newsfragments/5120.fixed.md b/newsfragments/5120.fixed.md deleted file mode 100644 index 65db11b3f95..00000000000 --- a/newsfragments/5120.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fallback on `backports.zoneinfo` for python <3.9 when converting timezones into python. diff --git a/newsfragments/5123.fixed.md b/newsfragments/5123.fixed.md deleted file mode 100644 index 1033fcd559a..00000000000 --- a/newsfragments/5123.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix FFI definitions for 3.14 beta 1 diff --git a/newsfragments/5133.removed.md b/newsfragments/5133.removed.md deleted file mode 100644 index bfcb550e58f..00000000000 --- a/newsfragments/5133.removed.md +++ /dev/null @@ -1,2 +0,0 @@ -* Removed PyASCIIObjectState from the FFI bindings on Python 3.14 and newer. -* Removed PyUnicode_IS_ASCII, PyUnicode_IS_COMPACT, and PyUnicode_IS_COMPACT_ASCII from the FFI bindings on Python 3.14 and newer, since they relied on PyASCIIObjectState. \ No newline at end of file diff --git a/pyo3-build-config/Cargo.toml b/pyo3-build-config/Cargo.toml index b2bdc760687..8070860a1e9 100644 --- a/pyo3-build-config/Cargo.toml +++ b/pyo3-build-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-build-config" -version = "0.25.0-dev" +version = "0.25.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 e4f4498780d..647b76fbdcd 100644 --- a/pyo3-ffi/Cargo.toml +++ b/pyo3-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-ffi" -version = "0.25.0-dev" +version = "0.25.0" description = "Python-API bindings for the PyO3 ecosystem" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -44,7 +44,7 @@ generate-import-lib = ["pyo3-build-config/python3-dll-a"] paste = "1" [build-dependencies] -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.25.0-dev", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.25.0", features = ["resolve-config"] } [lints] workspace = true diff --git a/pyo3-ffi/README.md b/pyo3-ffi/README.md index 9b96da15b78..09be0a06f66 100644 --- a/pyo3-ffi/README.md +++ b/pyo3-ffi/README.md @@ -41,13 +41,13 @@ name = "string_sum" crate-type = ["cdylib"] [dependencies.pyo3-ffi] -version = "0.24.2" +version = "0.25.0" features = ["extension-module"] [build-dependencies] # This is only necessary if you need to configure your build based on # the Python version or the compile-time configuration for the interpreter. -pyo3_build_config = "0.24.2" +pyo3_build_config = "0.25.0" ``` If you need to use conditional compilation based on Python version or how diff --git a/pyo3-introspection/Cargo.toml b/pyo3-introspection/Cargo.toml index d861ec7b6d5..98dfdebbd10 100644 --- a/pyo3-introspection/Cargo.toml +++ b/pyo3-introspection/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-introspection" -version = "0.25.0-dev" +version = "0.25.0" description = "Introspect dynamic libraries built with PyO3 to get metadata about the exported Python types" authors = ["PyO3 Project and Contributors "] homepage = "https://github.com/pyo3/pyo3" diff --git a/pyo3-macros-backend/Cargo.toml b/pyo3-macros-backend/Cargo.toml index 5730df1ae1d..d626fa1ebf7 100644 --- a/pyo3-macros-backend/Cargo.toml +++ b/pyo3-macros-backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros-backend" -version = "0.25.0-dev" +version = "0.25.0" description = "Code generation for PyO3 package" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -17,7 +17,7 @@ rust-version = "1.63" [dependencies] heck = "0.5" proc-macro2 = { version = "1.0.60", default-features = false } -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.25.0-dev", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.25.0", features = ["resolve-config"] } quote = { version = "1", default-features = false } [dependencies.syn] @@ -26,7 +26,7 @@ default-features = false features = ["derive", "parsing", "printing", "clone-impls", "full", "extra-traits"] [build-dependencies] -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.25.0-dev" } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.25.0" } [lints] workspace = true diff --git a/pyo3-macros/Cargo.toml b/pyo3-macros/Cargo.toml index c7bd43fad69..7df15c23f76 100644 --- a/pyo3-macros/Cargo.toml +++ b/pyo3-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros" -version = "0.25.0-dev" +version = "0.25.0" description = "Proc macros for PyO3 package" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -23,7 +23,7 @@ experimental-inspect = ["pyo3-macros-backend/experimental-inspect"] 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.25.0-dev" } +pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.25.0" } [lints] workspace = true diff --git a/pyproject.toml b/pyproject.toml index 1ff0f0332de..adfe3a27348 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [tool.towncrier] filename = "CHANGELOG.md" -version = "0.25.0-dev" +version = "0.25.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 fed5d48937e..9b16f1d68e7 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.25.0-dev/class.html#no-generic-parameters +error: #[pyclass] cannot have generic parameters. For an explanation, see https://pyo3.rs/v0.25.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.25.0-dev/class.html#no-lifetime-parameters +error: #[pyclass] cannot have lifetime parameters. For an explanation, see https://pyo3.rs/v0.25.0/class.html#no-lifetime-parameters --> tests/ui/reject_generics.rs:9:27 | 9 | struct ClassWithLifetimes<'a> {