@ -12,7 +12,7 @@ versioning](http://semver.org) policy.
Changes will be added here periodically from the "Suggested changelog
Changes will be added here periodically from the "Suggested changelog
entry" block in pull request descriptions.
entry" block in pull request descriptions.
## 3.0.0 (RC 2) (May 29 , 2025)
## 3.0.0 (RC 3) (June 4 , 2025)
Since this is a large release, we are providing a release candidate to give
Since this is a large release, we are providing a release candidate to give
projects time to test! We also now provide
projects time to test! We also now provide
@ -58,6 +58,12 @@ New Features:
- Rename macro `PYBIND11_SUBINTERPRETER_SUPPORT` -> `PYBIND11_HAS_SUBINTERPRETER_SUPPORT` to meet naming convention.
- Rename macro `PYBIND11_SUBINTERPRETER_SUPPORT` -> `PYBIND11_HAS_SUBINTERPRETER_SUPPORT` to meet naming convention.
[#5682 ](https://github.com/pybind/pybind11/pull/5682 )
[#5682 ](https://github.com/pybind/pybind11/pull/5682 )
- Allow subinterpreter support to be disabled if defined to 0. This is mostly an emergency workaround, and is not exposed in CMake.
[#5708 ](https://github.com/pybind/pybind11/pull/5708 ) and [#5710 ](https://github.com/pybind/pybind11/pull/5710 )
- Modify internals pointer-to-pointer implementation to not use `thread_local` (better iOS support).
[#5709 ](https://github.com/pybind/pybind11/pull/5709 )
- Changed `PYBIND11_EMBEDDED_MODULE` macro implementation to perform
- Changed `PYBIND11_EMBEDDED_MODULE` macro implementation to perform
multi-phase module initialization (PEP 489) behind the scenes and to
multi-phase module initialization (PEP 489) behind the scenes and to
support `py::mod_gil_not_used()` ,
support `py::mod_gil_not_used()` ,
@ -119,7 +125,8 @@ New Features:
[#5669 ](https://github.com/pybind/pybind11/pull/5669 )
[#5669 ](https://github.com/pybind/pybind11/pull/5669 )
* Added `py::scoped_critical_section` to support free-threaded mode.
* Added `py::scoped_critical_section` to support free-threaded mode.
[#5684 ](https://github.com/pybind/pybind11/pull/5684 )
[#5684 ](https://github.com/pybind/pybind11/pull/5684 ) \|
[#5706 ](https://github.com/pybind/pybind11/pull/5706 )
New Features / fixes (typing):
New Features / fixes (typing):
@ -158,6 +165,8 @@ New Features / fixes (typing):
[#5566 ](https://github.com/pybind/pybind11/pull/5566 )
[#5566 ](https://github.com/pybind/pybind11/pull/5566 )
- Fix `typing` and `collections.abc` type hint ambiguity.
- Fix `typing` and `collections.abc` type hint ambiguity.
[#5663 ](https://github.com/pybind/pybind11/pull/5663 )
[#5663 ](https://github.com/pybind/pybind11/pull/5663 )
- Add `typing_extensions` alternatives for all types that need them.
[#5693 ](https://github.com/pybind/pybind11/pull/5693 )
Removals:
Removals:
@ -223,6 +232,8 @@ Bug fixes:
- Change the behavior of the default constructor of `py::slice` to be
- Change the behavior of the default constructor of `py::slice` to be
equivalent to `::` in Python.
equivalent to `::` in Python.
[#5620 ](https://github.com/pybind/pybind11/pull/5620 )
[#5620 ](https://github.com/pybind/pybind11/pull/5620 )
- Expose required symbol when using clang.
[#5700 ](https://github.com/pybind/pybind11/pull/5700 )
Bug fixes and features (CMake):
Bug fixes and features (CMake):
@ -314,13 +325,16 @@ Tests:
New and removed platforms:
New and removed platforms:
- Support Python 3.14 (beta 1).
- Support Python 3.14 (beta 1+ ).
[#5646 ](https://github.com/pybind/pybind11/pull/5646 )
[#5646 ](https://github.com/pybind/pybind11/pull/5646 )
- Added support for GraalPy Python implementation
- Added support for GraalPy Python implementation
(< https: / / github . com / oracle / graalpython > ).
(< https: / / github . com / oracle / graalpython > ).
[#5380 ](https://github.com/pybind/pybind11/pull/5380 )
[#5380 ](https://github.com/pybind/pybind11/pull/5380 )
- Support and test iOS in CI.
[#5705 ](https://github.com/pybind/pybind11/pull/5705 )
- Support for PyPy 3.11 added.
- Support for PyPy 3.11 added.
[#5508 ](https://github.com/pybind/pybind11/pull/5508 )
[#5508 ](https://github.com/pybind/pybind11/pull/5508 )
@ -339,9 +353,16 @@ New and removed platforms:
[#5598 ](https://github.com/pybind/pybind11/pull/5598 ) and updated
[#5598 ](https://github.com/pybind/pybind11/pull/5598 ) and updated
docs/ci. [#5676 ](https://github.com/pybind/pybind11/pull/5676 )
docs/ci. [#5676 ](https://github.com/pybind/pybind11/pull/5676 )
* clang 20 tested and used for clang-tidy.
- clang 20 tested and used for clang-tidy.
[#5692 ](https://github.com/pybind/pybind11/pull/5692 )
[#5692 ](https://github.com/pybind/pybind11/pull/5692 )
- Drop testing on MSVC 2019 (as it is being removed from GitHub).
[#5712 ](https://github.com/pybind/pybind11/pull/5712 )
- Support Windows C++20 and Linux C++23 in tests.
[#5707 ](https://github.com/pybind/pybind11/pull/5707 )
## Version 2.13.6 (September 13, 2024)
## Version 2.13.6 (September 13, 2024)
New Features:
New Features: