diff --git a/.netlify/_redirects b/.netlify/_redirects index 3d26c0b6..e3e7a8d6 100644 --- a/.netlify/_redirects +++ b/.netlify/_redirects @@ -70,6 +70,8 @@ /v0.17.1/* https://pyo3.github.io/pyo3/v0.17.1/:splat 200 /v0.17.2/doc/* https://docs.rs/pyo3/0.17.2/:splat /v0.17.2/* https://pyo3.github.io/pyo3/v0.17.2/:splat 200 +/v0.17.3/doc/* https://docs.rs/pyo3/0.17.3/:splat +/v0.17.3/* https://pyo3.github.io/pyo3/v0.17.3/:splat 200 /v0.2.3/doc/* https://docs.rs/pyo3/0.2.3/:splat /v0.2.3/* https://pyo3.github.io/pyo3/v0.2.3/:splat 200 /v0.2.4/doc/* https://docs.rs/pyo3/0.2.4/:splat diff --git a/CHANGELOG.md b/CHANGELOG.md index 6866f940..afac9f72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,22 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h +## [0.17.3] - 2022-11-01 + +### Packaging + +- Support Python 3.11. (Previous versions of PyO3 0.17 have been tested against Python 3.11 release candidates and are expected to be compatible, this is the first version tested against Python 3.11.0.) [#2708](https://github.com/PyO3/pyo3/pull/2708) + +### Added + +- Implemented `ExactSizeIterator` for `PyListIterator`, `PyDictIterator`, `PySetIterator` and `PyFrozenSetIterator`. [#2676](https://github.com/PyO3/pyo3/pull/2676) + +### Fixed + +- Fix regression of `impl FromPyObject for [T; N]` no longer accepting types passing `PySequence_Check`, e.g. NumPy arrays, since version 0.17.0. This the same fix that was applied `impl FromPyObject for Vec` in version 0.17.1 extended to fixed-size arrays. [#2675](https://github.com/PyO3/pyo3/pull/2675) +- Fix UB in `FunctionDescription::extract_arguments_fastcall` due to creating slices from a null pointer. [#2687](https://github.com/PyO3/pyo3/pull/2687) + + ## [0.17.2] - 2022-10-04 ### Packaging @@ -1295,7 +1311,8 @@ Yanked - Initial release -[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.17.2g...HEAD +[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.17.3...HEAD +[0.17.3]: https://github.com/pyo3/pyo3/compare/v0.17.2...v0.17.3 [0.17.2]: https://github.com/pyo3/pyo3/compare/v0.17.1...v0.17.2 [0.17.1]: https://github.com/pyo3/pyo3/compare/v0.17.0...v0.17.1 [0.17.0]: https://github.com/pyo3/pyo3/compare/v0.16.6...v0.17.0 diff --git a/Cargo.toml b/Cargo.toml index a8c89c45..d1805351 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3" -version = "0.17.2" +version = "0.17.3" description = "Bindings to Python interpreter" authors = ["PyO3 Project and Contributors "] readme = "README.md" @@ -20,10 +20,10 @@ parking_lot = ">= 0.11, < 0.13" memoffset = "0.6.5" # ffi bindings to the python interpreter, split into a separate crate so they can be used independently -pyo3-ffi = { path = "pyo3-ffi", version = "=0.17.2" } +pyo3-ffi = { path = "pyo3-ffi", version = "=0.17.3" } # support crates for macros feature -pyo3-macros = { path = "pyo3-macros", version = "=0.17.2", optional = true } +pyo3-macros = { path = "pyo3-macros", version = "=0.17.3", optional = true } indoc = { version = "1.0.3", optional = true } unindent = { version = "0.1.4", optional = true } @@ -56,7 +56,7 @@ rayon = "1.0.2" widestring = "0.5.1" [build-dependencies] -pyo3-build-config = { path = "pyo3-build-config", version = "0.17.2", features = ["resolve-config"] } +pyo3-build-config = { path = "pyo3-build-config", version = "0.17.3", features = ["resolve-config"] } [features] default = ["macros"] diff --git a/README.md b/README.md index 517c37a8..650accf2 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ name = "string_sum" crate-type = ["cdylib"] [dependencies] -pyo3 = { version = "0.17.2", features = ["extension-module"] } +pyo3 = { version = "0.17.3", features = ["extension-module"] } ``` **`src/lib.rs`** @@ -134,7 +134,7 @@ Start a new project with `cargo new` and add `pyo3` to the `Cargo.toml` like th ```toml [dependencies.pyo3] -version = "0.17.2" +version = "0.17.3" features = ["auto-initialize"] ``` diff --git a/Releasing.md b/Releasing.md index c7b28e8d..8f7b39de 100644 --- a/Releasing.md +++ b/Releasing.md @@ -8,6 +8,7 @@ Follow the process below to update all required pieces to bump the version. All 1. Replace all instances of the PyO3 current version with the new version to be released. Places to check: - `Cargo.toml` for all PyO3 crates in the repository. + - Examples in `README.md` - PyO3 version embedded into documentation like the README. - `pre-script.rhai` templates for the examples. - `[towncrier]` section in `pyproject.toml`. diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 36af841b..e324fd86 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -5,7 +5,7 @@ publish = false edition = "2018" [dev-dependencies] -pyo3 = { version = "0.17.2", path = "..", features = ["auto-initialize", "extension-module"] } +pyo3 = { version = "0.17.3", path = "..", features = ["auto-initialize", "extension-module"] } [[example]] name = "decorator" diff --git a/examples/decorator/.template/pre-script.rhai b/examples/decorator/.template/pre-script.rhai index 7e25cf68..75638cc8 100644 --- a/examples/decorator/.template/pre-script.rhai +++ b/examples/decorator/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.17.2"); +variable::set("PYO3_VERSION", "0.17.3"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/pyproject.toml", "pyproject.toml"); file::rename(".template/tox.ini", "tox.ini"); diff --git a/examples/maturin-starter/.template/pre-script.rhai b/examples/maturin-starter/.template/pre-script.rhai index 7e25cf68..75638cc8 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.17.2"); +variable::set("PYO3_VERSION", "0.17.3"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/pyproject.toml", "pyproject.toml"); file::rename(".template/tox.ini", "tox.ini"); diff --git a/examples/setuptools-rust-starter/.template/pre-script.rhai b/examples/setuptools-rust-starter/.template/pre-script.rhai index 8b8495e4..a12f34aa 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.17.2"); +variable::set("PYO3_VERSION", "0.17.3"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/setup.cfg", "setup.cfg"); file::rename(".template/tox.ini", "tox.ini"); diff --git a/examples/word-count/.template/pre-script.rhai b/examples/word-count/.template/pre-script.rhai index 6ca8a5f0..ddac6b62 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.17.2"); +variable::set("PYO3_VERSION", "0.17.3"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/tox.ini", "tox.ini"); file::delete(".template"); diff --git a/newsfragments/2675.fixed.md b/newsfragments/2675.fixed.md deleted file mode 100644 index f2aeccc8..00000000 --- a/newsfragments/2675.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix regression of `impl FromPyObject for [T; N]` no longer accepting types passing `PySequence_Check`, e.g. NumPy arrays, since version 0.17.0. This the same fix that was applied `impl FromPyObject for Vec` in version 0.17.1 extended to fixed-size arrays. diff --git a/newsfragments/2676.added.md b/newsfragments/2676.added.md deleted file mode 100644 index 2dd96585..00000000 --- a/newsfragments/2676.added.md +++ /dev/null @@ -1 +0,0 @@ -Implemented `ExactSizeIterator` for `PyListIterator`, `PyDictIterator`, `PySetIterator` and `PyFrozenSetIterator` diff --git a/newsfragments/2687.fixed.md b/newsfragments/2687.fixed.md deleted file mode 100644 index ec74ebd2..00000000 --- a/newsfragments/2687.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix UB in `FunctionDescription::extract_arguments_fastcall` due to creating slices from a null pointer. diff --git a/newsfragments/2708.packaging.md b/newsfragments/2708.packaging.md deleted file mode 100644 index 0619a12d..00000000 --- a/newsfragments/2708.packaging.md +++ /dev/null @@ -1 +0,0 @@ -Support Python 3.11. (Previous versions of PyO3 0.17 have been tested against Python 3.11 release candidates and are expected to be compatible, this is the first version tested against Python 3.11.0.) diff --git a/pyo3-build-config/Cargo.toml b/pyo3-build-config/Cargo.toml index b8db13d5..9eae53e0 100644 --- a/pyo3-build-config/Cargo.toml +++ b/pyo3-build-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-build-config" -version = "0.17.2" +version = "0.17.3" 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 72323f76..626dd5b7 100644 --- a/pyo3-ffi/Cargo.toml +++ b/pyo3-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-ffi" -version = "0.17.2" +version = "0.17.3" description = "Python-API bindings for the PyO3 ecosystem" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -39,4 +39,4 @@ generate-abi3-import-lib = ["generate-import-lib"] [build-dependencies] -pyo3-build-config = { path = "../pyo3-build-config", version = "0.17.2", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "0.17.3", features = ["resolve-config"] } diff --git a/pyo3-macros-backend/Cargo.toml b/pyo3-macros-backend/Cargo.toml index afd2790c..8669d214 100644 --- a/pyo3-macros-backend/Cargo.toml +++ b/pyo3-macros-backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros-backend" -version = "0.17.2" +version = "0.17.3" description = "Code generation for PyO3 package" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] diff --git a/pyo3-macros/Cargo.toml b/pyo3-macros/Cargo.toml index ce30213b..372ad78f 100644 --- a/pyo3-macros/Cargo.toml +++ b/pyo3-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros" -version = "0.17.2" +version = "0.17.3" description = "Proc macros for PyO3 package" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -22,4 +22,4 @@ abi3 = ["pyo3-macros-backend/abi3"] proc-macro2 = { version = "1", default-features = false } quote = "1" syn = { version = "1.0.56", features = ["full", "extra-traits"] } -pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.17.2" } +pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.17.3" } diff --git a/pyproject.toml b/pyproject.toml index 6a8018a9..e9b46d06 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ exclude = ''' [tool.towncrier] filename = "CHANGELOG.md" -version = "0.17.2" +version = "0.17.3" start_string = "\n" template = ".towncrier.template.md" title_format = "## [{version}] - {project_date}"