Skip to content

Commit 92f3688

Browse files
committed
docs: update changelog
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 1015c74 commit 92f3688

File tree

2 files changed

+213
-6
lines changed

2 files changed

+213
-6
lines changed

docs/changelog.rst

Lines changed: 207 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,225 @@ IN DEVELOPMENT
1515

1616
Changes will be summarized here periodically.
1717

18+
1819
New Features:
1920

20-
* Support for Python 3.7 was removed. (Official end-of-life: 2023-06-27).
21-
`#5191 <https://github.com/pybind/pybind11/pull/5191>`_
21+
* The ``smart-holder`` branch has been merged, enabling ``py::class_<T,
22+
py::smart_holder>``, which handles two-way conversion with
23+
``std::unique_ptr<T>`` and ``std::shared_ptr<T>`` (simultaneously), disowning
24+
a Python object being passed to ``std::unique_ptr<T>``, trampoline objects,
25+
and ``std::enable_shared_from_this``.
26+
`#5542 <https://github.com/pybind/pybind11/pull/5542>`_
27+
28+
* Remove pybind11 2.x internals versions, the internals version number has been
29+
bumped. Using ``self._pybind11_conduit_v1_()`` (backported to several 2.x
30+
versions) should keep extension compatibility.
31+
`#5512 <https://github.com/pybind/pybind11/pull/5512>`_
32+
`#5530 <https://github.com/pybind/pybind11/pull/5530>`_
33+
34+
* (CMake) Enable FindPython mode by default, with a ``COMPAT`` mode that sets some of the old variables to ease transition.
35+
`#5553 <https://github.com/pybind/pybind11/pull/5553>`_
36+
37+
* ``py::native_enum`` was added, for conversions between Python's native (stdlib) enum types and C++ enums.
38+
`#5555 <https://github.com/pybind/pybind11/pull/5555>`_
39+
40+
* A ``py::release_gil_before_calling_cpp_dtor`` option (for ``py::class_``) was added to resolve the long-standing issue #1446.
41+
`#5522 <https://github.com/pybind/pybind11/pull/5522>`_
42+
43+
* Add ``dtype::normalized_num`` and ``dtype::num_of``.
44+
`#5429 <https://github.com/pybind/pybind11/pull/5429>`_
45+
46+
* Add support for ``array_t<handle>`` and ``array_t<object>``.
47+
`#5427 <https://github.com/pybind/pybind11/pull/5427>`_
48+
49+
* Added ``py::warnings`` namespace with ``py::warnings::warn`` and ``py::warnings::new_warning_type`` that provides the interface for Python warnings.
50+
`#5291 <https://github.com/pybind/pybind11/pull/5291>`_
2251

2352
* stl.h ``list|set|map_caster`` were made more user friendly: it is no longer
2453
necessary to explicitly convert Python iterables to ``tuple()``, ``set()``,
2554
or ``map()`` in many common situations.
2655
`#4686 <https://github.com/pybind/pybind11/pull/4686>`_
2756

