diff --git a/CHANGELOG.md b/CHANGELOG.md index 092edc23..46b9b028 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,28 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h +## [0.18.1] - 2023-02-07 + +### Added + +- Add `PyErr::write_unraisable()`. [#2889](https://github.com/PyO3/pyo3/pull/2889) +- Add `Python::Ellipsis()` and `PyAny::is_ellipsis()` methods. [#2911](https://github.com/PyO3/pyo3/pull/2911) +- Add `PyDict::update()` and `PyDict::update_if_missing()` methods. [#2912](https://github.com/PyO3/pyo3/pull/2912) + +### Changed + +- FFI definition `PyIter_Check` on CPython 3.7 is now implemented as `hasattr(type(obj), "__next__")`, which works correctly on all platforms and adds support for `abi3`. [#2914](https://github.com/PyO3/pyo3/pull/2914) +- Warn about unknown config keys in `PYO3_CONFIG_FILE` instead of denying. [#2926](https://github.com/PyO3/pyo3/pull/2926) + +### Fixed + +- Send errors returned by `__releasebuffer__` to `sys.unraisablehook` rather than causing `SystemError`. [#2886](https://github.com/PyO3/pyo3/pull/2886) +- Fix downcast to `PyIterator` succeeding for Python classes which did not implement `__next__`. [#2914](https://github.com/PyO3/pyo3/pull/2914) +- Fix segfault in `__traverse__` when visiting `None` fields of `Option`. [#2921](https://github.com/PyO3/pyo3/pull/2921) +- Fix `#[pymethods(crate = "...")]` option being ignored. [#2923](https://github.com/PyO3/pyo3/pull/2923) +- Link against `pythonXY_d.dll` for debug Python builds on Windows. [#2937](https://github.com/PyO3/pyo3/pull/2937) + + ## [0.18.0] - 2023-01-17 ### Packaging @@ -1370,7 +1392,8 @@ Yanked - Initial release -[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.18.0...HEAD +[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.18.1...HEAD +[0.18.1]: https://github.com/pyo3/pyo3/compare/v0.18.0...v0.18.1 [0.18.0]: https://github.com/pyo3/pyo3/compare/v0.17.3...v0.18.0 [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 diff --git a/Cargo.toml b/Cargo.toml index b6946f6f..2431c4ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3" -version = "0.18.0" +version = "0.18.1" 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.8" # ffi bindings to the python interpreter, split into a separate crate so they can be used independently -pyo3-ffi = { path = "pyo3-ffi", version = "=0.18.0" } +pyo3-ffi = { path = "pyo3-ffi", version = "=0.18.1" } # support crates for macros feature -pyo3-macros = { path = "pyo3-macros", version = "=0.18.0", optional = true } +pyo3-macros = { path = "pyo3-macros", version = "=0.18.1", 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.18.0", features = ["resolve-config"] } +pyo3-build-config = { path = "pyo3-build-config", version = "0.18.1", features = ["resolve-config"] } [features] default = ["macros"] diff --git a/README.md b/README.md index 63c125e1..1c94e5d2 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ name = "string_sum" crate-type = ["cdylib"] [dependencies] -pyo3 = { version = "0.18.0", features = ["extension-module"] } +pyo3 = { version = "0.18.1", features = ["extension-module"] } ``` **`src/lib.rs`** @@ -137,7 +137,7 @@ Start a new project with `cargo new` and add `pyo3` to the `Cargo.toml` like th ```toml [dependencies.pyo3] -version = "0.18.0" +version = "0.18.1" features = ["auto-initialize"] ``` diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 52a8069f..b178632d 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -5,7 +5,7 @@ publish = false edition = "2018" [dev-dependencies] -pyo3 = { version = "0.18.0", path = "..", features = ["auto-initialize", "extension-module"] } +pyo3 = { version = "0.18.1", 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 c9759acc..f2ff445e 100644 --- a/examples/decorator/.template/pre-script.rhai +++ b/examples/decorator/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.18.0"); +variable::set("PYO3_VERSION", "0.18.1"); 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 c9759acc..f2ff445e 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.18.0"); +variable::set("PYO3_VERSION", "0.18.1"); 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/plugin/.template/pre-script.rhai b/examples/plugin/.template/pre-script.rhai index e126a37d..e32afb10 100644 --- a/examples/plugin/.template/pre-script.rhai +++ b/examples/plugin/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.18.0"); +variable::set("PYO3_VERSION", "0.18.1"); 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 69574a02..17799f1c 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.18.0"); +variable::set("PYO3_VERSION", "0.18.1"); 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 88f41205..5aeee32b 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.18.0"); +variable::set("PYO3_VERSION", "0.18.1"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/tox.ini", "tox.ini"); file::delete(".template"); diff --git a/newsfragments/2886.fixed.md b/newsfragments/2886.fixed.md deleted file mode 100644 index cfe192d4..00000000 --- a/newsfragments/2886.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Send errors returned by `__releasebuffer__` to `sys.unraisablehook` rather than causing `SystemError`. diff --git a/newsfragments/2889.added.md b/newsfragments/2889.added.md deleted file mode 100644 index 0d4c9265..00000000 --- a/newsfragments/2889.added.md +++ /dev/null @@ -1 +0,0 @@ -Added `PyErr::write_unraisable()` to report an unraisable exception to Python. diff --git a/newsfragments/2911.added.md b/newsfragments/2911.added.md deleted file mode 100644 index 4348412f..00000000 --- a/newsfragments/2911.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `py.Ellipsis()` and `py_any.is_ellipsis()` methods. diff --git a/newsfragments/2912.added.md b/newsfragments/2912.added.md deleted file mode 100644 index 0700a3af..00000000 --- a/newsfragments/2912.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `PyDict.update()` and `PyDict.update_if_missing()` methods. diff --git a/newsfragments/2914.changed.md b/newsfragments/2914.changed.md deleted file mode 100644 index bea926c4..00000000 --- a/newsfragments/2914.changed.md +++ /dev/null @@ -1 +0,0 @@ -FFI definition `PyIter_Check` on CPython 3.7 now does the equivalent for `hasattr(type(obj), "__next__")`, which works correctly on all platforms and adds support for `abi3`. diff --git a/newsfragments/2914.fixed.md b/newsfragments/2914.fixed.md deleted file mode 100644 index 9ea78ee8..00000000 --- a/newsfragments/2914.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix downcast to `PyIterator` succeeding for Python classes which did not implement `__next__`. diff --git a/newsfragments/2921.fixed.md b/newsfragments/2921.fixed.md deleted file mode 100644 index 8cbffabb..00000000 --- a/newsfragments/2921.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Traversal visit calls to `Option` no longer segfaults when `None`. diff --git a/newsfragments/2923.fixed.md b/newsfragments/2923.fixed.md deleted file mode 100644 index d61f5b01..00000000 --- a/newsfragments/2923.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix `#[pymethods(crate = "...")]` option being ignored. diff --git a/newsfragments/2926.changed.md b/newsfragments/2926.changed.md deleted file mode 100644 index e0d4cfcc..00000000 --- a/newsfragments/2926.changed.md +++ /dev/null @@ -1 +0,0 @@ -Warn about unknown config keys in `PYO3_CONFIG_FILE` instead of denying. diff --git a/newsfragments/2937.fixed.md b/newsfragments/2937.fixed.md deleted file mode 100644 index 9956d7b9..00000000 --- a/newsfragments/2937.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Link against `pythonXY_d.dll` for debug Python builds on Windows. diff --git a/pyo3-build-config/Cargo.toml b/pyo3-build-config/Cargo.toml index 5aa75694..a1d48bb7 100644 --- a/pyo3-build-config/Cargo.toml +++ b/pyo3-build-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-build-config" -version = "0.18.0" +version = "0.18.1" 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 80bf3eb8..aba3bf22 100644 --- a/pyo3-ffi/Cargo.toml +++ b/pyo3-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-ffi" -version = "0.18.0" +version = "0.18.1" description = "Python-API bindings for the PyO3 ecosystem" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -38,4 +38,4 @@ generate-import-lib = ["pyo3-build-config/python3-dll-a"] [build-dependencies] -pyo3-build-config = { path = "../pyo3-build-config", version = "0.18.0", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "0.18.1", features = ["resolve-config"] } diff --git a/pyo3-macros-backend/Cargo.toml b/pyo3-macros-backend/Cargo.toml index 3ff76d84..d3283aa2 100644 --- a/pyo3-macros-backend/Cargo.toml +++ b/pyo3-macros-backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros-backend" -version = "0.18.0" +version = "0.18.1" 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 661de9ca..496e73d7 100644 --- a/pyo3-macros/Cargo.toml +++ b/pyo3-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros" -version = "0.18.0" +version = "0.18.1" 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.18.0" } +pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.18.1" } diff --git a/pyproject.toml b/pyproject.toml index e62881d2..9fabaf77 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ exclude = ''' [tool.towncrier] filename = "CHANGELOG.md" -version = "0.18.0" +version = "0.18.1" start_string = "\n" template = ".towncrier.template.md" title_format = "## [{version}] - {project_date}"