pybind/pybind11 (pybind11)
### [`v2.11.0`](https://togithub.com/pybind/pybind11/releases/tag/v2.11.0): Version 2.11.0
[Compare Source](https://togithub.com/pybind/pybind11/compare/v2.10.4...v2.11.0)
New features:
- The newly added `pybind11::detail::is_move_constructible` trait can be specialized for cases in which `std::is_move_constructible` does not work as needed. This is very similar to the long-established `pybind11::detail::is_copy_constructible`. [#4631](https://togithub.com/pybind/pybind11/issues/4631)
- Introduce `recursive_container_traits`. [#4623](https://togithub.com/pybind/pybind11/issues/4623)
- `pybind11/type_caster_pyobject_ptr.h` was added to support automatic wrapping of APIs that make use of `PyObject *`. This header needs to included explicitly (i.e. it is not included implicitly with `pybind/pybind11.h`). [#4601](https://togithub.com/pybind/pybind11/issues/4601)
- `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations were added. The latter enables `py::array_t` to/from-python conversions. [#4674](https://togithub.com/pybind/pybind11/issues/4674)
- `buffer_info` gained an `item_type_is_equivalent_to()` member function. [#4674](https://togithub.com/pybind/pybind11/issues/4674)
- The `capsule` API gained a user-friendly constructor (`py::capsule(ptr, "name", dtor)`). [#4720](https://togithub.com/pybind/pybind11/issues/4720)
Changes:
- `PyGILState_Check()`'s in `pybind11::handle`'s `inc_ref()` & `dec_ref()` are now enabled by default again. [#4246](https://togithub.com/pybind/pybind11/issues/4246)
- `py::initialize_interpreter()` using `PyConfig_InitPythonConfig()` instead of `PyConfig_InitIsolatedConfig()`, to obtain complete `sys.path`. [#4473](https://togithub.com/pybind/pybind11/issues/4473)
- Cast errors now always include Python type information, even if `PYBIND11_DETAILED_ERROR_MESSAGES` is not defined. This increases binary sizes slightly (~1.5%) but the error messages are much more informative. [#4463](https://togithub.com/pybind/pybind11/issues/4463)
- The docstring generation for the `std::array`-list caster was fixed. Previously, signatures included the size of the list in a non-standard, non-spec compliant way. The new format conforms to PEP 593. **Tooling for processing the docstrings may need to be updated accordingly.** [#4679](https://togithub.com/pybind/pybind11/issues/4679)
- Setter return values (which are inaccessible for all practical purposes) are no longer converted to Python (only to be discarded). [#4621](https://togithub.com/pybind/pybind11/issues/4621)
- Allow lambda specified to function definition to be `noexcept(true)` in C++17. [#4593](https://togithub.com/pybind/pybind11/issues/4593)
- Get rid of recursive template instantiations for concatenating type signatures on C++17 and higher. [#4587](https://togithub.com/pybind/pybind11/issues/4587)
- Compatibility with Python 3.12 (beta). Note that the minimum pybind11 ABI version for Python 3.12 is version 5. (The default ABI version for Python versions up to and including 3.11 is still version 4.). [#4570](https://togithub.com/pybind/pybind11/issues/4570)
- With `PYBIND11_INTERNALS_VERSION 5` (default for Python 3.12+), MSVC builds use `std::hash` and `std::equal_to` instead of string-based type comparisons. This resolves issues when binding types defined in the unnamed namespace. [#4319](https://togithub.com/pybind/pybind11/issues/4319)
- Python exception `__notes__` (introduced with Python 3.11) are now added to the `error_already_set::what()` output. [#4678](https://togithub.com/pybind/pybind11/issues/4678)
Build system improvements:
- CMake 3.27 support was added, CMake 3.4 support was dropped. FindPython will be used if `FindPythonInterp` is not present. [#4719](https://togithub.com/pybind/pybind11/issues/4719)
- Update clang-tidy to 15 in CI. [#4387](https://togithub.com/pybind/pybind11/issues/4387)
- Moved the linting framework over to Ruff. [#4483](https://togithub.com/pybind/pybind11/issues/4483)
- Skip `lto` checks and target generation when `CMAKE_INTERPROCEDURAL_OPTIMIZATION` is defined. [#4643](https://togithub.com/pybind/pybind11/issues/4643)
- No longer inject `-stdlib=libc++`, not needed for modern Pythons (macOS 10.9+). [#4639](https://togithub.com/pybind/pybind11/issues/4639)
- PyPy 3.10 support was added, PyPy 3.7 support was dropped. [#4728](https://togithub.com/pybind/pybind11/issues/4728)
- Testing with Python 3.12 beta releases was added. [#4713](https://togithub.com/pybind/pybind11/issues/4713)
Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v2.10.4
->v2.11.0
Release Notes
pybind/pybind11 (pybind11)
### [`v2.11.0`](https://togithub.com/pybind/pybind11/releases/tag/v2.11.0): Version 2.11.0 [Compare Source](https://togithub.com/pybind/pybind11/compare/v2.10.4...v2.11.0) New features: - The newly added `pybind11::detail::is_move_constructible` trait can be specialized for cases in which `std::is_move_constructible` does not work as needed. This is very similar to the long-established `pybind11::detail::is_copy_constructible`. [#4631](https://togithub.com/pybind/pybind11/issues/4631) - Introduce `recursive_container_traits`. [#4623](https://togithub.com/pybind/pybind11/issues/4623) - `pybind11/type_caster_pyobject_ptr.h` was added to support automatic wrapping of APIs that make use of `PyObject *`. This header needs to included explicitly (i.e. it is not included implicitly with `pybind/pybind11.h`). [#4601](https://togithub.com/pybind/pybind11/issues/4601) - `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations were added. The latter enables `py::array_tConfiguration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.