Merge branch 'pybind:master' into master

This commit is contained in:
Steve R. Sun 2023-07-15 09:13:58 +08:00 committed by GitHub
commit 616937b731
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 62 additions and 18 deletions

View File

@ -10,15 +10,21 @@ Changes will be added here periodically from the "Suggested changelog entry"
block in pull request descriptions. block in pull request descriptions.
Version 2.11.0 (June 2, 2023) IN DEVELOPMENT
--------------
Changes will be summarized here periodically.
Version 2.11.0 (July 14, 2023)
----------------------------- -----------------------------
New features: New features:
* ``pybind11::detail::is_move_constructible`` can now be specialized for cases * The newly added ``pybind11::detail::is_move_constructible`` trait can be
in which ``std::is_move_constructible`` does not work as needed. This is specialized for cases in which ``std::is_move_constructible`` does not work
very similar to the long-established as needed. This is very similar to the long-established
``pybind11::detail::is_copy_constructible``. ``pybind11::detail::is_copy_constructible``.
`#4631 <https://github.com/pybind/pybind11/pull/4631>`_ `#4631 <https://github.com/pybind/pybind11/pull/4631>`_
* Introduce ``recursive_container_traits``. * Introduce ``recursive_container_traits``.
@ -30,6 +36,19 @@ New features:
with ``pybind/pybind11.h``). with ``pybind/pybind11.h``).
`#4601 <https://github.com/pybind/pybind11/pull/4601>`_ `#4601 <https://github.com/pybind/pybind11/pull/4601>`_
* ``format_descriptor<>`` & ``npy_format_descriptor<>`` ``PyObject *``
specializations were added. The latter enables ``py::array_t<PyObject *>``
to/from-python conversions.
`#4674 <https://github.com/pybind/pybind11/pull/4674>`_
* ``buffer_info`` gained an ``item_type_is_equivalent_to<T>()`` member
function.
`#4674 <https://github.com/pybind/pybind11/pull/4674>`_
* The ``capsule`` API gained a user-friendly constructor
(``py::capsule(ptr, "name", dtor)``).
`#4720 <https://github.com/pybind/pybind11/pull/4720>`_
Changes: Changes:
* ``PyGILState_Check()``'s in ``pybind11::handle``'s ``inc_ref()`` & * ``PyGILState_Check()``'s in ``pybind11::handle``'s ``inc_ref()`` &
@ -46,6 +65,12 @@ Changes:
sizes slightly (~1.5%) but the error messages are much more informative. sizes slightly (~1.5%) but the error messages are much more informative.
`#4463 <https://github.com/pybind/pybind11/pull/4463>`_ `#4463 <https://github.com/pybind/pybind11/pull/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://github.com/pybind/pybind11/pull/4679>`_
* Setter return values (which are inaccessible for all practical purposes) are * Setter return values (which are inaccessible for all practical purposes) are
no longer converted to Python (only to be discarded). no longer converted to Python (only to be discarded).
`#4621 <https://github.com/pybind/pybind11/pull/4621>`_ `#4621 <https://github.com/pybind/pybind11/pull/4621>`_
@ -58,7 +83,7 @@ Changes:
signatures on C++17 and higher. signatures on C++17 and higher.
`#4587 <https://github.com/pybind/pybind11/pull/4587>`_ `#4587 <https://github.com/pybind/pybind11/pull/4587>`_
* Compatibility with Python 3.12 (alpha). Note that the minimum pybind11 * Compatibility with Python 3.12 (beta). Note that the minimum pybind11
ABI version for Python 3.12 is version 5. (The default ABI version 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.). for Python versions up to and including 3.11 is still version 4.).
`#4570 <https://github.com/pybind/pybind11/pull/4570>`_ `#4570 <https://github.com/pybind/pybind11/pull/4570>`_
@ -69,15 +94,23 @@ Changes:
types defined in the unnamed namespace. types defined in the unnamed namespace.
`#4319 <https://github.com/pybind/pybind11/pull/4319>`_ `#4319 <https://github.com/pybind/pybind11/pull/4319>`_
* Python exception ``__notes__`` (introduced with Python 3.11) are now added to
the ``error_already_set::what()`` output.
`#4678 <https://github.com/pybind/pybind11/pull/4678>`_
Build system improvements: 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://github.com/pybind/pybind11/pull/4719>`_
* Update clang-tidy to 15 in CI. * Update clang-tidy to 15 in CI.
`#4387 <https://github.com/pybind/pybind11/pull/4387>`_ `#4387 <https://github.com/pybind/pybind11/pull/4387>`_
* Moved the linting framework over to Ruff. * Moved the linting framework over to Ruff.
`#4483 <https://github.com/pybind/pybind11/pull/4483>`_ `#4483 <https://github.com/pybind/pybind11/pull/4483>`_
* Skip lto checks and target generation when * Skip ``lto`` checks and target generation when
``CMAKE_INTERPROCEDURAL_OPTIMIZATION`` is defined. ``CMAKE_INTERPROCEDURAL_OPTIMIZATION`` is defined.
`#4643 <https://github.com/pybind/pybind11/pull/4643>`_ `#4643 <https://github.com/pybind/pybind11/pull/4643>`_
@ -85,6 +118,12 @@ Build system improvements:
(macOS 10.9+). (macOS 10.9+).
`#4639 <https://github.com/pybind/pybind11/pull/4639>`_ `#4639 <https://github.com/pybind/pybind11/pull/4639>`_
* PyPy 3.10 support was added, PyPy 3.7 support was dropped.
`#4728 <https://github.com/pybind/pybind11/pull/4728>`_
* Testing with Python 3.12 beta releases was added.
`#4713 <https://github.com/pybind/pybind11/pull/4713>`_
Version 2.10.4 (Mar 16, 2023) Version 2.10.4 (Mar 16, 2023)
----------------------------- -----------------------------

