pybind/pybind11 (pybind11)
### [`v2.12.0`](https://togithub.com/pybind/pybind11/releases/tag/v2.12.0): Version 2.12.0
[Compare Source](https://togithub.com/pybind/pybind11/compare/v2.11.1...v2.12.0)
New Features:
- `pybind11` now supports compiling for [NumPy 2](https://numpy.org/devdocs/numpy\_2\_0\_migration_guide.html). Most code shouldn't change (see `upgrade-guide-2.12` for details). However, if you experience issues you can define `PYBIND11_NUMPY_1_ONLY` to disable the new support for now, but this will be removed in the future. [#5050](https://togithub.com/pybind/pybind11/issues/5050)
- `pybind11/gil_safe_call_once.h` was added (it needs to be included explicitly). The primary use case is GIL-safe initialization of C++ `static` variables. [#4877](https://togithub.com/pybind/pybind11/issues/4877)
- Support move-only iterators in `py::make_iterator`, `py::make_key_iterator`, `py::make_value_iterator`. [#4834](https://togithub.com/pybind/pybind11/issues/4834)
- Two simple `py::set_error()` functions were added and the documentation was updated accordingly. In particular, `py::exception<>::operator()` was deprecated (use one of the new functions instead). The documentation for `py::exception<>` was further updated to not suggest code that may result in undefined behavior. [#4772](https://togithub.com/pybind/pybind11/issues/4772)
Bug fixes:
- Removes potential for Undefined Behavior during process teardown. [#4897](https://togithub.com/pybind/pybind11/issues/4897)
- Improve compatibility with the nvcc compiler (especially CUDA 12.1/12.2). [#4893](https://togithub.com/pybind/pybind11/issues/4893)
- `pybind11/numpy.h` now imports NumPy's `multiarray` and `_internal` submodules with paths depending on the installed version of NumPy (for compatibility with NumPy 2). [#4857](https://togithub.com/pybind/pybind11/issues/4857)
- Builtins collections names in docstrings are now consistently rendered in lowercase (list, set, dict, tuple), in accordance with PEP 585. [#4833](https://togithub.com/pybind/pybind11/issues/4833)
- Added `py::typing::Iterator`, `py::typing::Iterable`. [#4832](https://togithub.com/pybind/pybind11/issues/4832)
- Render `py::function` as `Callable` in docstring. [#4829](https://togithub.com/pybind/pybind11/issues/4829)
- Also bump `PYBIND11_INTERNALS_VERSION` for MSVC, which unlocks two new features without creating additional incompatibilities. [#4819](https://togithub.com/pybind/pybind11/issues/4819)
- Guard against crashes/corruptions caused by modules built with different MSVC versions. [#4779](https://togithub.com/pybind/pybind11/issues/4779)
- A long-standing bug in the handling of Python multiple inheritance was fixed. See PR [#4762](https://togithub.com/pybind/pybind11/issues/4762) for the rather complex details. [#4762](https://togithub.com/pybind/pybind11/issues/4762)
- Fix `bind_map` with `using` declarations. [#4952](https://togithub.com/pybind/pybind11/issues/4952)
- Qualify `py::detail::concat` usage to avoid ADL selecting one from somewhere else, such as modernjson's concat. [#4955](https://togithub.com/pybind/pybind11/issues/4955)
- Use new PyCode API on Python 3.12+. [#4916](https://togithub.com/pybind/pybind11/issues/4916)
- Minor cleanup from warnings reported by Clazy. [#4988](https://togithub.com/pybind/pybind11/issues/4988)
- Remove typing and duplicate `class_` for `KeysView`/`ValuesView`/`ItemsView`. [#4985](https://togithub.com/pybind/pybind11/issues/4985)
- Use `PyObject_VisitManagedDict()` and `PyObject_ClearManagedDict()` on Python 3.13 and newer. [#4973](https://togithub.com/pybind/pybind11/issues/4973)
- Update `make_static_property_type()` to make it compatible with Python 3.13. [#4971](https://togithub.com/pybind/pybind11/issues/4971)
- Render typed iterators for `make_iterator`, `make_key_iterator`, `make_value_iterator`. [#4876](https://togithub.com/pybind/pybind11/issues/4876)
- Add several missing type name specializations. [#5073](https://togithub.com/pybind/pybind11/issues/5073)
- Change docstring render for `py::buffer`, `py::sequence` and `py::handle` (to `Buffer`, `Sequence`, `Any`). [#4831](https://togithub.com/pybind/pybind11/issues/4831)
- Fixed `base_enum.__str__` docstring. [#4827](https://togithub.com/pybind/pybind11/issues/4827)
- Enforce single line docstring signatures. [#4735](https://togithub.com/pybind/pybind11/issues/4735)
- Special 'typed' wrappers now available in `typing.h` to annotate tuple, dict, list, set, and function. [#4259](https://togithub.com/pybind/pybind11/issues/4259)
- Create `handle_type_name` specialization to type-hint variable length tuples. [#5051](https://togithub.com/pybind/pybind11/issues/5051)
- Setting `PYBIND11_FINDPYTHON` to OFF will force the old FindPythonLibs mechanism to be used. [#5042](https://togithub.com/pybind/pybind11/issues/5042)
- Skip empty `PYBIND11_PYTHON_EXECUTABLE_LAST` for the first cmake run. [#4856](https://togithub.com/pybind/pybind11/issues/4856)
- Fix FindPython mode exports & avoid `pkg_resources` if `importlib.metadata` available. [#4941](https://togithub.com/pybind/pybind11/issues/4941)
- `Python_ADDITIONAL_VERSIONS` (classic search) now includes 3.12. [#4909](https://togithub.com/pybind/pybind11/issues/4909)
- `pybind11.pc` is now relocatable by default as long as install destinations are not absolute paths. [#4830](https://togithub.com/pybind/pybind11/issues/4830)
- Correctly detect CMake FindPython removal when used as a subdirectory. [#4806](https://togithub.com/pybind/pybind11/issues/4806)
- Don't require the libs component on CMake 3.18+ when using `PYBIND11_FINDPYTHON` (fixes manylinux builds). [#4805](https://togithub.com/pybind/pybind11/issues/4805)
- `pybind11_strip` is no longer automatically applied when `CMAKE_BUILD_TYPE` is unset. [#4780](https://togithub.com/pybind/pybind11/issues/4780)
- Support `DEBUG_POSFIX` correctly for debug builds. [#4761](https://togithub.com/pybind/pybind11/issues/4761)
- Hardcode lto/thin lto for Emscripten cross-compiles. [#4642](https://togithub.com/pybind/pybind11/issues/4642)
- Upgrade maximum supported CMake version to 3.27 to fix CMP0148 warnings. [#4786](https://togithub.com/pybind/pybind11/issues/4786)
Documentation:
- Small fix to grammar in `functions.rst`. [#4791](https://togithub.com/pybind/pybind11/issues/4791)
- Remove upper bound in example pyproject.toml for setuptools. [#4774](https://togithub.com/pybind/pybind11/issues/4774)
CI:
- CI: Update NVHPC to 23.5 and Ubuntu 20.04. [#4764](https://togithub.com/pybind/pybind11/issues/4764)
- Test on PyPy 3.10. [#4714](https://togithub.com/pybind/pybind11/issues/4714)
Other:
- Use Ruff formatter instead of Black. [#4912](https://togithub.com/pybind/pybind11/issues/4912)
- An `assert()` was added to help Coverty avoid generating a false positive. [#4817](https://togithub.com/pybind/pybind11/issues/4817)
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.11.1
->v2.12.0
Release Notes
pybind/pybind11 (pybind11)
### [`v2.12.0`](https://togithub.com/pybind/pybind11/releases/tag/v2.12.0): Version 2.12.0 [Compare Source](https://togithub.com/pybind/pybind11/compare/v2.11.1...v2.12.0) New Features: - `pybind11` now supports compiling for [NumPy 2](https://numpy.org/devdocs/numpy\_2\_0\_migration_guide.html). Most code shouldn't change (see `upgrade-guide-2.12` for details). However, if you experience issues you can define `PYBIND11_NUMPY_1_ONLY` to disable the new support for now, but this will be removed in the future. [#5050](https://togithub.com/pybind/pybind11/issues/5050) - `pybind11/gil_safe_call_once.h` was added (it needs to be included explicitly). The primary use case is GIL-safe initialization of C++ `static` variables. [#4877](https://togithub.com/pybind/pybind11/issues/4877) - Support move-only iterators in `py::make_iterator`, `py::make_key_iterator`, `py::make_value_iterator`. [#4834](https://togithub.com/pybind/pybind11/issues/4834) - Two simple `py::set_error()` functions were added and the documentation was updated accordingly. In particular, `py::exception<>::operator()` was deprecated (use one of the new functions instead). The documentation for `py::exception<>` was further updated to not suggest code that may result in undefined behavior. [#4772](https://togithub.com/pybind/pybind11/issues/4772) Bug fixes: - Removes potential for Undefined Behavior during process teardown. [#4897](https://togithub.com/pybind/pybind11/issues/4897) - Improve compatibility with the nvcc compiler (especially CUDA 12.1/12.2). [#4893](https://togithub.com/pybind/pybind11/issues/4893) - `pybind11/numpy.h` now imports NumPy's `multiarray` and `_internal` submodules with paths depending on the installed version of NumPy (for compatibility with NumPy 2). [#4857](https://togithub.com/pybind/pybind11/issues/4857) - Builtins collections names in docstrings are now consistently rendered in lowercase (list, set, dict, tuple), in accordance with PEP 585. [#4833](https://togithub.com/pybind/pybind11/issues/4833) - Added `py::typing::IteratorConfiguration
π 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.