Skip to content

Commit d2413f5

Browse files
authored
docs: add v3.0.3 and v3.1.0 changelog updates. (#6023)
* [skip ci] docs: add v3.0.3 and v3.1.0 changelog updates. Made-with: Cursor * [skip ci] docs: set v3.0.3 release date: March 31, 2026
1 parent 50930ae commit d2413f5

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

docs/changelog.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,78 @@ Changes will be added here periodically from the "Suggested changelog
1313
entry" 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

1890
New Features:

0 commit comments

Comments
 (0)