57+
* The ``array_caster`` in pybind11/stl.h was enhanced to support value types that are not default-constructible.
58+
`#5305 <https://github.com/pybind/pybind11/pull/5305>`_
59+
60+
* ``pybind11/conduit/pybind11_platform_abi_id.h`` was factored out, to maximize reusability of ``PYBIND11_PLATFORM_ABI_ID`` (for other Python/C++ binding systems).
61+
`#5375 <https://github.com/pybind/pybind11/pull/5375>`_
62+
63+
* Changed ``PYBIND11_MODULE`` macro implementation to perform multi-phase module initialization (PEP 489) behind the scenes.
64+
`#5574 <https://github.com/pybind/pybind11/pull/5574>`_
65+
66+
* Added support for finding pybind11 using pkgconf distributed on pypi.
67+
`#5552 <https://github.com/pybind/pybind11/pull/5552>`_
68+
69+
* Support ``--extension-suffix`` on the pybind11 command.
70+
`#5360 <https://github.com/pybind/pybind11/pull/5360>`_
71+
72+
73+
74+
New Features (typing):
75+
76+
.. feat(types)
77+
78+
* Added option for different arg/return type hints to ``type_caster``. Updated
79+
``stl/filesystem`` to use correct arg/return type hints. Updated
80+
``pybind11::typing`` to use correct arg/return type hints for nested types.
81+
`#5450 <https://github.com/pybind/pybind11/pull/5450>`_
82+
83+
84+
* Updated type hint for ``py::capsule`` to ``type.CapsuleType``.
85+
`#5567 <https://github.com/pybind/pybind11/pull/5567>`_
86+
87+
* Adds support for ``typing.SupportsInt`` and ``typing.SupportsFloat``. Update ``Final`` to be narrower type hint. Make ``std::function`` match ``Callable`` type. Fix ``io_name`` bug in
88+
``attr_with_type_hint``.
89+
`#5540 <https://github.com/pybind/pybind11/pull/5540>`_
90+
91+
* Rework of arg/return type hints to support ``.noconvert()``.
92+
`#5486 <https://github.com/pybind/pybind11/pull/5486>`_
93+
94+
* add ``attr_with_type`` for declaring attribute types and ``Final``, ``ClassVar`` type annotations.
95+
`#5460 <https://github.com/pybind/pybind11/pull/5460>`_
96+
97+
* Allow annotate methods with ``py::pos_only`` when only have the ``self`` argument. Make arguments for auto-generated dunder methods positional-only.
98+
`#5403 <https://github.com/pybind/pybind11/pull/5403>`_
99+
100+
* Added ``py::Args`` and ``py::KWArgs`` to enable custom type hinting of ``*args`` and ``**kwargs`` (see PEP 484).
101+
`#5357 <https://github.com/pybind/pybind11/pull/5357>`_
102+
103+
* Switched to ``numpy.typing.NDArray`` and ``numpy.typing.ArrayLike``.
104+
`#5212 <https://github.com/pybind/pybind11/pull/5212>`_
105+
106+
.. fix(types)
107+
108+
* Use ``numpy.object_`` instead of ``object``.
109+
`#5571 <https://github.com/pybind/pybind11/pull/5571>`_
110+
111+
* Fix module type hint.
112+
`#5469 <https://github.com/pybind/pybind11/pull/5469>`_
113+
114+
115+
116+
Bug fixes:
117+
118+
* Set ``__file__`` on submodules.
119+
`#5584 <https://github.com/pybind/pybind11/pull/5584>`_
120+
121+
* pybind11-bound functions are now pickleable.
122+
`#5580 <https://github.com/pybind/pybind11/pull/5580>`_
123+
124+
* Fix bug in ``attr_with_type_hint`` to allow objects to be in ``attr_with_type_hint``.
125+
`#5576 <https://github.com/pybind/pybind11/pull/5576>`_
126+
127+
* A ``-Wmaybe-uninitialized`` warning suppression was added in ``pybind11/eigen/matrix.h``.
128+
`#5516 <https://github.com/pybind/pybind11/pull/5516>`_
129+
130+
* ``PYBIND11_WARNING_POP`` was incorrectly defined as ``PYBIND11_PRAGMA(clang diagnostic push)``.
131+
`#5448 <https://github.com/pybind/pybind11/pull/5448>`_
132+
133+
* ``PYBIND11_PLATFORM_ABI_ID`` (which is used in composing ``PYBIND11_INTERNALS_ID``) was modernized to reflect actual ABI compatibility more accurately.
134+
`#5439 <https://github.com/pybind/pybind11/pull/5439>`_
135+
136+
* Fix buffer protocol implementation.
137+
`#5407 <https://github.com/pybind/pybind11/pull/5407>`_
138+
139+
* Fix iterator increment operator does not skip first item.
140+
`#5400 <https://github.com/pybind/pybind11/pull/5400>`_
141+
142+
* When getting or deleting an element in a container bound by ``bind_map``, print the key in ``KeyError`` if it does not exist.
143+
`#5397 <https://github.com/pybind/pybind11/pull/5397>`_
144+
145+
* ``pybind11::builtin_exception`` is now explicitly exported when linked to libc++.
146+
`#5390 <https://github.com/pybind/pybind11/pull/5390>`_
147+
148+
* Allow subclasses of ``py::args`` and ``py::kwargs``.
149+
`#5381 <https://github.com/pybind/pybind11/pull/5381>`_
150+
151+
* Disable false-positive GCC 12 Bound Check warning.
152+
`#5355 <https://github.com/pybind/pybind11/pull/5355>`_
153+
154+
* fix: using ``__cpp_nontype_template_args`` instead of ``__cpp_nontype_template_parameter_class``.
155+
`#5330 <https://github.com/pybind/pybind11/pull/5330>`_
156+
157+
* Properly translate C++ exception to Python exception when creating Python buffer from wrapped object.
158+
`#5324 <https://github.com/pybind/pybind11/pull/5324>`_
159+
160+
* Properly handle MSVC MT/MD incompatibility in ``PYBIND11_BUILD_ABI``.
161+
`#4953 <https://github.com/pybind/pybind11/pull/4953>`_
162+
163+
164+
165+
166+
.. fix(cmake)
167+
168+
Bug fixes (CMake):
169+
170+
* Add an author warning that auto-calculated ``PYTHON_MODULE_EXTENSION`` may not respect ``SETUPTOOLS_EXT_SUFFIX`` during cross-compilation.
171+
`#5495 <https://github.com/pybind/pybind11/pull/5495>`_
172+
173+
* Don't strip with ``CMAKE_BUILD_TYPE`` None.
174+
`#5392 <https://github.com/pybind/pybind11/pull/5392>`_
175+
176+
* Fix an issue with ``NO_EXTRAS`` adding ``pybind11::windows_extras`` anyway.
177+
`#5378 <https://github.com/pybind/pybind11/pull/5378>`_
178+
179+
180+
Bug fixes (free-threading):
181+
182+
.. fix(free-threading)
183+
184+
* Fix data race in free threaded CPython when accessing a shared static variable.
185+
`#5494 <https://github.com/pybind/pybind11/pull/5494>`_
186+
187+
* A free-threading data race in ``all_type_info()`` was fixed.
188+
`#5419 <https://github.com/pybind/pybind11/pull/5419>`_
189+
190+
* Added exception translator specific mutex used with ``try_translate_exceptions`` in the free-threaded build for internal locking.
191+
`#5362 <https://github.com/pybind/pybind11/pull/5362>`_
192+
193+
194+
Documentation:
195+
196+
* Improved ``reference_internal`` policy documentation.
197+
`#5528 <https://github.com/pybind/pybind11/pull/5528>`_
198+
199+
* A new "Double locking, deadlocking, GIL" document was added.
200+
`#5394 <https://github.com/pybind/pybind11/pull/5394>`_
201+
202+
* Adds an answer (FAQ) for "What is a highly conclusive and simple way to find memory leaks?".
203+
`#5340 <https://github.com/pybind/pybind11/pull/5340>`_
204+
205+
206+
Tests:
207+
208+
* Download the final Catch2 2.x release if Catch download is requested.
209+
`#5568 <https://github.com/pybind/pybind11/pull/5568>`_
210+
211+
* Explicitly used ``signed char`` for two numpy dtype tests. As seen when
212+
compiling using ``clang`` on Linux with the ``-funsigned-char`` flag.
213+
`#5545 <https://github.com/pybind/pybind11/pull/5545>`_
214+
215+
* Test PyPy3.11 in CI.
216+
`#5534 <https://github.com/pybind/pybind11/pull/5534>`_
217+
218+
219+
New and removed platforms:
220+
221+
* Added support for GraalPy Python implementation (https://github.com/oracle/graalpython).
222+
`#5380 <https://github.com/pybind/pybind11/pull/5380>`_
223+
224+
* Support for PyPy 3.11 added.
225+
`#5508 <https://github.com/pybind/pybind11/pull/5508>`_
226+
227+
* Support for PyPy 3.8 and 3.9 was dropped.
228+
`#5578 <https://github.com/pybind/pybind11/pull/5578>`_
229+
230+
* Support for Python 3.7 was removed. (Official end-of-life: 2023-06-27).
231+
`#5191 <https://github.com/pybind/pybind11/pull/5191>`_
232+
28233
* Support for CMake older than 3.15 removed. CMake 3.15-3.30 supported.
29234
`#5304 <https://github.com/pybind/pybind11/pull/5304>`_
30235

31-
* The ``array_caster`` in pybind11/stl.h was enhanced to support value types that are not default-constructible.
32-
`#5305 <https://github.com/pybind/pybind11/pull/5305>`_
33236

34-
* Added ``py::warnings`` namespace with ``py::warnings::warn`` and ``py::warnings::new_warning_type`` that provides the interface for Python warnings.
35-
`#5291 <https://github.com/pybind/pybind11/pull/5291>`_
36237

37238
Version 2.13.6 (September 13, 2024)
38239
-----------------------------------

tools/make_changelog.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
#!/usr/bin/env python3
2+
3+
# /// script
4+
# dependencies = ["ghapi", "rich"]
5+
# ///
6+
27
from __future__ import annotations
38

49
import re
@@ -37,6 +42,7 @@
3742
"fix": "Bug fixes",
3843
"fix(types)": "",
3944
"fix(cmake)": "",
45+
"fix(free-threading)": "",
4046
"docs": "Documentation",
4147
"tests": "Tests",
4248
"ci": "CI",

0 commit comments

Comments
 (0)