diff --git a/CHANGELOG.md b/CHANGELOG.md index 047a4b21..6f4ce218 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.21.1] - 2024-04-01 + +### Added + +- Implement `Send` and `Sync` for `PyBackedStr` and `PyBackedBytes`. [#4007](https://github.com/PyO3/pyo3/pull/4007) +- Implement `Clone`, `Debug`, `PartialEq`, `Eq`, `PartialOrd`, `Ord` and `Hash` implementation for `PyBackedBytes` and `PyBackedStr`, and `Display` for `PyBackedStr`. [#4020](https://github.com/PyO3/pyo3/pull/4020) +- Add `import_exception_bound!` macro to import exception types without generating GIL Ref functionality for them. [#4027](https://github.com/PyO3/pyo3/pull/4027) + +### Changed + +- Emit deprecation warning for uses of GIL Refs as `#[setter]` function arguments. [#3998](https://github.com/PyO3/pyo3/pull/3998) +- Add `#[inline]` hints on many `Bound` and `Borrowed` methods. [#4024](https://github.com/PyO3/pyo3/pull/4024) + +### Fixed + +- Handle `#[pyo3(from_py_with = "")]` in `#[setter]` methods [#3995](https://github.com/PyO3/pyo3/pull/3995) +- Allow extraction of `&Bound` in `#[setter]` methods. [#3998](https://github.com/PyO3/pyo3/pull/3998) +- Fix some uncovered code blocks emitted by `#[pymodule]`, `#[pyfunction]` and `#[pyclass]` macros. [#4009](https://github.com/PyO3/pyo3/pull/4009) +- Fix typo in the panic message when a class referenced in `pyo3::import_exception!` does not exist. [#4012](https://github.com/PyO3/pyo3/pull/4012) +- Fix compile error when using an async `#[pymethod]` with a receiver and additional arguments. [#4015](https://github.com/PyO3/pyo3/pull/4015) + + ## [0.21.0] - 2024-03-25 ### Added @@ -1709,6 +1731,8 @@ Yanked - Initial release +[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.21.1...HEAD +[0.21.1]: https://github.com/pyo3/pyo3/compare/v0.21.0...v0.21.1 [0.21.0]: https://github.com/pyo3/pyo3/compare/v0.20.3...v0.21.0 [0.21.0-beta.0]: https://github.com/pyo3/pyo3/compare/v0.20.3...v0.21.0-beta.0 [0.20.3]: https://github.com/pyo3/pyo3/compare/v0.20.2...v0.20.3 diff --git a/Cargo.toml b/Cargo.toml index dfbeb2d6..fdd1fa9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3" -version = "0.21.0" +version = "0.21.1" description = "Bindings to Python interpreter" authors = ["PyO3 Project and Contributors "] readme = "README.md" @@ -22,10 +22,10 @@ memoffset = "0.9" portable-atomic = "1.0" # ffi bindings to the python interpreter, split into a separate crate so they can be used independently -pyo3-ffi = { path = "pyo3-ffi", version = "=0.21.0" } +pyo3-ffi = { path = "pyo3-ffi", version = "=0.21.1" } # support crates for macros feature -pyo3-macros = { path = "pyo3-macros", version = "=0.21.0", optional = true } +pyo3-macros = { path = "pyo3-macros", version = "=0.21.1", optional = true } indoc = { version = "2.0.1", optional = true } unindent = { version = "0.2.1", optional = true } @@ -60,7 +60,7 @@ rayon = "1.6.1" futures = "0.3.28" [build-dependencies] -pyo3-build-config = { path = "pyo3-build-config", version = "=0.21.0", features = ["resolve-config"] } +pyo3-build-config = { path = "pyo3-build-config", version = "=0.21.1", features = ["resolve-config"] } [features] default = ["macros"] diff --git a/README.md b/README.md index 7d79f028..8e7e2f75 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ name = "string_sum" crate-type = ["cdylib"] [dependencies] -pyo3 = { version = "0.21.0", features = ["extension-module"] } +pyo3 = { version = "0.21.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.21.0" +version = "0.21.1" features = ["auto-initialize"] ``` diff --git a/examples/decorator/.template/pre-script.rhai b/examples/decorator/.template/pre-script.rhai index cebb06c0..1dc689ef 100644 --- a/examples/decorator/.template/pre-script.rhai +++ b/examples/decorator/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.21.0"); +variable::set("PYO3_VERSION", "0.21.1"); 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 cebb06c0..1dc689ef 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.21.0"); +variable::set("PYO3_VERSION", "0.21.1"); 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 4b290f7f..78adb883 100644 --- a/examples/plugin/.template/pre-script.rhai +++ b/examples/plugin/.template/pre-script.rhai @@ -1,4 +1,4 @@ -variable::set("PYO3_VERSION", "0.21.0"); +variable::set("PYO3_VERSION", "0.21.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 fbbe7ed0..212f62f7 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.21.0"); +variable::set("PYO3_VERSION", "0.21.1"); 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 cebb06c0..1dc689ef 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.21.0"); +variable::set("PYO3_VERSION", "0.21.1"); file::rename(".template/Cargo.toml", "Cargo.toml"); file::rename(".template/pyproject.toml", "pyproject.toml"); file::delete(".template"); diff --git a/newsfragments/3995.fixed.md b/newsfragments/3995.fixed.md deleted file mode 100644 index e47a71b7..00000000 --- a/newsfragments/3995.fixed.md +++ /dev/null @@ -1 +0,0 @@ -handle `#[pyo3(from_py_with = "")]` in `#[setter]` methods \ No newline at end of file diff --git a/newsfragments/3998.changed.md b/newsfragments/3998.changed.md deleted file mode 100644 index c02c6546..00000000 --- a/newsfragments/3998.changed.md +++ /dev/null @@ -1 +0,0 @@ -Warn on uses of GIL Refs for `#[setter]` function arguments. \ No newline at end of file diff --git a/newsfragments/3998.fixed.md b/newsfragments/3998.fixed.md deleted file mode 100644 index 11f5d006..00000000 --- a/newsfragments/3998.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Allow extraction of `&Bound` in `#[setter]` methods. \ No newline at end of file diff --git a/newsfragments/4007.fixed.md b/newsfragments/4007.fixed.md deleted file mode 100644 index ff905fb4..00000000 --- a/newsfragments/4007.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Implement `Send` and `Sync` for `PyBackedStr` and `PyBackedBytes`. diff --git a/newsfragments/4009.fixed.md b/newsfragments/4009.fixed.md deleted file mode 100644 index a5d378e1..00000000 --- a/newsfragments/4009.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix some uncovered code blocks emitted by `#[pymodule]`, `#[pyfunction]` and `#[pyclass]` macros. diff --git a/newsfragments/4012.fixed.md b/newsfragments/4012.fixed.md deleted file mode 100644 index 352ec928..00000000 --- a/newsfragments/4012.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed the error message when a class referenced in `pyo3::import_exception!` does not exist diff --git a/newsfragments/4015.fixed.md b/newsfragments/4015.fixed.md deleted file mode 100644 index a8f4f636..00000000 --- a/newsfragments/4015.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix the bug that an async `#[pymethod]` with receiver can't have any other args. \ No newline at end of file diff --git a/newsfragments/4020.added.md b/newsfragments/4020.added.md deleted file mode 100644 index 53d0d6b8..00000000 --- a/newsfragments/4020.added.md +++ /dev/null @@ -1 +0,0 @@ -Adds `Clone`, `Debug`, `PartialEq`, `Eq`, `PartialOrd`, `Ord` and `Hash` implementation for `PyBackedBytes` and `PyBackedStr`, and `Display` for `PyBackedStr`. diff --git a/newsfragments/4024.changed.md b/newsfragments/4024.changed.md deleted file mode 100644 index 65afd8f0..00000000 --- a/newsfragments/4024.changed.md +++ /dev/null @@ -1 +0,0 @@ -Add `#[inline]` hints on many `Bound` and `Borrowed` methods. diff --git a/newsfragments/4027.added.md b/newsfragments/4027.added.md deleted file mode 100644 index ccf32952..00000000 --- a/newsfragments/4027.added.md +++ /dev/null @@ -1 +0,0 @@ -Add `import_exception_bound!` macro to import exception types without generating GIL Ref functionality for them. diff --git a/pyo3-build-config/Cargo.toml b/pyo3-build-config/Cargo.toml index f19ded99..1eb269c2 100644 --- a/pyo3-build-config/Cargo.toml +++ b/pyo3-build-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-build-config" -version = "0.21.0" +version = "0.21.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 091e5f89..64753976 100644 --- a/pyo3-ffi/Cargo.toml +++ b/pyo3-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-ffi" -version = "0.21.0" +version = "0.21.1" description = "Python-API bindings for the PyO3 ecosystem" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -38,7 +38,7 @@ abi3-py312 = ["abi3", "pyo3-build-config/abi3-py312"] generate-import-lib = ["pyo3-build-config/python3-dll-a"] [build-dependencies] -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.21.0", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.21.1", features = ["resolve-config"] } [lints] workspace = true diff --git a/pyo3-macros-backend/Cargo.toml b/pyo3-macros-backend/Cargo.toml index 822dc372..6ca4eead 100644 --- a/pyo3-macros-backend/Cargo.toml +++ b/pyo3-macros-backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros-backend" -version = "0.21.0" +version = "0.21.1" 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.4" proc-macro2 = { version = "1", default-features = false } -pyo3-build-config = { path = "../pyo3-build-config", version = "=0.21.0", features = ["resolve-config"] } +pyo3-build-config = { path = "../pyo3-build-config", version = "=0.21.1", features = ["resolve-config"] } quote = { version = "1", default-features = false } [dependencies.syn] diff --git a/pyo3-macros/Cargo.toml b/pyo3-macros/Cargo.toml index a70ccb0a..39a4b919 100644 --- a/pyo3-macros/Cargo.toml +++ b/pyo3-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyo3-macros" -version = "0.21.0" +version = "0.21.1" description = "Proc macros for PyO3 package" authors = ["PyO3 Project and Contributors "] keywords = ["pyo3", "python", "cpython", "ffi"] @@ -22,7 +22,7 @@ experimental-declarative-modules = [] proc-macro2 = { version = "1", default-features = false } quote = "1" syn = { version = "2", features = ["full", "extra-traits"] } -pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.21.0" } +pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.21.1" } [lints] workspace = true diff --git a/pyproject.toml b/pyproject.toml index 1a3cfa4a..d474753c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [tool.towncrier] filename = "CHANGELOG.md" -version = "0.21.0" +version = "0.21.1" start_string = "\n" template = ".towncrier.template.md" title_format = "## [{version}] - {project_date}"