Skip to content

Commit a79e3e7

Browse files
committed
docs: update for recent additions
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 679978f commit a79e3e7

File tree

2 files changed

+96
-14
lines changed

2 files changed

+96
-14
lines changed

docs/changelog.rst

Lines changed: 95 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,29 @@ New Features:
2525
and ``std::enable_shared_from_this``.
2626
`#5542 <https://github.com/pybind/pybind11/pull/5542>`_
2727

28-
* Remove support for pybind11 v2 internals versions (4, 5, 6).
29-
(The internals version number has been bumped for pybind11 v3.)
30-
`#5512 <https://github.com/pybind/pybind11/pull/5512>`_ |
31-
`#5530 <https://github.com/pybind/pybind11/pull/5530>`_
32-
33-
* (CMake) Enable FindPython mode by default, with a ``COMPAT`` mode that sets some of the old variables to ease transition.
28+
* Support for sub-interpreters (both isolated (with separate GILs) and legacy
29+
(with a global GIL). Add the
30+
``py::multiple_interpreters::per_interpreter_gil()`` tag (or,
31+
``py::multiple_interpreters::shared_gil()`` for legacy interpreter support)
32+
to ``PYBIND11_MODULE`` calls (as the third parameter) to indicate that a
33+
module supports running with sub-interpreters.
34+
`#5564 <https://github.com/pybind/pybind11/pull/5564>`_
35+
36+
* (CMake) Enable FindPython mode by default, with a ``COMPAT`` mode that sets
37+
some of the old variables to ease transition.
3438
`#5553 <https://github.com/pybind/pybind11/pull/5553>`_
3539

3640
* ``py::native_enum`` was added, for conversions between Python's native (stdlib) enum types and C++ enums.
3741
`#5555 <https://github.com/pybind/pybind11/pull/5555>`_
3842

39-
* A ``py::release_gil_before_calling_cpp_dtor`` option (for ``py::class_``) was added to resolve the long-standing issue #1446.
43+
* Add class doc string to ``py::native_enum``.
44+
`#5617 <https://github.com/pybind/pybind11/pull/5617>`_.
45+
46+
* Fix signature for functions with a native_enum in the signature.
47+
`#5619 <https://github.com/pybind/pybind11/pull/5619>`_
48+
49+
* A ``py::release_gil_before_calling_cpp_dtor`` option (for ``py::class_``) was
50+
added to resolve the long-standing issue #1446.
4051
`#5522 <https://github.com/pybind/pybind11/pull/5522>`_
4152

4253
* Add ``dtype::normalized_num`` and ``dtype::num_of``.
@@ -45,7 +56,9 @@ New Features:
4556
* Add support for ``array_t<handle>`` and ``array_t<object>``.
4657
`#5427 <https://github.com/pybind/pybind11/pull/5427>`_
4758

48-
* Added ``py::warnings`` namespace with ``py::warnings::warn`` and ``py::warnings::new_warning_type`` that provides the interface for Python warnings.
59+
* Added ``py::warnings`` namespace with ``py::warnings::warn`` and
60+
``py::warnings::new_warning_type`` that provides the interface for Python
61+
warnings.
4962
`#5291 <https://github.com/pybind/pybind11/pull/5291>`_
5063

5164
* stl.h ``list|set|map_caster`` were made more user friendly: it is no longer
@@ -56,10 +69,13 @@ New Features:
5669
* The ``array_caster`` in pybind11/stl.h was enhanced to support value types that are not default-constructible.
5770
`#5305 <https://github.com/pybind/pybind11/pull/5305>`_
5871

59-
* ``pybind11/conduit/pybind11_platform_abi_id.h`` was factored out, to maximize reusability of ``PYBIND11_PLATFORM_ABI_ID`` (for other Python/C++ binding systems).
72+
* ``pybind11/conduit/pybind11_platform_abi_id.h`` was factored out, to maximize
73+
reusability of ``PYBIND11_PLATFORM_ABI_ID`` (for other Python/C++ binding
74+
systems).
6075
`#5375 <https://github.com/pybind/pybind11/pull/5375>`_
6176

62-
* Changed ``PYBIND11_MODULE`` macro implementation to perform multi-phase module initialization (PEP 489) behind the scenes.
77+
* Changed ``PYBIND11_MODULE`` macro implementation to perform multi-phase
78+
module initialization (PEP 489) behind the scenes.
6379
`#5574 <https://github.com/pybind/pybind11/pull/5574>`_
6480

6581
* Added support for finding pybind11 using pkgconf distributed on pypi.
@@ -93,7 +109,8 @@ New Features (typing):
93109
* Add ``attr_with_type`` for declaring attribute types and ``Final``, ``ClassVar`` type annotations.
94110
`#5460 <https://github.com/pybind/pybind11/pull/5460>`_
95111

96-
* Allow annotate methods with ``py::pos_only`` when only have the ``self`` argument. Make arguments for auto-generated dunder methods positional-only.
112+
* Allow annotate methods with ``py::pos_only`` when only have the ``self``
113+
argument. Make arguments for auto-generated dunder methods positional-only.
97114
`#5403 <https://github.com/pybind/pybind11/pull/5403>`_
98115

99116
* Added ``py::Args`` and ``py::KWArgs`` to enable custom type hinting of ``*args`` and ``**kwargs`` (see PEP 484).
@@ -110,11 +127,34 @@ New Features (typing):
110127
* Fix module type hint.
111128
`#5469 <https://github.com/pybind/pybind11/pull/5469>`_
112129

130+
* Fix Buffer type hint.
131+
`#5662 <https://github.com/pybind/pybind11/pull/5662>`_
132+
133+
* Added support for ``collections.abc`` in type hints and convertible checks of STL casters and ``py::buffer``.
134+
`#5566 <https://github.com/pybind/pybind11/pull/5566>`_
135+
136+
137+
Removals:
138+
139+
* Remove support for pybind11 v2 internals versions (4, 5, 6).
140+
(The internals version number has been bumped for pybind11 v3.)
141+
`#5512 <https://github.com/pybind/pybind11/pull/5512>`_ |
142+
`#5530 <https://github.com/pybind/pybind11/pull/5530>`_
143+
144+
145+
* Remove ``make_simple_namespace`` (added in 2.8.0, deprecated in 2.8.1).
146+
`#5597 <https://github.com/pybind/pybind11/pull/5597>`_
147+
148+
* Legacy-mode option ``PYBIND11_NUMPY_1_ONLY`` has been removed.
149+
`#5595 <https://github.com/pybind/pybind11/pull/5595>`_
150+
151+
* Add a deprecation warning to ``.get_type`` (deprecated in pybind11 2.6 in 2020).
152+
`#5596 <https://github.com/pybind/pybind11/pull/5596>`_
113153

114154
Bug fixes:
115155

116156
* Set ``__file__`` on submodules.
117-
`#5584 <https://github.com/pybind/pybind11/pull/5584>`_
157+
`#5584 <https://github.com/pybind/pybind11/pull/5584>`_. Except on embedded modules. `#5650 <https://github.com/pybind/pybind11/pull/5650>`_
118158

119159
* pybind11-bound functions are now pickleable.
120160
`#5580 <https://github.com/pybind/pybind11/pull/5580>`_
@@ -156,6 +196,19 @@ Bug fixes:
156196
* Properly translate C++ exception to Python exception when creating Python buffer from wrapped object.
157197
`#5324 <https://github.com/pybind/pybind11/pull/5324>`_
158198

199+
* Update the dict when restoring pickles, instead of assigning a replacement dict.
200+
`#5658 <https://github.com/pybind/pybind11/pull/5658>`_
201+
202+
* Properly define ``_DEBUG`` macro to ``1`` instead of defining it without value.
203+
`#5639 <https://github.com/pybind/pybind11/pull/5639>`_
204+
205+
* Fix a missing time cast causing a compile error for newer ICC.
206+
`#5621 <https://github.com/pybind/pybind11/pull/5621>`_
207+
208+
* Change the behavior of the default constructor of ``py::slice`` to be equivalent to ``::`` in Python.
209+
`#5620 <https://github.com/pybind/pybind11/pull/5620>`_
210+
211+
159212

160213
.. fix(cmake)
161214
@@ -170,6 +223,15 @@ Bug fixes (CMake):
170223
* Fix an issue with ``NO_EXTRAS`` adding ``pybind11::windows_extras`` anyway.
171224
`#5378 <https://github.com/pybind/pybind11/pull/5378>`_
172225

226+
* Fix issue with NEW/OLD message showing up.
227+
`#5656 <https://github.com/pybind/pybind11/pull/5656>`_
228+
229+
* Use CMake's warnings as errors if available (CMake 3.24+).
230+
`#5612 <https://github.com/pybind/pybind11/pull/5612>`_
231+
232+
* Add support for running pybind11's tests via presets in CMake 3.25+.
233+
`#5655 <https://github.com/pybind/pybind11/pull/5655>`_
234+
173235

174236
Bug fixes (free-threading):
175237

@@ -184,6 +246,15 @@ Bug fixes (free-threading):
184246
* Added exception translator specific mutex used with ``try_translate_exceptions`` in the free-threaded build for internal locking.
185247
`#5362 <https://github.com/pybind/pybind11/pull/5362>`_
186248

249+
Internals:
250+
251+
* Consolidated all ``PYBIND11_HAS_...`` feature macros into ``pybind11/detail/common.h`` to streamline backward compatibility checks and simplify internal refactoring. This change ensures
252+
consistent macro availability regardless of header inclusion order.
253+
`#5647 <https://github.com/pybind/pybind11/pull/5647>`_
254+
255+
* ``pybind11/gil_simple.h`` was factored out from ``pybind11/gil.h``, so that it can easily be reused.
256+
`#5614 <https://github.com/pybind/pybind11/pull/5614>`_
257+
187258

188259
Documentation:
189260

@@ -196,6 +267,8 @@ Documentation:
196267
* Adds an answer (FAQ) for "What is a highly conclusive and simple way to find memory leaks?".
197268
`#5340 <https://github.com/pybind/pybind11/pull/5340>`_
198269

270+
* Add documenting for free-threading and subinterpreters.
271+
`#5659 <https://github.com/pybind/pybind11/pull/5659>`_
199272

200273
Tests:
201274

@@ -209,9 +282,16 @@ compiling using ``clang`` on Linux with the ``-funsigned-char`` flag.
209282
* Test PyPy3.11 in CI.
210283
`#5534 <https://github.com/pybind/pybind11/pull/5534>`_
211284

285+
* CI testing now includes ``-Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls`` in some jobs.
286+
`#5523 <https://github.com/pybind/pybind11/pull/5523>`_
287+
212288

213289
New and removed platforms:
214290

291+
292+
* Support Python 3.14 (beta 1).
293+
`#5646 <https://github.com/pybind/pybind11/pull/5646>`_
294+
215295
* Added support for GraalPy Python implementation (https://github.com/oracle/graalpython).
216296
`#5380 <https://github.com/pybind/pybind11/pull/5380>`_
217297

@@ -224,10 +304,11 @@ New and removed platforms:
224304
* Support for Python 3.7 was removed. (Official end-of-life: 2023-06-27).
225305
`#5191 <https://github.com/pybind/pybind11/pull/5191>`_
226306

227-
* Support for CMake older than 3.15 removed. CMake 3.15-3.30 supported.
307+
* Support for CMake older than 3.15 removed. CMake 3.15-4.0 supported.
228308
`#5304 <https://github.com/pybind/pybind11/pull/5304>`_
229309

230-
310+
* Use scikit-build-core for the build backend for the PyPI ``pybind11``. The CMake generation has been moved to the sdist->wheel step. ``PYBIND11_GLOBAL_PREFIX`` has been removed.
311+
`#5598 <https://github.com/pybind/pybind11/pull/5598>`_
231312

232313
Version 2.13.6 (September 13, 2024)
233314
-----------------------------------

tools/make_changelog.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"tests": "Tests",
4848
"ci": "CI",
4949
"chore": "Other",
50+
"chore(cmake)": "",
5051
"unknown": "Uncategorised",
5152
}
5253
cats: dict[str, list[str]] = {c: [] for c in cats_descr}

0 commit comments

Comments
 (0)