Skip to content

Commit fc888f7

Browse files
henryiiiCopilot
andauthored
docs: prepare for 3.0.0rc1 (#5679)
* docs: prepare for 3.0.0rc1 Signed-off-by: Henry Schreiner <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Update changelog.md --------- Signed-off-by: Henry Schreiner <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent e8f16e2 commit fc888f7

File tree

2 files changed

+43
-17
lines changed

2 files changed

+43
-17
lines changed

docs/changelog.md

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,30 @@ versioning](http://semver.org) policy.
1212
Changes will be added here periodically from the "Suggested changelog
1313
entry" block in pull request descriptions.
1414

15-
## 3.0.0 RC 1
16-
17-
We may add one more opt-in feature (embedded subinterperters) before the
18-
final release.
15+
## 3.0.0 RC 1 (May 21, 2025)
16+
17+
Since this is a large release, we are providing a release candidate to give
18+
projects time to test! We also now provide
19+
[SPEC 4](https://scientific-python.org/specs/spec-0004/) nightly wheels. We
20+
are hoping to split up `std.h`; that work is approved to be added during the
21+
RC phase if it's ready in time. We expect the RC phase to last around a week.
22+
23+
Pybind11 3.0 includes an ABI bump, the first required bump in many years
24+
on Unix (Windows has had required bumps more often). This release contains
25+
the smart-holder branch, multi-phase init and subinterpreter support,
26+
`py::native_enum`, an interface to warnings, typing improvements, and more.
27+
CMake now defaults to FindPython mode. Please check our upgrade guide for
28+
more info on upgrading!
29+
30+
Support for Python 3.14, 3.14t, GraalPy, and PyPy 3.11 has been added, while
31+
legacy support for Python 3.7, PyPy 3.8/3.9, and CMake \<3.15 has been removed.
32+
Most deprecated features have been kept for this release, but anything
33+
producing a warning in 3.0 may be removed in a future 3.x version. We also now
34+
have a deprecation page.
1935

2036
New Features:
2137

22-
- The `smart-holder` branch has been merged, enabling
38+
- The `smart_holder` branch has been merged, enabling
2339
`py::class_<T, py::smart_holder>`, which handles two-way conversion
2440
with `std::unique_ptr<T>` and `std::shared_ptr<T>` (simultaneously),
2541
disowning a Python object being passed to `std::unique_ptr<T>`,
@@ -43,7 +59,11 @@ New Features:
4359
support `py::mod_gil_not_used()`,
4460
`py::multiple_interpreters::per_interpreter_gil()` and
4561
`py::multiple_interpreters::shared_gil()`.
46-
[#5665](https://github.com/pybind/pybind11/pull/5665)
62+
[#5665](https://github.com/pybind/pybind11/pull/5665) and consolidate code
63+
[#5670](https://github.com/pybind/pybind11/pull/5670)
64+
65+
* Added API in `pybind11/subinterpreter.h` for embedding sub-intepreters (requires Python 3.12+).
66+
[#5666](https://github.com/pybind/pybind11/pull/5666)
4767

4868
- `py::native_enum` was added, for conversions between Python's native
4969
(stdlib) enum types and C++ enums.
@@ -52,7 +72,7 @@ New Features:
5272
- Add class doc string to `py::native_enum`.
5373
[#5617](https://github.com/pybind/pybind11/pull/5617).
5474

55-
- Fix signature for functions with a native_enum in the signature.
75+
- Fix signature for functions with a `native_enum` in the signature.
5676
[#5619](https://github.com/pybind/pybind11/pull/5619)
5777

5878
- A `py::release_gil_before_calling_cpp_dtor` option (for `py::class_`)
@@ -70,7 +90,7 @@ New Features:
7090
Python warnings.
7191
[#5291](https://github.com/pybind/pybind11/pull/5291)
7292

73-
- stl.h `list|set|map_caster` were made more user friendly: it is no
93+
- `stl.h` `list|set|map_caster` were made more user friendly: it is no
7494
longer necessary to explicitly convert Python iterables to `tuple()`,
7595
`set()`, or `map()` in many common situations.
7696
[#4686](https://github.com/pybind/pybind11/pull/4686)
@@ -94,7 +114,7 @@ New Features:
94114
update example for `pybind11::custom_type_setup` in documentation.
95115
[#5669](https://github.com/pybind/pybind11/pull/5669)
96116

97-
New Features (typing):
117+
New Features / fixes (typing):
98118

99119
- Added option for different arg/return type hints to `type_caster`.
100120
Updated `stl/filesystem` to use correct arg/return type hints. Updated
@@ -120,9 +140,6 @@ New Features (typing):
120140
[#5357](https://github.com/pybind/pybind11/pull/5357)
121141
- Switched to `numpy.typing.NDArray` and `numpy.typing.ArrayLike`.
122142
[#5212](https://github.com/pybind/pybind11/pull/5212)
123-
124-
<!-- -->
125-
126143
- Use `numpy.object_` instead of `object`.
127144
[#5571](https://github.com/pybind/pybind11/pull/5571)
128145
- Fix module type hint.
@@ -132,6 +149,8 @@ New Features (typing):
132149
- Added support for `collections.abc` in type hints and convertible
133150
checks of STL casters and `py::buffer`.
134151
[#5566](https://github.com/pybind/pybind11/pull/5566)
152+
- Fix `typing` and `collections.abc` type hint ambiguity.
153+
[#5663](https://github.com/pybind/pybind11/pull/5663)
135154

136155
Removals:
137156

@@ -200,7 +219,7 @@ Bug fixes:
200219

201220
Bug fixes (CMake):
202221

203-
- (CMake) Enable FindPython mode by default, with a `COMPAT` mode that
222+
- Enable FindPython mode by default, with a `COMPAT` mode that
204223
sets some of the old variables to ease transition.
205224
[#5553](https://github.com/pybind/pybind11/pull/5553)
206225
- Add an author warning that auto-calculated `PYTHON_MODULE_EXTENSION`
@@ -215,7 +234,8 @@ Bug fixes (CMake):
215234
- Use CMake's warnings as errors if available (CMake 3.24+).
216235
[#5612](https://github.com/pybind/pybind11/pull/5612)
217236
- Add support for running pybind11's tests via presets in CMake 3.25+.
218-
[#5655](https://github.com/pybind/pybind11/pull/5655)
237+
[#5655](https://github.com/pybind/pybind11/pull/5655) and support `--fresh`.
238+
[#5668](https://github.com/pybind/pybind11/pull/5668)
219239
- Restructure venv support to support `--fresh`, make in build folder.
220240
[#5668](https://github.com/pybind/pybind11/pull/5668)
221241

@@ -264,9 +284,14 @@ Tests:
264284

265285
- Test PyPy3.11 in CI.
266286
[#5534](https://github.com/pybind/pybind11/pull/5534)
287+
267288
- CI testing now includes
268289
`-Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls`
269-
in some jobs. [#5523](https://github.com/pybind/pybind11/pull/5523)
290+
in some jobs.
291+
[#5523](https://github.com/pybind/pybind11/pull/5523)
292+
293+
* Add nightly wheels to scientific-python's nightly wheelhouse.
294+
[#5675](https://github.com/pybind/pybind11/pull/5675)
270295

271296
New and removed platforms:
272297

@@ -286,7 +311,8 @@ New and removed platforms:
286311
- Use scikit-build-core for the build backend for the PyPI `pybind11`.
287312
The CMake generation has been moved to the sdist-\>wheel step.
288313
`PYBIND11_GLOBAL_SDIST` has been removed.
289-
[#5598](https://github.com/pybind/pybind11/pull/5598)
314+
[#5598](https://github.com/pybind/pybind11/pull/5598) and updated
315+
docs/ci. [#5676](https://github.com/pybind/pybind11/pull/5676)
290316

291317
## Version 2.13.6 (September 13, 2024)
292318

docs/upgrade.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ features as the need arises or as part of ongoing maintenance efforts.
9393
If you are using CMake, update to FindPython variables (mostly changing
9494
variables from ``PYTHON_*`` -> ``Python_*``). You should see if you can use
9595
``set(PYBIND11_FINDPYTHON ON)``, which has been supported for years and will
96-
avoid setting the compatibly mode variables.
96+
avoid setting the compatibility mode variables (and will avoid a warning).
9797

9898
Potential stumbling blocks when migrating to v3.0
9999
-------------------------------------------------

0 commit comments

Comments
 (0)