Skip to content

chore: prepare for 3.0.0rc4 #5736

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 33 additions & 26 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@ New Features:
trampoline objects, and `std::enable_shared_from_this`.
[#5542](https://github.com/pybind/pybind11/pull/5542)

- Added support for `std::shared_ptr<const T>` in `py::init()` when using
`py::smart_holder`, complementing existing support for
`std::unique_ptr<const T>`.
[#5731](https://github.com/pybind/pybind11/pull/5731)

- Support const-only smart pointers.
[#5718](https://github.com/pybind/pybind11/pull/5718)

- Eliminate cross-DSO RTTI reliance from `trampoline_self_life_support` functionality, `smart_holder` deleter detection, and other
`smart_holder` bookkeeping. Resolves platform-specific issues on macOS related to cross-DSO `dynamic_cast` and `typeid` mismatches.
[#5728](https://github.com/pybind/pybind11/pull/5728) (replaces [#5700](https://github.com/pybind/pybind11/pull/5700))

- Changed `PYBIND11_MODULE` macro implementation to perform multi-phase
module initialization (PEP 489) behind the scenes.
[#5574](https://github.com/pybind/pybind11/pull/5574) and avoid destruction
Expand All @@ -64,6 +76,9 @@ New Features:
- Modify internals pointer-to-pointer implementation to not use `thread_local` (better iOS support).
[#5709](https://github.com/pybind/pybind11/pull/5709)

- Support implementations without subinterpreter support.
[#5732](https://github.com/pybind/pybind11/pull/5732)

- Changed `PYBIND11_EMBEDDED_MODULE` macro implementation to perform
multi-phase module initialization (PEP 489) behind the scenes and to
support `py::mod_gil_not_used()`,
Expand All @@ -85,6 +100,9 @@ New Features:
- Fix signature for functions with a `native_enum` in the signature.
[#5619](https://github.com/pybind/pybind11/pull/5619)

- Support `py::numpy_scalar<>` / `py::make_scalar()` for NumPy types.
[#5726](https://github.com/pybind/pybind11/pull/5726)

- A `py::release_gil_before_calling_cpp_dtor` option (for `py::class_`)
was added to resolve the long-standing issue \#1446.
[#5522](https://github.com/pybind/pybind11/pull/5522)
Expand Down Expand Up @@ -124,7 +142,7 @@ New Features:
update example for `pybind11::custom_type_setup` in documentation.
[#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) \|
[#5706](https://github.com/pybind/pybind11/pull/5706)

Expand Down Expand Up @@ -216,12 +234,6 @@ Bug fixes:
[#5381](https://github.com/pybind/pybind11/pull/5381)
- Disable false-positive GCC 12 Bound Check warning.
[#5355](https://github.com/pybind/pybind11/pull/5355)
- fix: using `__cpp_nontype_template_args` instead of
`__cpp_nontype_template_parameter_class`.
[#5330](https://github.com/pybind/pybind11/pull/5330)
- Properly translate C++ exception to Python exception when creating
Python buffer from wrapped object.
[#5324](https://github.com/pybind/pybind11/pull/5324)
- Update the dict when restoring pickles, instead of assigning a
replacement dict.
[#5658](https://github.com/pybind/pybind11/pull/5658)
Expand All @@ -232,8 +244,6 @@ Bug fixes:
- Change the behavior of the default constructor of `py::slice` to be
equivalent to `::` in Python.
[#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):

Expand All @@ -254,10 +264,9 @@ Bug fixes and features (CMake):
- Add support for running pybind11's tests via presets in CMake 3.25+.
[#5655](https://github.com/pybind/pybind11/pull/5655) and support `--fresh`.
[#5668](https://github.com/pybind/pybind11/pull/5668)
- Restructure venv support to support `--fresh`, make in build folder.
[#5668](https://github.com/pybind/pybind11/pull/5668)

* Presets now generate `compile_commands.json`.
- Experimental CMake support for Android.
[#5733](https://github.com/pybind/pybind11/pull/5733)
- Presets now generate `compile_commands.json`.
[#5685](https://github.com/pybind/pybind11/pull/5685)

Bug fixes (free-threading):
Expand All @@ -282,7 +291,7 @@ Internals:
that it can easily be reused.
[#5614](https://github.com/pybind/pybind11/pull/5614)

* Use CPython macros to construct `PYBIND11_VERSION_HEX`.
- Use CPython macros to construct `PYBIND11_VERSION_HEX`.
[#5683](https://github.com/pybind/pybind11/pull/5683)

Documentation:
Expand All @@ -293,10 +302,6 @@ Documentation:
- A new "Double locking, deadlocking, GIL" document was added.
[#5394](https://github.com/pybind/pybind11/pull/5394)

- Adds an answer (FAQ) for "What is a highly conclusive and simple way
to find memory leaks?".
[#5340](https://github.com/pybind/pybind11/pull/5340)

- Add documenting for free-threading and subinterpreters.
[#5659](https://github.com/pybind/pybind11/pull/5659)

Expand All @@ -309,20 +314,20 @@ Tests:
compiling using `clang` on Linux with the `-funsigned-char` flag.
[#5545](https://github.com/pybind/pybind11/pull/5545)

- Test PyPy3.11 in CI.
[#5534](https://github.com/pybind/pybind11/pull/5534)

- CI testing now includes
`-Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls`
in some jobs.
[#5523](https://github.com/pybind/pybind11/pull/5523)

* Add nightly wheels to scientific-python's nightly wheelhouse.
- Add nightly wheels to scientific-python's nightly wheelhouse.
[#5675](https://github.com/pybind/pybind11/pull/5675)

* Expect free-threaded warning when loading a non-free-threaded module.
- Expect free-threaded warning when loading a non-free-threaded module.
[#5680](https://github.com/pybind/pybind11/pull/5680)

- Run pytest under Python devmode.
[#5715](https://github.com/pybind/pybind11/pull/5715)

New and removed platforms:

- Support Python 3.14 (beta 1+).
Expand All @@ -337,15 +342,18 @@ New and removed platforms:

- Support for PyPy 3.11 added.
[#5508](https://github.com/pybind/pybind11/pull/5508)
And test in ci.
[#5534](https://github.com/pybind/pybind11/pull/5534)

- Support for PyPy 3.8 and 3.9 was dropped.
[#5578](https://github.com/pybind/pybind11/pull/5578)

- Support for Python 3.7 was removed. (Official end-of-life:
2023-06-27). [#5191](https://github.com/pybind/pybind11/pull/5191)
2023-06-27).
[#5191](https://github.com/pybind/pybind11/pull/5191)

- Support for CMake older than 3.15 removed. CMake 3.15-4.0 supported.
[#5304](https://github.com/pybind/pybind11/pull/5304) and fix regression [#5688](https://github.com/pybind/pybind11/pull/5688).
[#5304](https://github.com/pybind/pybind11/pull/5304) and fix regression [#5691](https://github.com/pybind/pybind11/pull/5691).

- Use scikit-build-core for the build backend for the PyPI `pybind11`.
The CMake generation has been moved to the sdist-\>wheel step.
Expand All @@ -362,7 +370,6 @@ New and removed platforms:
- 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)

New Features:
Expand Down
4 changes: 2 additions & 2 deletions include/pybind11/detail/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
// Use 0xA0 (LEVEL=0xA, SERIAL=0) for development versions.
// - For stable releases, set the serial to 0.
#define PYBIND11_VERSION_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA
#define PYBIND11_VERSION_RELEASE_SERIAL 3
#define PYBIND11_VERSION_RELEASE_SERIAL 4
// String version of (micro, release level, release serial), e.g.: 0a0, 0b1, 0rc1, 0
#define PYBIND11_VERSION_PATCH 0rc3
#define PYBIND11_VERSION_PATCH 0rc4
/* -- end version constants -- */

#if !defined(Py_PACK_FULL_VERSION)
Expand Down
Loading