View File

@ -33,13 +33,15 @@ If you don't have nox, you should either use ``pipx run nox`` instead, or use
- Run ``nox -s tests_packaging`` to ensure this was done correctly. - Run ``nox -s tests_packaging`` to ensure this was done correctly.
- Ensure that all the information in ``setup.cfg`` is up-to-date, like - Ensure that all the information in ``setup.cfg`` is up-to-date, like
supported Python versions. supported Python versions.
- Add release date in ``docs/changelog.rst``. - Add release date in ``docs/changelog.rst`` and integrate the output of
- Check to make sure ``nox -s make_changelog``.
`needs-changelog <https://github.com/pybind/pybind11/pulls?q=is%3Apr+is%3Aclosed+label%3A%22needs+changelog%22>`_ - Note that the ``make_changelog`` command inspects
issues are entered in the changelog (clear the label when done). `needs changelog <https://github.com/pybind/pybind11/pulls?q=is%3Apr+is%3Aclosed+label%3A%22needs+changelog%22>`_.
- Manually clear the ``needs changelog`` labels using the GitHub web
interface (very easy: start by clicking the link above).
- ``git add`` and ``git commit``, ``git push``. **Ensure CI passes**. (If it - ``git add`` and ``git commit``, ``git push``. **Ensure CI passes**. (If it
fails due to a known flake issue, either ignore or restart CI.) fails due to a known flake issue, either ignore or restart CI.)
- Add a release branch if this is a new minor version, or update the existing release branch if it is a patch version - Add a release branch if this is a new MINOR version, or update the existing release branch if it is a patch version
- New branch: ``git checkout -b vX.Y``, ``git push -u origin vX.Y`` - New branch: ``git checkout -b vX.Y``, ``git push -u origin vX.Y``
- Update branch: ``git checkout vX.Y``, ``git merge <release branch>``, ``git push`` - Update branch: ``git checkout vX.Y``, ``git merge <release branch>``, ``git push``
- Update tags (optional; if you skip this, the GitHub release makes a - Update tags (optional; if you skip this, the GitHub release makes a
@ -48,7 +50,9 @@ If you don't have nox, you should either use ``pipx run nox`` instead, or use
- ``git push --tags``. - ``git push --tags``.
- Update stable - Update stable
- ``git checkout stable`` - ``git checkout stable``
- ``git merge master`` - ``git merge -X theirs vX.Y.Z``
- ``git diff vX.Y.Z``
- Carefully review and reconcile any diffs. There should be none.
- ``git push`` - ``git push``
- Make a GitHub release (this shows up in the UI, sends new release - Make a GitHub release (this shows up in the UI, sends new release
notifications to users watching releases, and also uploads PyPI packages). notifications to users watching releases, and also uploads PyPI packages).
@ -67,9 +71,10 @@ If you don't have nox, you should either use ``pipx run nox`` instead, or use
- Make sure you are on master, not somewhere else: ``git checkout master`` - Make sure you are on master, not somewhere else: ``git checkout master``
- Update version macros in ``include/pybind11/detail/common.h`` (set PATCH to - Update version macros in ``include/pybind11/detail/common.h`` (set PATCH to
``0.dev1`` and increment MINOR). ``0.dev1`` and increment MINOR).
- Update ``_version.py`` to match - Update ``pybind11/_version.py`` to match
- Run ``nox -s tests_packaging`` to ensure this was done correctly. - Run ``nox -s tests_packaging`` to ensure this was done correctly.
- Add a spot for in-development updates in ``docs/changelog.rst``. - If the release was a new MINOR version, add a new `IN DEVELOPMENT`
section in ``docs/changelog.rst``.
- ``git add``, ``git commit``, ``git push`` - ``git add``, ``git commit``, ``git push``
If a version branch is updated, remember to set PATCH to ``1.dev1``. If a version branch is updated, remember to set PATCH to ``1.dev1``.

View File

@ -10,12 +10,12 @@
#pragma once #pragma once
#define PYBIND11_VERSION_MAJOR 2 #define PYBIND11_VERSION_MAJOR 2
#define PYBIND11_VERSION_MINOR 11 #define PYBIND11_VERSION_MINOR 12
#define PYBIND11_VERSION_PATCH 0.dev1 #define PYBIND11_VERSION_PATCH 0.dev1
// Similar to Python's convention: https://docs.python.org/3/c-api/apiabiversion.html // Similar to Python's convention: https://docs.python.org/3/c-api/apiabiversion.html
// Additional convention: 0xD = dev // Additional convention: 0xD = dev
#define PYBIND11_VERSION_HEX 0x020B00D1 #define PYBIND11_VERSION_HEX 0x020C00D1
// Define some generic pybind11 helper macros for warning management. // Define some generic pybind11 helper macros for warning management.
// //

View File

@ -8,5 +8,5 @@ def _to_int(s: str) -> Union[int, str]:
return s return s
__version__ = "2.11.0.dev1" __version__ = "2.12.0.dev1"
version_info = tuple(_to_int(s) for s in __version__.split(".")) version_info = tuple(_to_int(s) for s in __version__.split("."))