@@ -13,6 +13,78 @@ Changes will be added here periodically from the "Suggested changelog
1313entry" block in pull request descriptions.
1414
1515
16+ ## Version 3.1.0 (this is still a work in progress)
17+
18+ New Features:
19+
20+ - Changed strict-mode numeric conversions for PEP 484 compatibility: ` float ` now accepts ` int ` , and ` complex ` now accepts ` int ` and ` float ` .
21+ [ #5879 ] ( https://github.com/pybind/pybind11/pull/5879 )
22+
23+ Internal:
24+
25+ - Improved ` py::enum_ ` operator performance by restoring type-specific implementations.
26+ [ #5887 ] ( https://github.com/pybind/pybind11/pull/5887 )
27+
28+ - Optimized internal ` std::unordered_map ` /` std::unordered_set ` hashing paths with ` noexcept ` .
29+ [ #5960 ] ( https://github.com/pybind/pybind11/pull/5960 )
30+
31+
32+ ## Version 3.0.3 (March 31, 2026)
33+
34+ Bug fixes:
35+
36+ - Fixed TSS key exhaustion in ` implicitly_convertible() ` when many implicit conversions are registered across large module sets.
37+ [ #6020 ] ( https://github.com/pybind/pybind11/pull/6020 )
38+
39+ - Fixed heap-buffer-overflow in ` pythonbuf ` with undersized buffers by enforcing a minimum buffer size.
40+ [ #6019 ] ( https://github.com/pybind/pybind11/pull/6019 )
41+
42+ - Fixed virtual-inheritance pointer offset crashes when dispatching inherited methods through virtual bases.
43+ [ #6017 ] ( https://github.com/pybind/pybind11/pull/6017 )
44+
45+ - Fixed ` free(): invalid pointer ` crashes during interpreter shutdown with ` py::enum_<> ` by duplicating late-added ` def_property_static ` argument strings.
46+ [ #6015 ] ( https://github.com/pybind/pybind11/pull/6015 )
47+
48+ - Fixed ` function_record ` heap-type deallocation to call ` PyObject_Free() ` and decref the type.
49+ [ #6010 ] ( https://github.com/pybind/pybind11/pull/6010 )
50+
51+ - Hardened ` PYBIND11_MODULE_PYINIT ` and ` get_internals() ` against module-initialization crashes.
52+ [ #6018 ] ( https://github.com/pybind/pybind11/pull/6018 )
53+
54+ - Fixed ` static_pointer_cast ` build failure with virtual inheritance in ` holder_caster_foreign_helpers.h ` .
55+ [ #6014 ] ( https://github.com/pybind/pybind11/pull/6014 )
56+
57+ - Fixed ambiguous ` factory ` template specialization that caused compilation failures with nvcc + GCC 14.
58+ [ #6011 ] ( https://github.com/pybind/pybind11/pull/6011 )
59+
60+ - Fixed crash in ` def_readwrite ` for non-smart-holder properties of smart-holder classes.
61+ [ #6008 ] ( https://github.com/pybind/pybind11/pull/6008 )
62+
63+ - Fixed memory leak for ` py::dynamic_attr() ` objects on Python 3.13+ by clearing managed ` __dict__ ` contents during deallocation.
64+ [ #5999 ] ( https://github.com/pybind/pybind11/pull/5999 )
65+
66+ - Fixed binding of ` noexcept ` and ref-qualified (` & ` , ` && ` ) methods inherited from unregistered base classes.
67+ [ #5992 ] ( https://github.com/pybind/pybind11/pull/5992 )
68+
69+ Internal:
70+
71+ - Moved ` tomlkit ` dependency to the dev dependency group.
72+ [ #5990 ] ( https://github.com/pybind/pybind11/pull/5990 )
73+
74+ - Switched to newer public CPython APIs (` PyType_GetFlags ` and public vectorcall APIs where available).
75+ [ #6005 ] ( https://github.com/pybind/pybind11/pull/6005 )
76+
77+ Tests:
78+
79+ - Made an async callback test deterministic by replacing fixed sleep with bounded waiting.
80+ [ #5986 ] ( https://github.com/pybind/pybind11/pull/5986 )
81+
82+ CI:
83+
84+ - Re-enabled Android tests in the cibuildwheel workflow.
85+ [ #6001 ] ( https://github.com/pybind/pybind11/pull/6001 )
86+
87+
1688## Version 3.0.2 (February 16, 2026)
1789
1890New Features:
0 commit comments