diff --git a/README.rst b/README.rst index 2f2829960..aea5deb42 100644 --- a/README.rst +++ b/README.rst @@ -79,9 +79,9 @@ Goodies In addition to the core functionality, pybind11 provides some extra goodies: -- Python 3.8+, PyPy3 7.3.17+, and GraalPy 24.1+ are supported with an - implementation-agnostic interface (pybind11 2.9 was the last version to - support Python 2 and 3.5). +- CPython 3.8+, PyPy3 7.3.17+, and GraalPy 24.1+ are supported with an + implementation-agnostic interface (see older versions for older CPython + and PyPy versions). - It is possible to bind C++11 lambda functions with captured variables. The lambda capture data is stored inside the resulting @@ -124,12 +124,19 @@ Supported compilers 1. Clang/LLVM 3.3 or newer (for Apple Xcode's clang, this is 5.0.0 or newer) 2. GCC 4.8 or newer -3. Microsoft Visual Studio 2017 or newer +3. Microsoft Visual Studio 2022 or newer (2019 probably works, but was dropped in CI) 4. Intel classic C++ compiler 18 or newer (ICC 20.2 tested in CI) 5. Cygwin/GCC (previously tested on 2.5.1) 6. NVCC (CUDA 11.0 tested in CI) 7. NVIDIA PGI (20.9 tested in CI) +Supported Platforms +------------------- + +* Windows, Linux, macOS, and iOS +* CPython 3.8+, Pyodide, PyPy, and GraalPy +* C++11, C++14, C++17, C++20, and C++23 + About ----- diff --git a/docs/changelog.md b/docs/changelog.md index 84b19ec8d..148a706dd 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -12,7 +12,7 @@ versioning](http://semver.org) policy. Changes will be added here periodically from the "Suggested changelog 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 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. [#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 multi-phase module initialization (PEP 489) behind the scenes and to support `py::mod_gil_not_used()`, @@ -119,7 +125,8 @@ New Features: [#5669](https://github.com/pybind/pybind11/pull/5669) * 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): @@ -158,6 +165,8 @@ New Features / fixes (typing): [#5566](https://github.com/pybind/pybind11/pull/5566) - Fix `typing` and `collections.abc` type hint ambiguity. [#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: @@ -223,6 +232,8 @@ 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): @@ -314,13 +325,16 @@ Tests: New and removed platforms: -- Support Python 3.14 (beta 1). +- Support Python 3.14 (beta 1+). [#5646](https://github.com/pybind/pybind11/pull/5646) - Added support for GraalPy Python implementation (). [#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. [#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 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) +- 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) New Features: diff --git a/include/pybind11/detail/common.h b/include/pybind11/detail/common.h index bb3319eec..b534819a8 100644 --- a/include/pybind11/detail/common.h +++ b/include/pybind11/detail/common.h @@ -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 2 +#define PYBIND11_VERSION_RELEASE_SERIAL 3 // String version of (micro, release level, release serial), e.g.: 0a0, 0b1, 0rc1, 0 -#define PYBIND11_VERSION_PATCH 0rc2 +#define PYBIND11_VERSION_PATCH 0rc3 /* -- end version constants -- */ #if !defined(Py_PACK_FULL_VERSION)