tag:github.com,2008:https://github.com/pybind/pybind11/releasesRelease notes from pybind112026-02-17T04:35:52Ztag:github.com,2008:Repository/38581626/v3.0.22026-02-17T04:45:48ZVersion 3.0.2<p>New Features:</p>
<ul>
<li>Added helper functions to <code>py::array</code> that return shape and strides as <code>std::span</code> when available.<br>
<a href="https://github.com/pybind/pybind11/pull/5974" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5974/hovercard">#5974</a></li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>
<p>Added fallback locking for Python 3.13t where <code>PyCriticalSection_BeginMutex</code> is unavailable.<br>
<a href="https://github.com/pybind/pybind11/pull/5981" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5981/hovercard">#5981</a></p>
</li>
<li>
<p>Fixed race condition in <code>py::make_key_iterator</code> with free-threaded Python.<br>
<a href="https://github.com/pybind/pybind11/pull/5971" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5971/hovercard">#5971</a></p>
</li>
<li>
<p>MSVC 19.16 and earlier were blocked from using <code>std::launder</code> due to internal compiler errors.<br>
<a href="https://github.com/pybind/pybind11/pull/5968" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5968/hovercard">#5968</a></p>
</li>
<li>
<p>Internals destructors were updated to check the owning interpreter before clearing Python objects.<br>
<a href="https://github.com/pybind/pybind11/pull/5965" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5965/hovercard">#5965</a></p>
</li>
<li>
<p>Internals shutdown handling was refined in two iterations before release: an initial finalization-time cleanup was followed by a safety adjustment to avoid late-shutdown <code>py::cast</code> segfaults.<br>
<a href="https://github.com/pybind/pybind11/pull/5958" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5958/hovercard">#5958</a><br>
<a href="https://github.com/pybind/pybind11/pull/5972" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5972/hovercard">#5972</a></p>
</li>
<li>
<p>Fixed ambiguous <code>str(handle)</code> construction for <code>object</code>-derived types like <code>kwargs</code> or <code>dict</code> by templatizing the constructor with SFINAE.<br>
<a href="https://github.com/pybind/pybind11/pull/5949" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5949/hovercard">#5949</a></p>
</li>
<li>
<p>Fixed concurrency consistency for <code>internals_pp_manager</code> under multiple-interpreters.<br>
<a href="https://github.com/pybind/pybind11/pull/5947" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5947/hovercard">#5947</a></p>
</li>
<li>
<p>Fixed MSVC LNK2001 in C++20 builds when /GL (whole program optimization) is enabled.<br>
<a href="https://github.com/pybind/pybind11/pull/5939" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5939/hovercard">#5939</a></p>
</li>
<li>
<p>Added per-interpreter storage for <code>gil_safe_call_once_and_store</code> to make it safe under multi-interpreters.<br>
<a href="https://github.com/pybind/pybind11/pull/5933" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5933/hovercard">#5933</a></p>
</li>
<li>
<p>A workaround for a GCC <code>-Warray-bounds</code> false positive in <code>argument_vector</code> was added.<br>
<a href="https://github.com/pybind/pybind11/pull/5908" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5908/hovercard">#5908</a></p>
</li>
<li>
<p>Corrected a mistake where support for <code>__index__</code> was added, but the type hints did not reflect acceptance of <code>SupportsIndex</code> objects. Also fixed a long-standing bug: the complex-caster did not accept <code>__index__</code> in <code>convert</code> mode.<br>
<a href="https://github.com/pybind/pybind11/pull/5891" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5891/hovercard">#5891</a></p>
</li>
<li>
<p>Fixed <code>*args/**kwargs</code> return types. Added type hinting to <code>py::make_tuple</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5881" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5881/hovercard">#5881</a></p>
</li>
<li>
<p>Fixed compiler error in <code>type_caster_generic</code> when casting a <code>T</code> implicitly convertible from <code>T*</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5873" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5873/hovercard">#5873</a></p>
</li>
<li>
<p>Updated <code>py::native_enum</code> bindings to unregister enum types on destruction, preventing a use-after-free when returning a destroyed enum instance.<br>
<a href="https://github.com/pybind/pybind11/pull/5871" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5871/hovercard">#5871</a></p>
</li>
<li>
<p>Fixed undefined behavior that occurred when importing pybind11 modules from non-main threads created by C API modules or embedded python interpreters.<br>
<a href="https://github.com/pybind/pybind11/pull/5870" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5870/hovercard">#5870</a></p>
</li>
<li>
<p>Fixed dangling pointer in <code>internals::registered_types_cpp_fast</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5867" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5867/hovercard">#5867</a></p>
</li>
<li>
<p>Added support for <code>std::shared_ptr<T></code> when loading module-local or conduit types from other modules.<br>
<a href="https://github.com/pybind/pybind11/pull/5862" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5862/hovercard">#5862</a></p>
</li>
<li>
<p>Fixed thread-safety issues if types were concurrently registered while <code>get_local_type_info()</code> was called in free threaded Python.<br>
<a href="https://github.com/pybind/pybind11/pull/5856" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5856/hovercard">#5856</a></p>
</li>
<li>
<p>Fixed py::float_ casting and py::int_ and py::float_ type hints.<br>
<a href="https://github.com/pybind/pybind11/pull/5839" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5839/hovercard">#5839</a></p>
</li>
<li>
<p>Fixed two <code>smart_holder</code> bugs in <code>shared_ptr</code> and <code>unique_ptr</code> adoption with multiple/virtual inheritance:</p>
<ul>
<li><code>shared_ptr</code> to-Python caster was updated to register the correct subobject pointer (fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3292520986" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5786" data-hovercard-type="issue" data-hovercard-url="/pybind/pybind11/issues/5786/hovercard" href="https://github.com/pybind/pybind11/issues/5786">#5786</a>).</li>
<li><code>unique_ptr</code> adoption was updated to own the proper object start while aliasing subobject pointers for registration, which fixed MSVC crashes during destruction.<br>
<a href="https://github.com/pybind/pybind11/pull/5836" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5836/hovercard">#5836</a></li>
</ul>
</li>
<li>
<p>Constrained <code>accessor::operator=</code> templates to avoid obscuring special members.<br>
<a href="https://github.com/pybind/pybind11/pull/5832" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5832/hovercard">#5832</a></p>
</li>
<li>
<p>Fixed crash that can occur when finalizers acquire and release the GIL.<br>
<a href="https://github.com/pybind/pybind11/pull/5828" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5828/hovercard">#5828</a></p>
</li>
<li>
<p>Fixed compiler detection in <code>pybind11/detail/pybind11_namespace_macros.h</code> for clang-cl on Windows, to address warning suppression macros.<br>
<a href="https://github.com/pybind/pybind11/pull/5816" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5816/hovercard">#5816</a></p>
</li>
<li>
<p>Fixed compatibility with CMake policy CMP0190 by not always requiring a Python interpreter when cross-compiling.<br>
<a href="https://github.com/pybind/pybind11/pull/5829" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5829/hovercard">#5829</a></p>
</li>
<li>
<p>Added a static assertion to disallow <code>keep_alive</code> and <code>call_guard</code> on properties.<br>
<a href="https://github.com/pybind/pybind11/pull/5533" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5533/hovercard">#5533</a></p>
</li>
</ul>
<p>Internal:</p>
<ul>
<li>
<p>CMake policy limit was set to 4.1.<br>
<a href="https://github.com/pybind/pybind11/pull/5944" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5944/hovercard">#5944</a></p>
</li>
<li>
<p>Improved performance of function calls between Python and C++ by switching to the "vectorcall" calling protocol.<br>
<a href="https://github.com/pybind/pybind11/pull/5948" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5948/hovercard">#5948</a></p>
</li>
<li>
<p>Many C-style casts were replaced with C++-style casts.<br>
<a href="https://github.com/pybind/pybind11/pull/5930" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5930/hovercard">#5930</a></p>
</li>
<li>
<p>Added <code>cast_sources</code> abstraction to <code>type_caster_generic</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5866" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5866/hovercard">#5866</a></p>
</li>
<li>
<p>Improved the performance of from-Python conversions of legacy pybind11 enum objects bound by <code>py::enum_</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5860" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5860/hovercard">#5860</a></p>
</li>
<li>
<p>Reduced size overhead by deduplicating functions' readable signatures and type information.<br>
<a href="https://github.com/pybind/pybind11/pull/5857" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5857/hovercard">#5857</a></p>
</li>
<li>
<p>Used new Python 3.14 C APIs when available.<br>
<a href="https://github.com/pybind/pybind11/pull/5854" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5854/hovercard">#5854</a></p>
</li>
<li>
<p>Improved performance of function dispatch and type casting by porting two-level type info lookup strategy from nanobind.<br>
<a href="https://github.com/pybind/pybind11/pull/5842" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5842/hovercard">#5842</a></p>
</li>
<li>
<p>Updated <code>.gitignore</code> to exclude <code>__pycache__/</code> directories.<br>
<a href="https://github.com/pybind/pybind11/pull/5838" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5838/hovercard">#5838</a></p>
</li>
<li>
<p>Changed internals to use <code>thread_local</code> instead of <code>thread_specific_storage</code> for increased performance.<br>
<a href="https://github.com/pybind/pybind11/pull/5834" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5834/hovercard">#5834</a></p>
</li>
<li>
<p>Reduced function call overhead by using thread_local for loader_life_support when possible.<br>
<a href="https://github.com/pybind/pybind11/pull/5830" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5830/hovercard">#5830</a></p>
</li>
<li>
<p>Removed heap allocation for the C++ argument array when dispatching functions with 6 or fewer arguments.<br>
<a href="https://github.com/pybind/pybind11/pull/5824" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5824/hovercard">#5824</a></p>
</li>
</ul>
<p>Documentation:</p>
<ul>
<li>
<p>Fixed docstring for <code>long double</code> complex types to use <code>numpy.clongdouble</code> instead of the deprecated <code>numpy.longcomplex</code> (removed in NumPy 2.0).<br>
<a href="https://github.com/pybind/pybind11/pull/5952" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5952/hovercard">#5952</a></p>
</li>
<li>
<p>The "Supported compilers" and "Supported platforms" sections in the main <code>README.rst</code> were replaced with a new "Supported platforms & compilers" section that points to the CI test matrix as the living source of truth.<br>
<a href="https://github.com/pybind/pybind11/pull/5910" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5910/hovercard">#5910</a></p>
</li>
<li>
<p>Fixed documentation formatting.<br>
<a href="https://github.com/pybind/pybind11/pull/5903" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5903/hovercard">#5903</a></p>
</li>
<li>
<p>Updated upgrade notes for <code>py::native_enum</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5885" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5885/hovercard">#5885</a></p>
</li>
<li>
<p>Clarified in the docs to what extent bindings are global.<br>
<a href="https://github.com/pybind/pybind11/pull/5859" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5859/hovercard">#5859</a></p>
</li>
</ul>
<p>Tests:</p>
<ul>
<li>
<p>Fixed deadlock in a free-threading test by releasing the GIL while waiting on synchronization.<br>
<a href="https://github.com/pybind/pybind11/pull/5973" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5973/hovercard">#5973</a></p>
</li>
<li>
<p>Calls to <code>env.deprecated_call()</code> were replaced with direct calls to <code>pytest.deprecated_call()</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5893" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5893/hovercard">#5893</a></p>
</li>
<li>
<p>Updated pytest configuration to use <code>log_level</code> instead of <code>log_cli_level</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5890" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5890/hovercard">#5890</a></p>
</li>
</ul>
<p>CI:</p>
<ul>
<li>
<p>Added CI tests for windows-11-arm with clang/MSVC (currently python 3.13), windows-11-arm with clang/mingw (currently python 3.12).<br>
<a href="https://github.com/pybind/pybind11/pull/5932" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5932/hovercard">#5932</a></p>
</li>
<li>
<p>These clang-tidy rules were added: <code>readability-redundant-casting</code>, <code>readability-redundant-inline-specifier</code>, <code>readability-redundant-member-init</code><br>
<a href="https://github.com/pybind/pybind11/pull/5924" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5924/hovercard">#5924</a></p>
</li>
<li>
<p>Replaced deprecated macos-13 runners with macos-15-intel in CI.<br>
<a href="https://github.com/pybind/pybind11/pull/5916" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5916/hovercard">#5916</a></p>
</li>
<li>
<p>Restored <code>runs-on: windows-latest</code> in CI.<br>
<a href="https://github.com/pybind/pybind11/pull/5835" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5835/hovercard">#5835</a></p>
</li>
</ul>rwgktag:github.com,2008:Repository/38581626/v3.0.12025-08-22T20:05:37ZVersion 3.0.1<p>Bug fixes:</p>
<ul>
<li>Fixed compilation error in <code>type_caster_enum_type</code> when casting pointer-to-enum types. Added pointer overload to handle dereferencing before enum conversion. <a href="https://github.com/pybind/pybind11/pull/5776" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5776/hovercard">#5776</a></li>
<li>Implement binary version of <code>make_index_sequence</code> to reduce template depth requirements for functions with many parameters. <a href="https://github.com/pybind/pybind11/pull/5751" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5751/hovercard">#5751</a></li>
<li>Subinterpreter-specific exception handling code was removed to resolve segfaults. <a href="https://github.com/pybind/pybind11/pull/5795" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5795/hovercard">#5795</a></li>
<li>Fixed issue that caused <code>PYBIND11_MODULE</code> code to run again if the module was re-imported after being deleted from <code>sys.modules</code>. <a href="https://github.com/pybind/pybind11/pull/5782" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5782/hovercard">#5782</a></li>
<li>Prevent concurrent creation of sub-interpreters as a workaround for stdlib concurrency issues in Python 3.12. <a href="https://github.com/pybind/pybind11/pull/5779" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5779/hovercard">#5779</a></li>
<li>Fixed potential crash when using <code>cpp_function</code> objects with sub-interpreters. <a href="https://github.com/pybind/pybind11/pull/5771" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5771/hovercard">#5771</a></li>
<li>Fixed non-entrant check in <code>implicitly_convertible()</code>. <a href="https://github.com/pybind/pybind11/pull/5777" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5777/hovercard">#5777</a></li>
<li>Support C++20 on platforms that have older c++ runtimes. <a href="https://github.com/pybind/pybind11/pull/5761" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5761/hovercard">#5761</a></li>
<li>Fix compilation with clang on msys2. <a href="https://github.com/pybind/pybind11/pull/5757" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5757/hovercard">#5757</a></li>
<li>Avoid <code>nullptr</code> dereference warning with GCC 13.3.0 and python 3.11.13. <a href="https://github.com/pybind/pybind11/pull/5756" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5756/hovercard">#5756</a></li>
<li>Fix potential warning about number of threads being too large. <a href="https://github.com/pybind/pybind11/pull/5807" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5807/hovercard">#5807</a></li>
</ul>
<ul>
<li>Fix gcc 11.4+ warning about serial compilation using CMake. <a href="https://github.com/pybind/pybind11/pull/5791" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5791/hovercard">#5791</a></li>
</ul>
<p>Documentation:</p>
<ul>
<li>Improve <code>buffer_info</code> type checking in numpy docs. <a href="https://github.com/pybind/pybind11/pull/5805" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5805/hovercard">#5805</a></li>
<li>Replace <code>robotpy-build</code> with <code>semiwrap</code> in the binding tool list. <a href="https://github.com/pybind/pybind11/pull/5804" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5804/hovercard">#5804</a></li>
<li>Show nogil in most examples. <a href="https://github.com/pybind/pybind11/pull/5770" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5770/hovercard">#5770</a></li>
<li>Fix <code>py::trampoline_self_life_support</code> visibility in docs. <a href="https://github.com/pybind/pybind11/pull/5766" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5766/hovercard">#5766</a></li>
</ul>
<p>Tests:</p>
<ul>
<li>Avoid a spurious warning about <code>DOWNLOAD_CATCH</code> being manually specified. <a href="https://github.com/pybind/pybind11/pull/5803" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5803/hovercard">#5803</a></li>
<li>Fix an IsolatedConfig test. <a href="https://github.com/pybind/pybind11/pull/5768" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5768/hovercard">#5768</a></li>
</ul>
<p>CI:</p>
<ul>
<li>Add CI testing for Android. <a href="https://github.com/pybind/pybind11/pull/5714" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5714/hovercard">#5714</a></li>
</ul>
<p>Internal:</p>
<ul>
<li>Rename internal variables to avoid the word <code>slots</code> (reads better). <a href="https://github.com/pybind/pybind11/pull/5793" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5793/hovercard">#5793</a></li>
</ul>henryiiitag:github.com,2008:Repository/38581626/v3.0.02025-07-18T16:48:43ZVersion 3.0.0<p>Pybind11 3.0 includes an ABI bump, the first required bump in many years on Unix (Windows has had required bumps more often). This release contains the smart-holder branch, multi-phase init and subinterpreter support, <code>py::native_enum</code>, an interface to warnings, typing improvements, and more. CMake now defaults to FindPython mode. Please check our upgrade guide for more info on upgrading!</p>
<p>Support for Python 3.14, 3.14t, GraalPy, and PyPy 3.11 has been added, while legacy support for Python 3.7, PyPy 3.8/3.9, and CMake <3.15 has been removed. Most deprecated features have been kept for this release, but anything producing a warning in 3.0 may be removed in a future 3.x version. We also now have a deprecation page.</p>
<p>New Features:</p>
<ul>
<li>
<p>The <code>smart_holder</code> branch has been merged, enabling <code>py::class_<T, py::smart_holder></code>, which handles two-way conversion with <code>std::unique_ptr<T></code> and <code>std::shared_ptr<T></code> (simultaneously), disowning a Python object being passed to <code>std::unique_ptr<T></code>, trampoline objects, and <code>std::enable_shared_from_this</code>. <a href="https://github.com/pybind/pybind11/pull/5542" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5542/hovercard">#5542</a></p>
<ul>
<li>
<p>Added support for <code>std::shared_ptr<const T></code> in <code>py::init()</code> when using <code>py::smart_holder</code>, complementing existing support for <code>std::unique_ptr<const T></code>. <a href="https://github.com/pybind/pybind11/pull/5731" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5731/hovercard">#5731</a></p>
</li>
<li>
<p>Support const-only smart pointers. <a href="https://github.com/pybind/pybind11/pull/5718" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5718/hovercard">#5718</a></p>
</li>
<li>
<p>Eliminate cross-DSO RTTI reliance from <code>trampoline_self_life_support</code> functionality, <code>smart_holder</code> deleter detection, and other <code>smart_holder</code> bookkeeping. Resolves platform-specific issues on macOS related to cross-DSO <code>dynamic_cast</code> and <code>typeid</code> mismatches. <a href="https://github.com/pybind/pybind11/pull/5728" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5728/hovercard">#5728</a> (replaces <a href="https://github.com/pybind/pybind11/pull/5700" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5700/hovercard">#5700</a>)</p>
</li>
</ul>
</li>
<li>
<p>Changed <code>PYBIND11_MODULE</code> macro implementation to perform multi-phase module initialization (PEP 489) behind the scenes. <a href="https://github.com/pybind/pybind11/pull/5574" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5574/hovercard">#5574</a> and avoid destruction <a href="https://github.com/pybind/pybind11/pull/5688" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5688/hovercard">#5688</a></p>
</li>
<li>
<p>Support for sub-interpreters (both isolated (with separate GILs) and legacy (with a global GIL). Add the <code>py::multiple_interpreters::per_interpreter_gil()</code> tag (or, <code>py::multiple_interpreters::shared_gil()</code> for legacy interpreter support) to <code>PYBIND11_MODULE</code> calls (as the third parameter) to indicate that a module supports running with sub-interpreters. <a href="https://github.com/pybind/pybind11/pull/5564" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5564/hovercard">#5564</a></p>
<ul>
<li>
<p>Rename macro <code>PYBIND11_SUBINTERPRETER_SUPPORT</code> -> <code>PYBIND11_HAS_SUBINTERPRETER_SUPPORT</code> to meet naming convention. <a href="https://github.com/pybind/pybind11/pull/5682" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5682/hovercard">#5682</a></p>
</li>
<li>
<p>Allow subinterpreter support to be disabled if defined to 0. This is mostly an emergency workaround, and is not exposed in CMake. <a href="https://github.com/pybind/pybind11/pull/5708" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5708/hovercard">#5708</a> and <a href="https://github.com/pybind/pybind11/pull/5710" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5710/hovercard">#5710</a></p>
</li>
<li>
<p>Modify internals pointer-to-pointer implementation to not use <code>thread_local</code> (better iOS support). <a href="https://github.com/pybind/pybind11/pull/5709" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5709/hovercard">#5709</a></p>
</li>
<li>
<p>Support implementations without subinterpreter support. <a href="https://github.com/pybind/pybind11/pull/5732" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5732/hovercard">#5732</a></p>
</li>
</ul>
</li>
<li>
<p>Changed <code>PYBIND11_EMBEDDED_MODULE</code> macro implementation to perform multi-phase module initialization (PEP 489) behind the scenes and to support <code>py::mod_gil_not_used()</code>, <code>py::multiple_interpreters::per_interpreter_gil()</code> and <code>py::multiple_interpreters::shared_gil()</code>. <a href="https://github.com/pybind/pybind11/pull/5665" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5665/hovercard">#5665</a> and consolidate code <a href="https://github.com/pybind/pybind11/pull/5670" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5670/hovercard">#5670</a></p>
</li>
<li>
<p>Added API in <code>pybind11/subinterpreter.h</code> for embedding sub-intepreters (requires Python 3.12+). <a href="https://github.com/pybind/pybind11/pull/5666" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5666/hovercard">#5666</a></p>
</li>
<li>
<p><code>py::native_enum</code> was added, for conversions between Python's native (stdlib) enum types and C++ enums. <a href="https://github.com/pybind/pybind11/pull/5555" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5555/hovercard">#5555</a></p>
<ul>
<li>
<p>Add class doc string to <code>py::native_enum</code>. <a href="https://github.com/pybind/pybind11/pull/5617" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5617/hovercard">#5617</a></p>
</li>
<li>
<p>Fix signature for functions with a <code>native_enum</code> in the signature. <a href="https://github.com/pybind/pybind11/pull/5619" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5619/hovercard">#5619</a></p>
</li>
</ul>
</li>
<li>
<p>Support <code>py::numpy_scalar<></code> / <code>py::make_scalar()</code> for NumPy types. <a href="https://github.com/pybind/pybind11/pull/5726" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5726/hovercard">#5726</a></p>
</li>
<li>
<p>A <code>py::release_gil_before_calling_cpp_dtor</code> option (for <code>py::class_</code>) was added to resolve the long-standing issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="338486144" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/1446" data-hovercard-type="issue" data-hovercard-url="/pybind/pybind11/issues/1446/hovercard" href="https://github.com/pybind/pybind11/issues/1446">#1446</a>. <a href="https://github.com/pybind/pybind11/pull/5522" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5522/hovercard">#5522</a></p>
</li>
<li>
<p>Add <code>dtype::normalized_num</code> and <code>dtype::num_of</code>. <a href="https://github.com/pybind/pybind11/pull/5429" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5429/hovercard">#5429</a></p>
</li>
<li>
<p>Add support for <code>array_t<handle></code> and <code>array_t<object></code>. <a href="https://github.com/pybind/pybind11/pull/5427" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5427/hovercard">#5427</a></p>
</li>
<li>
<p>Added <code>py::warnings</code> namespace with <code>py::warnings::warn</code> and <code>py::warnings::new_warning_type</code> that provides the interface for Python warnings. <a href="https://github.com/pybind/pybind11/pull/5291" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5291/hovercard">#5291</a></p>
</li>
<li>
<p><code>stl.h</code> <code>list|set|map_caster</code> were made more user friendly: it is no longer necessary to explicitly convert Python iterables to <code>tuple()</code>, <code>set()</code>, or <code>map()</code> in many common situations. <a href="https://github.com/pybind/pybind11/pull/4686" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/4686/hovercard">#4686</a></p>
</li>
<li>
<p>The <code>array_caster</code> in pybind11/stl.h was enhanced to support value types that are not default-constructible. <a href="https://github.com/pybind/pybind11/pull/5305" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5305/hovercard">#5305</a></p>
</li>
<li>
<p><code>pybind11/conduit/pybind11_platform_abi_id.h</code> was factored out, to maximize reusability of <code>PYBIND11_PLATFORM_ABI_ID</code> (for other Python/C++ binding systems). Separately, a note was added to explain that the conduit feature only covers from-Python-to-C++ conversions. <a href="https://github.com/pybind/pybind11/pull/5375" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5375/hovercard">#5375</a> | <a href="https://github.com/pybind/pybind11/pull/5740" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5740/hovercard">#5740</a></p>
</li>
<li>
<p>Added support for finding pybind11 using pkgconf distributed on pypi. <a href="https://github.com/pybind/pybind11/pull/5552" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5552/hovercard">#5552</a></p>
</li>
<li>
<p>Support <code>--extension-suffix</code> on the pybind11 command. <a href="https://github.com/pybind/pybind11/pull/5360" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5360/hovercard">#5360</a></p>
</li>
<li>
<p>Add semi-public API: <code>pybind11::detail::is_holder_constructed</code> and update example for <code>pybind11::custom_type_setup</code> in documentation. <a href="https://github.com/pybind/pybind11/pull/5669" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5669/hovercard">#5669</a></p>
</li>
<li>
<p>Added <code>py::scoped_critical_section</code> to support free-threaded mode. <a href="https://github.com/pybind/pybind11/pull/5684" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5684/hovercard">#5684</a> | <a href="https://github.com/pybind/pybind11/pull/5706" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5706/hovercard">#5706</a></p>
</li>
</ul>
<p>New Features / fixes (typing):</p>
<ul>
<li>
<p>Added option for different arg/return type hints to <code>type_caster</code>. Updated <code>stl/filesystem</code> to use correct arg/return type hints. Updated <code>pybind11::typing</code> to use correct arg/return type hints for nested types. <a href="https://github.com/pybind/pybind11/pull/5450" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5450/hovercard">#5450</a></p>
</li>
<li>
<p>Updated type hint for <code>py::capsule</code> to <code>type.CapsuleType</code>. <a href="https://github.com/pybind/pybind11/pull/5567" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5567/hovercard">#5567</a></p>
</li>
<li>
<p>Adds support for <code>typing.SupportsInt</code> and <code>typing.SupportsFloat</code>. Update <code>Final</code> to be narrower type hint. Make <code>std::function</code> match <code>Callable</code> type. Fix <code>io_name</code> bug in <code>attr_with_type_hint</code>. <a href="https://github.com/pybind/pybind11/pull/5540" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5540/hovercard">#5540</a></p>
</li>
<li>
<p>Rework of arg/return type hints to support <code>.noconvert()</code>. <a href="https://github.com/pybind/pybind11/pull/5486" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5486/hovercard">#5486</a></p>
</li>
<li>
<p>Add <code>attr_with_type</code> for declaring attribute types and <code>Final</code>, <code>ClassVar</code> type annotations. <a href="https://github.com/pybind/pybind11/pull/5460" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5460/hovercard">#5460</a></p>
</li>
<li>
<p>Allow annotate methods with <code>py::pos_only</code> when only have the <code>self</code> argument. Make arguments for auto-generated dunder methods positional-only. <a href="https://github.com/pybind/pybind11/pull/5403" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5403/hovercard">#5403</a></p>
</li>
<li>
<p>Added <code>py::Args</code> and <code>py::KWArgs</code> to enable custom type hinting of <code>*args</code> and <code>**kwargs</code> (see PEP 484). <a href="https://github.com/pybind/pybind11/pull/5357" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5357/hovercard">#5357</a></p>
</li>
<li>
<p>Switched to <code>numpy.typing.NDArray</code> and <code>numpy.typing.ArrayLike</code>. <a href="https://github.com/pybind/pybind11/pull/5212" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5212/hovercard">#5212</a></p>
</li>
<li>
<p>Use <code>numpy.object_</code> instead of <code>object</code>. <a href="https://github.com/pybind/pybind11/pull/5571" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5571/hovercard">#5571</a></p>
</li>
<li>
<p>Fix module type hint. <a href="https://github.com/pybind/pybind11/pull/5469" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5469/hovercard">#5469</a></p>
</li>
<li>
<p>Fix Buffer type hint. <a href="https://github.com/pybind/pybind11/pull/5662" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5662/hovercard">#5662</a></p>
</li>
<li>
<p>Added support for <code>collections.abc</code> in type hints and convertible checks of STL casters and <code>py::buffer</code>. <a href="https://github.com/pybind/pybind11/pull/5566" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5566/hovercard">#5566</a></p>
</li>
<li>
<p>Fix <code>typing</code> and <code>collections.abc</code> type hint ambiguity. <a href="https://github.com/pybind/pybind11/pull/5663" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5663/hovercard">#5663</a></p>
</li>
<li>
<p>Add <code>typing_extensions</code> alternatives for all types that need them. <a href="https://github.com/pybind/pybind11/pull/5693" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5693/hovercard">#5693</a></p>
</li>
</ul>
<p>Removals:</p>
<ul>
<li>
<p>Remove support for pybind11 v2 internals versions (4, 5, 6). (The internals version number has been bumped for pybind11 v3.) <a href="https://github.com/pybind/pybind11/pull/5512" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5512/hovercard">#5512</a> | <a href="https://github.com/pybind/pybind11/pull/5530" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5530/hovercard">#5530</a></p>
</li>
<li>
<p>Remove <code>make_simple_namespace</code> (added in 2.8.0, deprecated in 2.8.1). <a href="https://github.com/pybind/pybind11/pull/5597" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5597/hovercard">#5597</a></p>
</li>
<li>
<p>Legacy-mode option <code>PYBIND11_NUMPY_1_ONLY</code> has been removed. <a href="https://github.com/pybind/pybind11/pull/5595" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5595/hovercard">#5595</a></p>
</li>
<li>
<p>Add a deprecation warning to <code>.get_type</code> (deprecated in pybind11 2.6 in 2020). <a href="https://github.com/pybind/pybind11/pull/5596" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5596/hovercard">#5596</a></p>
</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>
<p>Set <code>__file__</code> on submodules. <a href="https://github.com/pybind/pybind11/pull/5584" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5584/hovercard">#5584</a>. Except on embedded modules. <a href="https://github.com/pybind/pybind11/pull/5650" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5650/hovercard">#5650</a></p>
</li>
<li>
<p>pybind11-bound functions are now pickleable. <a href="https://github.com/pybind/pybind11/pull/5580" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5580/hovercard">#5580</a></p>
</li>
<li>
<p>Fix bug in <code>attr_with_type_hint</code> to allow objects to be in <code>attr_with_type_hint</code>. <a href="https://github.com/pybind/pybind11/pull/5576" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5576/hovercard">#5576</a></p>
</li>
<li>
<p>A <code>-Wmaybe-uninitialized</code> warning suppression was added in <code>pybind11/eigen/matrix.h</code>. <a href="https://github.com/pybind/pybind11/pull/5516" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5516/hovercard">#5516</a></p>
</li>
<li>
<p><code>PYBIND11_WARNING_POP</code> was incorrectly defined as <code>PYBIND11_PRAGMA(clang diagnostic push)</code>. <a href="https://github.com/pybind/pybind11/pull/5448" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5448/hovercard">#5448</a></p>
</li>
<li>
<p><code>PYBIND11_PLATFORM_ABI_ID</code> (which is used in composing <code>PYBIND11_INTERNALS_ID</code>) was modernized to reflect actual ABI compatibility more accurately. <a href="https://github.com/pybind/pybind11/pull/4953" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/4953/hovercard">#4953</a> | <a href="https://github.com/pybind/pybind11/pull/5439" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5439/hovercard">#5439</a></p>
</li>
<li>
<p>Fix buffer protocol implementation. <a href="https://github.com/pybind/pybind11/pull/5407" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5407/hovercard">#5407</a></p>
</li>
<li>
<p>Fix iterator increment operator does not skip first item. <a href="https://github.com/pybind/pybind11/pull/5400" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5400/hovercard">#5400</a></p>
</li>
<li>
<p>When getting or deleting an element in a container bound by <code>bind_map</code>, print the key in <code>KeyError</code> if it does not exist. <a href="https://github.com/pybind/pybind11/pull/5397" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5397/hovercard">#5397</a></p>
</li>
<li>
<p><code>pybind11::builtin_exception</code> is now explicitly exported when linked to libc++. <a href="https://github.com/pybind/pybind11/pull/5390" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5390/hovercard">#5390</a></p>
</li>
<li>
<p>Allow subclasses of <code>py::args</code> and <code>py::kwargs</code>. <a href="https://github.com/pybind/pybind11/pull/5381" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5381/hovercard">#5381</a></p>
</li>
<li>
<p>Disable false-positive GCC 12 Bound Check warning. <a href="https://github.com/pybind/pybind11/pull/5355" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5355/hovercard">#5355</a></p>
</li>
<li>
<p>Update the dict when restoring pickles, instead of assigning a replacement dict. <a href="https://github.com/pybind/pybind11/pull/5658" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5658/hovercard">#5658</a></p>
</li>
<li>
<p>Properly define <code>_DEBUG</code> macro to <code>1</code> instead of defining it without value. <a href="https://github.com/pybind/pybind11/pull/5639" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5639/hovercard">#5639</a></p>
</li>
<li>
<p>Fix a missing time cast causing a compile error for newer ICC. <a href="https://github.com/pybind/pybind11/pull/5621" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5621/hovercard">#5621</a></p>
</li>
<li>
<p>Change the behavior of the default constructor of <code>py::slice</code> to be equivalent to <code>::</code> in Python. <a href="https://github.com/pybind/pybind11/pull/5620" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5620/hovercard">#5620</a></p>
</li>
</ul>
<p>Bug fixes and features (CMake):</p>
<ul>
<li>
<p>Enable FindPython mode by default, with a <code>COMPAT</code> mode that sets some of the old variables to ease transition. <a href="https://github.com/pybind/pybind11/pull/5553" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5553/hovercard">#5553</a></p>
</li>
<li>
<p>Add an author warning that auto-calculated <code>PYTHON_MODULE_EXTENSION</code> may not respect <code>SETUPTOOLS_EXT_SUFFIX</code> during cross-compilation. <a href="https://github.com/pybind/pybind11/pull/5495" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5495/hovercard">#5495</a></p>
</li>
<li>
<p>Don't strip with <code>CMAKE_BUILD_TYPE</code> None. <a href="https://github.com/pybind/pybind11/pull/5392" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5392/hovercard">#5392</a></p>
</li>
<li>
<p>Fix an issue with <code>NO_EXTRAS</code> adding <code>pybind11::windows_extras</code> anyway. <a href="https://github.com/pybind/pybind11/pull/5378" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5378/hovercard">#5378</a></p>
</li>
<li>
<p>Fix issue with NEW/OLD message showing up. <a href="https://github.com/pybind/pybind11/pull/5656" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5656/hovercard">#5656</a></p>
</li>
<li>
<p>Use CMake's warnings as errors if available (CMake 3.24+). <a href="https://github.com/pybind/pybind11/pull/5612" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5612/hovercard">#5612</a></p>
</li>
<li>
<p>Add support for running pybind11's tests via presets in CMake 3.25+. <a href="https://github.com/pybind/pybind11/pull/5655" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5655/hovercard">#5655</a> and support <code>--fresh</code>. <a href="https://github.com/pybind/pybind11/pull/5668" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5668/hovercard">#5668</a></p>
</li>
<li>
<p>Experimental CMake support for Android. <a href="https://github.com/pybind/pybind11/pull/5733" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5733/hovercard">#5733</a></p>
</li>
<li>
<p>Presets now generate <code>compile_commands.json</code>. <a href="https://github.com/pybind/pybind11/pull/5685" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5685/hovercard">#5685</a></p>
</li>
</ul>
<p>Bug fixes (free-threading):</p>
<ul>
<li>
<p>Fix data race in free threaded CPython when accessing a shared static variable. <a href="https://github.com/pybind/pybind11/pull/5494" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5494/hovercard">#5494</a></p>
</li>
<li>
<p>A free-threading data race in <code>all_type_info()</code> was fixed. <a href="https://github.com/pybind/pybind11/pull/5419" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5419/hovercard">#5419</a></p>
</li>
<li>
<p>Added exception translator specific mutex used with <code>try_translate_exceptions</code> in the free-threaded build for internal locking. <a href="https://github.com/pybind/pybind11/pull/5362" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5362/hovercard">#5362</a></p>
</li>
</ul>
<p>Internals:</p>
<ul>
<li>
<p>Consolidated all <code>PYBIND11_HAS_...</code> feature macros into <code>pybind11/detail/common.h</code> to streamline backward compatibility checks and simplify internal refactoring. This change ensures consistent macro availability regardless of header inclusion order. <a href="https://github.com/pybind/pybind11/pull/5647" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5647/hovercard">#5647</a></p>
</li>
<li>
<p><code>pybind11/gil_simple.h</code> was factored out from <code>pybind11/gil.h</code>, so that it can easily be reused. <a href="https://github.com/pybind/pybind11/pull/5614" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5614/hovercard">#5614</a></p>
</li>
<li>
<p>Use CPython macros to construct <code>PYBIND11_VERSION_HEX</code>. <a href="https://github.com/pybind/pybind11/pull/5683" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5683/hovercard">#5683</a></p>
</li>
</ul>
<p>Documentation:</p>
<ul>
<li>
<p>Improved <code>reference_internal</code> policy documentation. <a href="https://github.com/pybind/pybind11/pull/5528" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5528/hovercard">#5528</a></p>
</li>
<li>
<p>A new "Double locking, deadlocking, GIL" document was added. <a href="https://github.com/pybind/pybind11/pull/5394" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5394/hovercard">#5394</a></p>
</li>
<li>
<p>Add documenting for free-threading and subinterpreters.<br>
<a href="https://github.com/pybind/pybind11/pull/5659" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5659/hovercard">#5659</a></p>
</li>
</ul>
<p>Tests:</p>
<ul>
<li>
<p>Download the final Catch2 2.x release if Catch download is requested. <a href="https://github.com/pybind/pybind11/pull/5568" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5568/hovercard">#5568</a></p>
</li>
<li>
<p>Explicitly used <code>signed char</code> for two numpy dtype tests. As seen when compiling using <code>clang</code> on Linux with the <code>-funsigned-char</code> flag. <a href="https://github.com/pybind/pybind11/pull/5545" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5545/hovercard">#5545</a></p>
</li>
<li>
<p>CI testing now includes <code>-Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls</code> in some jobs. <a href="https://github.com/pybind/pybind11/pull/5523" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5523/hovercard">#5523</a></p>
</li>
<li>
<p>Add nightly wheels to scientific-python's nightly wheelhouse. <a href="https://github.com/pybind/pybind11/pull/5675" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5675/hovercard">#5675</a></p>
</li>
<li>
<p>Expect free-threaded warning when loading a non-free-threaded module. <a href="https://github.com/pybind/pybind11/pull/5680" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5680/hovercard">#5680</a></p>
</li>
<li>
<p>Run pytest under Python devmode. <a href="https://github.com/pybind/pybind11/pull/5715" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5715/hovercard">#5715</a></p>
</li>
</ul>
<p>New and removed platforms:</p>
<ul>
<li>
<p>Support Python 3.14 (beta 1+). <a href="https://github.com/pybind/pybind11/pull/5646" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5646/hovercard">#5646</a></p>
</li>
<li>
<p>Added support for GraalPy Python implementation (<a href="https://github.com/oracle/graalpython">https://github.com/oracle/graalpython</a>). <a href="https://github.com/pybind/pybind11/pull/5380" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5380/hovercard">#5380</a></p>
</li>
<li>
<p>Support and test iOS in CI. <a href="https://github.com/pybind/pybind11/pull/5705" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5705/hovercard">#5705</a></p>
</li>
<li>
<p>Support for PyPy 3.11 added. <a href="https://github.com/pybind/pybind11/pull/5508" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5508/hovercard">#5508</a> And test in ci. <a href="https://github.com/pybind/pybind11/pull/5534" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5534/hovercard">#5534</a></p>
</li>
<li>
<p>Support for PyPy 3.8 and 3.9 was dropped. <a href="https://github.com/pybind/pybind11/pull/5578" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5578/hovercard">#5578</a></p>
</li>
<li>
<p>Support for Python 3.7 was removed. (Official end-of-life: 2023-06-27). <a href="https://github.com/pybind/pybind11/pull/5191" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5191/hovercard">#5191</a></p>
</li>
<li>
<p>Support for CMake older than 3.15 removed. CMake 3.15-4.0 supported. <a href="https://github.com/pybind/pybind11/pull/5304" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5304/hovercard">#5304</a> and fix regression <a href="https://github.com/pybind/pybind11/pull/5691" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5691/hovercard">#5691</a>.</p>
</li>
<li>
<p>Use scikit-build-core for the build backend for the PyPI <code>pybind11</code>. The CMake generation has been moved to the sdist->wheel step. <code>PYBIND11_GLOBAL_SDIST</code> has been removed. <a href="https://github.com/pybind/pybind11/pull/5598" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5598/hovercard">#5598</a> and updated docs/ci. <a href="https://github.com/pybind/pybind11/pull/5676" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5676/hovercard">#5676</a></p>
</li>
<li>
<p>clang 20 tested and used for clang-tidy. <a href="https://github.com/pybind/pybind11/pull/5692" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5692/hovercard">#5692</a></p>
</li>
<li>
<p>Drop testing on MSVC 2019 (as it is being removed from GitHub). <a href="https://github.com/pybind/pybind11/pull/5712" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5712/hovercard">#5712</a></p>
</li>
<li>
<p>Support Windows C++20 and Linux C++23 in tests. <a href="https://github.com/pybind/pybind11/pull/5707" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5707/hovercard">#5707</a></p>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/pybind/pybind11/compare/v3.0.0rc4...v3.0.0"><tt>v3.0.0rc4...v3.0.0</tt></a></p>rwgktag:github.com,2008:Repository/38581626/v3.0.0rc42025-06-19T14:56:11ZVersion 3.0.0 RC 4<h2>What's Changed</h2>
<ul>
<li>feat: numpy scalars by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3144686514" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5726" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5726/hovercard" href="https://github.com/pybind/pybind11/pull/5726">#5726</a></li>
<li>fix: TSan warning in sub-interpreter test by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/b-pass/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/b-pass">@b-pass</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3148371846" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5729" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5729/hovercard" href="https://github.com/pybind/pybind11/pull/5729">#5729</a></li>
<li>fix: add support for <code>shared_ptr<const T></code> in <code>py::init()</code> with <code>smart_holder</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rwgk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rwgk">@rwgk</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3152103240" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5731" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5731/hovercard" href="https://github.com/pybind/pybind11/pull/5731">#5731</a></li>
<li>fix: add support for const-only smart pointers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Rosdf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Rosdf">@Rosdf</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3126671175" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5718" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5718/hovercard" href="https://github.com/pybind/pybind11/pull/5718">#5718</a></li>
<li>fix: android CMake support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3154359374" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5733" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5733/hovercard" href="https://github.com/pybind/pybind11/pull/5733">#5733</a></li>
<li>fix: eliminate cross-DSO RTTI reliance in <code>smart_holder</code> functionality (for platforms like macOS). by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rwgk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rwgk">@rwgk</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3146447091" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5728" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5728/hovercard" href="https://github.com/pybind/pybind11/pull/5728">#5728</a></li>
<li>fix: handle implementations without subinterpreter support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/msimacek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/msimacek">@msimacek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3153774860" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5732" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5732/hovercard" href="https://github.com/pybind/pybind11/pull/5732">#5732</a></li>
<li>ci: avoid 3.13.4 on Windows by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3144674490" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5725" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5725/hovercard" href="https://github.com/pybind/pybind11/pull/5725">#5725</a></li>
<li>ci: check latest on 3.13 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3155429867" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5734" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5734/hovercard" href="https://github.com/pybind/pybind11/pull/5734">#5734</a></li>
<li>ci: cibw update to 3.0.0rc2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3120203427" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5717" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5717/hovercard" href="https://github.com/pybind/pybind11/pull/5717">#5717</a></li>
<li>docs: Add documentation entry for warnings by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jiwaszki/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jiwaszki">@jiwaszki</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2508831254" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5356" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5356/hovercard" href="https://github.com/pybind/pybind11/pull/5356">#5356</a></li>
<li>tests: better test for const only smart ptr by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Rosdf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Rosdf">@Rosdf</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3145577531" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5727" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5727/hovercard" href="https://github.com/pybind/pybind11/pull/5727">#5727</a></li>
<li>tests: run pytest under Python devmode by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XuehaiPan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XuehaiPan">@XuehaiPan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3116509489" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5715" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5715/hovercard" href="https://github.com/pybind/pybind11/pull/5715">#5715</a></li>
<li>chore(deps): bump pypa/cibuildwheel from 3.0.0rc2 to 3.0 in the actions group by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3137470998" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5721" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5721/hovercard" href="https://github.com/pybind/pybind11/pull/5721">#5721</a></li>
<li>chore(deps): bump requests from 2.32.3 to 2.32.4 in /docs by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3133434429" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5720" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5720/hovercard" href="https://github.com/pybind/pybind11/pull/5720">#5720</a></li>
<li>chore(deps): bump urllib3 from 2.2.2 to 2.5.0 in /docs by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3158755634" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5735" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5735/hovercard" href="https://github.com/pybind/pybind11/pull/5735">#5735</a></li>
<li>chore: prepare for 3.0.0rc4 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3158858407" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5736" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5736/hovercard" href="https://github.com/pybind/pybind11/pull/5736">#5736</a></li>
</ul>
<div class="markdown-alert markdown-alert-important"><p class="markdown-alert-title"><svg class="octicon octicon-report mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p><p>This RC has an ABI bump. This is expected to be the last bump (and last RC) unless something comes up.</p>
</div>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Rosdf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Rosdf">@Rosdf</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3126671175" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5718" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5718/hovercard" href="https://github.com/pybind/pybind11/pull/5718">#5718</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/pybind/pybind11/compare/v3.0.0rc3...v3.0.0rc4"><tt>v3.0.0rc3...v3.0.0rc4</tt></a></p>henryiiitag:github.com,2008:Repository/38581626/v3.0.0rc32025-06-05T16:21:59ZVersion 3.0.0 RC 3<p>This is another release candidate. See the changelog in the docs for the combined changelog; this is just the changes since RC 2:</p>
<ul>
<li>fix(types): type hints from future python versions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/InvincibleRMC/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/InvincibleRMC">@InvincibleRMC</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3089380647" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5693" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5693/hovercard" href="https://github.com/pybind/pybind11/pull/5693">#5693</a></li>
<li>fix: allow subinterpreters to be manually disabled by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3104595151" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5708" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5708/hovercard" href="https://github.com/pybind/pybind11/pull/5708">#5708</a></li>
<li>fix: follow rest of pybind11 closer with <code>PYBIND11_HAS_SUBINTERPRETER_SUPPORT</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3110781298" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5710" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5710/hovercard" href="https://github.com/pybind/pybind11/pull/5710">#5710</a></li>
<li>fix: modify the internals pointer-to-pointer implementation to not use <code>thread_local</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/b-pass/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/b-pass">@b-pass</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3108281725" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5709" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5709/hovercard" href="https://github.com/pybind/pybind11/pull/5709">#5709</a></li>
<li>fix: expose required symbol using clang by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/petersteneteg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/petersteneteg">@petersteneteg</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3093916191" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5700" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5700/hovercard" href="https://github.com/pybind/pybind11/pull/5700">#5700</a></li>
<li>fix: handle null <code>py::handle</code> and add tests for <code>py::scoped_critical_section</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XuehaiPan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XuehaiPan">@XuehaiPan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3102686635" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5706" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5706/hovercard" href="https://github.com/pybind/pybind11/pull/5706">#5706</a></li>
<li>ci: avoid brownout (and removal) of windows-2019 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3114146181" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5712" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5712/hovercard" href="https://github.com/pybind/pybind11/pull/5712">#5712</a></li>
<li>ci: ios by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3102156369" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5705" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5705/hovercard" href="https://github.com/pybind/pybind11/pull/5705">#5705</a></li>
<li>ci: reduced runs on draft PRs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3103665198" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5707" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5707/hovercard" href="https://github.com/pybind/pybind11/pull/5707">#5707</a></li>
<li>docs: prepare for RC 3 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3115462678" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5713" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5713/hovercard" href="https://github.com/pybind/pybind11/pull/5713">#5713</a></li>
</ul>
<div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p>Note our iOS support requires a cibuildwheel 3.0 beta currently, the cibuildwheel v3.0.0rc1 does not work.</p>
</div>
<div class="markdown-alert markdown-alert-important"><p class="markdown-alert-title"><svg class="octicon octicon-report mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p><p>This RC has an ABI bump. We might need one more ABI bump before 3.0 final to improve the protection of our internals.</p>
</div>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/petersteneteg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/petersteneteg">@petersteneteg</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3093916191" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5700" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5700/hovercard" href="https://github.com/pybind/pybind11/pull/5700">#5700</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/pybind/pybind11/compare/v3.0.0rc2...v3.0.0rc3"><tt>v3.0.0rc2...v3.0.0rc3</tt></a></p>henryiiitag:github.com,2008:Repository/38581626/v3.0.0rc22025-05-29T15:53:58ZVersion 3.0.0 RC 2<p>This is another release candidate. See the changelog in the docs for the combined changelog; this is just the changes since RC 1:</p>
<ul>
<li>feat: scoped_critical_section by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3086751202" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5684" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5684/hovercard" href="https://github.com/pybind/pybind11/pull/5684">#5684</a></li>
<li>fix(cmake): regression in include guard by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3088074414" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5691" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5691/hovercard" href="https://github.com/pybind/pybind11/pull/5691">#5691</a></li>
<li>fix: don't destruct module objects in atexit by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/b-pass/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/b-pass">@b-pass</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3087534319" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5688" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5688/hovercard" href="https://github.com/pybind/pybind11/pull/5688">#5688</a></li>
<li>fix: prepare for 3.14 beta 2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3091662446" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5697" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5697/hovercard" href="https://github.com/pybind/pybind11/pull/5697">#5697</a></li>
<li>chore(cmake): add compile commands to preset by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3086947005" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5685" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5685/hovercard" href="https://github.com/pybind/pybind11/pull/5685">#5685</a></li>
<li>chore: bump maximum clang tested to 20 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3089028511" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5692" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5692/hovercard" href="https://github.com/pybind/pybind11/pull/5692">#5692</a></li>
<li>chore: rename macro <code>PYBIND11_SUBINTERPRETER_SUPPORT</code> -> <code>PYBIND11_HAS_SUBINTERPRETER_SUPPORT</code> to meet naming convention by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XuehaiPan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XuehaiPan">@XuehaiPan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3082221427" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5682" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5682/hovercard" href="https://github.com/pybind/pybind11/pull/5682">#5682</a></li>
<li>chore: use CPython macros to construct <code>PYBIND11_VERSION_HEX</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XuehaiPan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XuehaiPan">@XuehaiPan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3082488187" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5683" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5683/hovercard" href="https://github.com/pybind/pybind11/pull/5683">#5683</a></li>
<li>docs: more warnings about locking and the GIL by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3088015013" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5689" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5689/hovercard" href="https://github.com/pybind/pybind11/pull/5689">#5689</a></li>
<li>docs: update contributing/release guide a little by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3081200478" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5681" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5681/hovercard" href="https://github.com/pybind/pybind11/pull/5681">#5681</a></li>
<li>tests: always disable on the nogil build by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3095334905" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5701" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5701/hovercard" href="https://github.com/pybind/pybind11/pull/5701">#5701</a></li>
<li>tests: expect free-threaded import warnings by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3081198092" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5680" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5680/hovercard" href="https://github.com/pybind/pybind11/pull/5680">#5680</a></li>
<li>tests: skip some flaky gil tests on nogil by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/henryiii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/henryiii">@henryiii</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3092643010" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5699" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5699/hovercard" href="https://github.com/pybind/pybind11/pull/5699">#5699</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/pybind/pybind11/compare/v3.0.0rc1...v3.0.0rc2"><tt>v3.0.0rc1...v3.0.0rc2</tt></a></p>henryiiitag:github.com,2008:Repository/38581626/v3.0.0rc12025-05-21T20:16:09ZVersion 3.0.0 RC 1<h2>What's Changed</h2>
<p>Since this is a large release, we are providing a release candidate to give projects time to test! We also now provide <a href="https://scientific-python.org/specs/spec-0004/" rel="nofollow">SPEC 4</a> nightly wheels. We are hoping to split up <code>std.h</code>; that work is approved to be added during the RC phase if it's ready in time. We expect the RC phase to last around a week.</p>
<p>Pybind11 3.0 includes an ABI bump, the first required bump in many years on Unix (Windows has had required bumps more often). This release contains the smart-holder branch, multi-phase init and subinterpreter support, <code>py::native_enum</code>, an interface to warnings, typing improvements, and more. CMake now defaults to FindPython mode. Please check our upgrade guide for more info on upgrading!</p>
<p>Support for Python 3.14, 3.14t, GraalPy, and PyPy 3.11 has been added, while legacy support for Python 3.7, PyPy 3.8/3.9, and CMake <3.15 has been removed. Most deprecated features have been kept for this release, but anything producing a warning in 3.0 may be removed in a future 3.x version. We also now have a deprecation page.</p>
<p>New Features:</p>
<ul>
<li>The <code>smart_holder</code> branch has been merged, enabling <code>py::class_<T, py::smart_holder></code>, which handles two-way conversion<br>
with <code>std::unique_ptr<T></code> and <code>std::shared_ptr<T></code> (simultaneously), disowning a Python object being passed to <code>std::unique_ptr<T></code>, trampoline objects, and <code>std::enable_shared_from_this</code>. <a href="https://github.com/pybind/pybind11/pull/5542" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5542/hovercard">#5542</a></li>
<li>Changed <code>PYBIND11_MODULE</code> macro implementation to perform multi-phase module initialization (PEP 489) behind the scenes. <a href="https://github.com/pybind/pybind11/pull/5574" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5574/hovercard">#5574</a></li>
<li>Support for sub-interpreters (both isolated (with separate GILs) and legacy (with a global GIL). Add the<br>
<code>py::multiple_interpreters::per_interpreter_gil()</code> tag (or, <code>py::multiple_interpreters::shared_gil()</code> for legacy interpreter<br>
support) to <code>PYBIND11_MODULE</code> calls (as the third parameter) to indicate that a module supports running with sub-interpreters. <a href="https://github.com/pybind/pybind11/pull/5564" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5564/hovercard">#5564</a></li>
<li>Changed <code>PYBIND11_EMBEDDED_MODULE</code> macro implementation to perform multi-phase module initialization (PEP 489) behind the scenes and to support <code>py::mod_gil_not_used()</code>, <code>py::multiple_interpreters::per_interpreter_gil()</code> and <code>py::multiple_interpreters::shared_gil()</code>. <a href="https://github.com/pybind/pybind11/pull/5665" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5665/hovercard">#5665</a> and consolidate code <a href="https://github.com/pybind/pybind11/pull/5670" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5670/hovercard">#5670</a></li>
<li>Added API in <code>pybind11/subinterpreter.h</code> for embedding sub-intepreters (requires Python 3.12+). <a href="https://github.com/pybind/pybind11/pull/5666" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5666/hovercard">#5666</a></li>
<li><code>py::native_enum</code> was added, for conversions between Python's native (stdlib) enum types and C++ enums. <a href="https://github.com/pybind/pybind11/pull/5555" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5555/hovercard">#5555</a>
<ul>
<li>Add class doc string to <code>py::native_enum</code>. <a href="https://github.com/pybind/pybind11/pull/5617" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5617/hovercard">#5617</a>.</li>
<li>Fix signature for functions with a <code>native_enum</code> in the signature. <a href="https://github.com/pybind/pybind11/pull/5619" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5619/hovercard">#5619</a></li>
</ul>
</li>
<li>A <code>py::release_gil_before_calling_cpp_dtor</code> option (for <code>py::class_</code>) was added to resolve the long-standing issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="338486144" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/1446" data-hovercard-type="issue" data-hovercard-url="/pybind/pybind11/issues/1446/hovercard" href="https://github.com/pybind/pybind11/issues/1446">#1446</a>. <a href="https://github.com/pybind/pybind11/pull/5522" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5522/hovercard">#5522</a></li>
<li>Add <code>dtype::normalized_num</code> and <code>dtype::num_of</code>. <a href="https://github.com/pybind/pybind11/pull/5429" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5429/hovercard">#5429</a></li>
<li>Add support for <code>array_t<handle></code> and <code>array_t<object></code>. <a href="https://github.com/pybind/pybind11/pull/5427" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5427/hovercard">#5427</a></li>
<li>Added <code>py::warnings</code> namespace with <code>py::warnings::warn</code> and <code>py::warnings::new_warning_type</code> that provides the interface for<br>
Python warnings. <a href="https://github.com/pybind/pybind11/pull/5291" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5291/hovercard">#5291</a></li>
<li><code>stl.h</code> <code>list|set|map_caster</code> were made more user friendly: it is no longer necessary to explicitly convert Python iterables to <code>tuple()</code>,<br>
<code>set()</code>, or <code>map()</code> in many common situations. <a href="https://github.com/pybind/pybind11/pull/4686" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/4686/hovercard">#4686</a></li>
<li>The <code>array_caster</code> in pybind11/stl.h was enhanced to support value types that are not default-constructible. <a href="https://github.com/pybind/pybind11/pull/5305" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5305/hovercard">#5305</a></li>
<li><code>pybind11/conduit/pybind11_platform_abi_id.h</code> was factored out, to maximize reusability of <code>PYBIND11_PLATFORM_ABI_ID</code> (for other Python/C++ binding systems). <a href="https://github.com/pybind/pybind11/pull/5375" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5375/hovercard">#5375</a></li>
<li>Added support for finding pybind11 using pkgconf distributed on pypi. <a href="https://github.com/pybind/pybind11/pull/5552" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5552/hovercard">#5552</a></li>
<li>Support <code>--extension-suffix</code> on the pybind11 command. <a href="https://github.com/pybind/pybind11/pull/5360" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5360/hovercard">#5360</a></li>
<li>Add semi-public API: <code>pybind11::detail::is_holder_constructed</code> and update example for <code>pybind11::custom_type_setup</code> in documentation. <a href="https://github.com/pybind/pybind11/pull/5669" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5669/hovercard">#5669</a></li>
</ul>
<p>New Features / fixes (typing):</p>
<ul>
<li>Added option for different arg/return type hints to <code>type_caster</code>. Updated <code>stl/filesystem</code> to use correct arg/return type hints. Updated <code>pybind11::typing</code> to use correct arg/return type hints for nested types. <a href="https://github.com/pybind/pybind11/pull/5450" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5450/hovercard">#5450</a></li>
<li>Updated type hint for <code>py::capsule</code> to <code>type.CapsuleType</code>. <a href="https://github.com/pybind/pybind11/pull/5567" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5567/hovercard">#5567</a></li>
<li>Adds support for <code>typing.SupportsInt</code> and <code>typing.SupportsFloat</code>. Update <code>Final</code> to be narrower type hint. Make <code>std::function</code> match <code>Callable</code> type. Fix <code>io_name</code> bug in <code>attr_with_type_hint</code>. <a href="https://github.com/pybind/pybind11/pull/5540" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5540/hovercard">#5540</a></li>
<li>Rework of arg/return type hints to support <code>.noconvert()</code>. <a href="https://github.com/pybind/pybind11/pull/5486" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5486/hovercard">#5486</a></li>
<li>Add <code>attr_with_type</code> for declaring attribute types and <code>Final</code>, <code>ClassVar</code> type annotations. <a href="https://github.com/pybind/pybind11/pull/5460" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5460/hovercard">#5460</a></li>
<li>Allow annotate methods with <code>py::pos_only</code> when only have the <code>self</code> argument. Make arguments for auto-generated dunder methods positional-only. <a href="https://github.com/pybind/pybind11/pull/5403" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5403/hovercard">#5403</a></li>
<li>Added <code>py::Args</code> and <code>py::KWArgs</code> to enable custom type hinting of <code>*args</code> and <code>**kwargs</code> (see PEP 484). <a href="https://github.com/pybind/pybind11/pull/5357" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5357/hovercard">#5357</a></li>
<li>Switched to <code>numpy.typing.NDArray</code> and <code>numpy.typing.ArrayLike</code>. <a href="https://github.com/pybind/pybind11/pull/5212" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5212/hovercard">#5212</a></li>
<li>Use <code>numpy.object_</code> instead of <code>object</code>. <a href="https://github.com/pybind/pybind11/pull/5571" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5571/hovercard">#5571</a></li>
<li>Fix module type hint. <a href="https://github.com/pybind/pybind11/pull/5469" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5469/hovercard">#5469</a></li>
<li>Fix Buffer type hint. <a href="https://github.com/pybind/pybind11/pull/5662" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5662/hovercard">#5662</a></li>
<li>Added support for <code>collections.abc</code> in type hints and convertible checks of STL casters and <code>py::buffer</code>.<br>
<a href="https://github.com/pybind/pybind11/pull/5566" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5566/hovercard">#5566</a></li>
<li>Fix <code>typing</code> and <code>collections.abc</code> type hint ambiguity. <a href="https://github.com/pybind/pybind11/pull/5663" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5663/hovercard">#5663</a></li>
</ul>
<p>Removals:</p>
<ul>
<li>Remove support for pybind11 v2 internals versions (4, 5, 6). (The internals version number has been bumped for pybind11 v3.) <a href="https://github.com/pybind/pybind11/pull/5512" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5512/hovercard">#5512</a> | <a href="https://github.com/pybind/pybind11/pull/5530" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5530/hovercard">#5530</a></li>
<li>Remove <code>make_simple_namespace</code> (added in 2.8.0, deprecated in 2.8.1). <a href="https://github.com/pybind/pybind11/pull/5597" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5597/hovercard">#5597</a></li>
<li>Legacy-mode option <code>PYBIND11_NUMPY_1_ONLY</code> has been removed. <a href="https://github.com/pybind/pybind11/pull/5595" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5595/hovercard">#5595</a></li>
<li>Add a deprecation warning to <code>.get_type</code> (deprecated in pybind11 2.6 in 2020). <a href="https://github.com/pybind/pybind11/pull/5596" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5596/hovercard">#5596</a></li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>Set <code>__file__</code> on submodules. <a href="https://github.com/pybind/pybind11/pull/5584" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5584/hovercard">#5584</a>. Except on<br>
embedded modules. <a href="https://github.com/pybind/pybind11/pull/5650" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5650/hovercard">#5650</a></li>
<li>pybind11-bound functions are now pickleable. <a href="https://github.com/pybind/pybind11/pull/5580" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5580/hovercard">#5580</a></li>
<li>Fix bug in <code>attr_with_type_hint</code> to allow objects to be in <code>attr_with_type_hint</code>. <a href="https://github.com/pybind/pybind11/pull/5576" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5576/hovercard">#5576</a></li>
<li>A <code>-Wmaybe-uninitialized</code> warning suppression was added in <code>pybind11/eigen/matrix.h</code>. <a href="https://github.com/pybind/pybind11/pull/5516" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5516/hovercard">#5516</a></li>
<li><code>PYBIND11_WARNING_POP</code> was incorrectly defined as <code>PYBIND11_PRAGMA(clang diagnostic push)</code>. <a href="https://github.com/pybind/pybind11/pull/5448" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5448/hovercard">#5448</a></li>
<li><code>PYBIND11_PLATFORM_ABI_ID</code> (which is used in composing <code>PYBIND11_INTERNALS_ID</code>) was modernized to reflect actual ABI<br>
compatibility more accurately. <a href="https://github.com/pybind/pybind11/pull/4953" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/4953/hovercard">#4953</a> | <a href="https://github.com/pybind/pybind11/pull/5439" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5439/hovercard">#5439</a></li>
<li>Fix buffer protocol implementation. <a href="https://github.com/pybind/pybind11/pull/5407" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5407/hovercard">#5407</a></li>
<li>Fix iterator increment operator does not skip first item. <a href="https://github.com/pybind/pybind11/pull/5400" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5400/hovercard">#5400</a></li>
<li>When getting or deleting an element in a container bound by <code>bind_map</code>, print the key in <code>KeyError</code> if it does not exist. <a href="https://github.com/pybind/pybind11/pull/5397" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5397/hovercard">#5397</a></li>
<li><code>pybind11::builtin_exception</code> is now explicitly exported when linked to libc++. <a href="https://github.com/pybind/pybind11/pull/5390" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5390/hovercard">#5390</a></li>
<li>Allow subclasses of <code>py::args</code> and <code>py::kwargs</code>. <a href="https://github.com/pybind/pybind11/pull/5381" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5381/hovercard">#5381</a></li>
<li>Disable false-positive GCC 12 Bound Check warning. <a href="https://github.com/pybind/pybind11/pull/5355" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5355/hovercard">#5355</a></li>
<li>fix: using <code>__cpp_nontype_template_args</code> instead of <code>__cpp_nontype_template_parameter_class</code>. <a href="https://github.com/pybind/pybind11/pull/5330" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5330/hovercard">#5330</a></li>
<li>Properly translate C++ exception to Python exception when creating Python buffer from wrapped object. <a href="https://github.com/pybind/pybind11/pull/5324" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5324/hovercard">#5324</a></li>
<li>Update the dict when restoring pickles, instead of assigning a replacement dict. <a href="https://github.com/pybind/pybind11/pull/5658" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5658/hovercard">#5658</a></li>
<li>Properly define <code>_DEBUG</code> macro to <code>1</code> instead of defining it without value. <a href="https://github.com/pybind/pybind11/pull/5639" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5639/hovercard">#5639</a></li>
<li>Fix a missing time cast causing a compile error for newer ICC. <a href="https://github.com/pybind/pybind11/pull/5621" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5621/hovercard">#5621</a></li>
<li>Change the behavior of the default constructor of <code>py::slice</code> to be equivalent to <code>::</code> in Python. <a href="https://github.com/pybind/pybind11/pull/5620" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5620/hovercard">#5620</a></li>
</ul>
<p>Bug fixes (CMake):</p>
<ul>
<li>Enable FindPython mode by default, with a <code>COMPAT</code> mode that sets some of the old variables to ease transition. <a href="https://github.com/pybind/pybind11/pull/5553" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5553/hovercard">#5553</a></li>
<li>Add an author warning that auto-calculated <code>PYTHON_MODULE_EXTENSION</code> may not respect <code>SETUPTOOLS_EXT_SUFFIX</code> during cross-compilation. <a href="https://github.com/pybind/pybind11/pull/5495" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5495/hovercard">#5495</a></li>
<li>Don't strip with <code>CMAKE_BUILD_TYPE</code> None. <a href="https://github.com/pybind/pybind11/pull/5392" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5392/hovercard">#5392</a></li>
<li>Fix an issue with <code>NO_EXTRAS</code> adding <code>pybind11::windows_extras</code> anyway. <a href="https://github.com/pybind/pybind11/pull/5378" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5378/hovercard">#5378</a></li>
<li>Fix issue with NEW/OLD message showing up. <a href="https://github.com/pybind/pybind11/pull/5656" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5656/hovercard">#5656</a></li>
<li>Use CMake's warnings as errors if available (CMake 3.24+). <a href="https://github.com/pybind/pybind11/pull/5612" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5612/hovercard">#5612</a></li>
<li>Add support for running pybind11's tests via presets in CMake 3.25+. <a href="https://github.com/pybind/pybind11/pull/5655" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5655/hovercard">#5655</a> and support <code>--fresh</code>. <a href="https://github.com/pybind/pybind11/pull/5668" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5668/hovercard">#5668</a></li>
<li>Restructure venv support to support <code>--fresh</code>, make in build folder. <a href="https://github.com/pybind/pybind11/pull/5668" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5668/hovercard">#5668</a></li>
</ul>
<p>Bug fixes (free-threading):</p>
<ul>
<li>Fix data race in free threaded CPython when accessing a shared static variable. <a href="https://github.com/pybind/pybind11/pull/5494" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5494/hovercard">#5494</a></li>
<li>A free-threading data race in <code>all_type_info()</code> was fixed. <a href="https://github.com/pybind/pybind11/pull/5419" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5419/hovercard">#5419</a></li>
<li>Added exception translator specific mutex used with <code>try_translate_exceptions</code> in the free-threaded build for internal<br>
locking. <a href="https://github.com/pybind/pybind11/pull/5362" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5362/hovercard">#5362</a></li>
</ul>
<p>Internals:</p>
<ul>
<li>Consolidated all <code>PYBIND11_HAS_...</code> feature macros into <code>pybind11/detail/common.h</code> to streamline backward compatibility checks and simplify internal refactoring. This change ensures consistent macro availability regardless of header inclusion order. <a href="https://github.com/pybind/pybind11/pull/5647" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5647/hovercard">#5647</a></li>
<li><code>pybind11/gil_simple.h</code> was factored out from <code>pybind11/gil.h</code>, so that it can easily be reused. <a href="https://github.com/pybind/pybind11/pull/5614" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5614/hovercard">#5614</a></li>
</ul>
<p>Documentation:</p>
<ul>
<li>Improved <code>reference_internal</code> policy documentation. <a href="https://github.com/pybind/pybind11/pull/5528" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5528/hovercard">#5528</a></li>
<li>A new "Double locking, deadlocking, GIL" document was added. <a href="https://github.com/pybind/pybind11/pull/5394" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5394/hovercard">#5394</a></li>
<li>Adds an answer (FAQ) for "What is a highly conclusive and simple way to find memory leaks?". <a href="https://github.com/pybind/pybind11/pull/5340" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5340/hovercard">#5340</a></li>
<li>Add documenting for free-threading and subinterpreters. <a href="https://github.com/pybind/pybind11/pull/5659" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5659/hovercard">#5659</a></li>
</ul>
<p>Tests:</p>
<ul>
<li>Download the final Catch2 2.x release if Catch download is requested. <a href="https://github.com/pybind/pybind11/pull/5568" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5568/hovercard">#5568</a></li>
<li>Explicitly used <code>signed char</code> for two numpy dtype tests. As seen when compiling using <code>clang</code> on Linux with the <code>-funsigned-char</code> flag. <a href="https://github.com/pybind/pybind11/pull/5545" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5545/hovercard">#5545</a></li>
<li>Test PyPy3.11 in CI. <a href="https://github.com/pybind/pybind11/pull/5534" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5534/hovercard">#5534</a></li>
<li>CI testing now includes <code>-Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls</code> in some jobs. <a href="https://github.com/pybind/pybind11/pull/5523" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5523/hovercard">#5523</a></li>
<li>Add nightly wheels to scientific-python's nightly wheelhouse. <a href="https://github.com/pybind/pybind11/pull/5675" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5675/hovercard">#5675</a></li>
</ul>
<p>New and removed platforms:</p>
<ul>
<li>Support Python 3.14 (beta 1). <a href="https://github.com/pybind/pybind11/pull/5646" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5646/hovercard">#5646</a></li>
<li>Added support for GraalPy Python implementation (<a href="https://github.com/oracle/graalpython">https://github.com/oracle/graalpython</a>). <a href="https://github.com/pybind/pybind11/pull/5380" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5380/hovercard">#5380</a></li>
<li>Support for PyPy 3.11 added. <a href="https://github.com/pybind/pybind11/pull/5508" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5508/hovercard">#5508</a></li>
<li>Support for PyPy 3.8 and 3.9 was dropped. <a href="https://github.com/pybind/pybind11/pull/5578" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5578/hovercard">#5578</a></li>
<li>Support for Python 3.7 was removed. (Official end-of-life: 2023-06-27). <a href="https://github.com/pybind/pybind11/pull/5191" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5191/hovercard">#5191</a></li>
<li>Support for CMake older than 3.15 removed. CMake 3.15-4.0 supported. <a href="https://github.com/pybind/pybind11/pull/5304" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5304/hovercard">#5304</a></li>
<li>Use scikit-build-core for the build backend for the PyPI <code>pybind11</code>. The CMake generation has been moved to the sdist->wheel step.<br>
<code>PYBIND11_GLOBAL_SDIST</code> has been removed. <a href="https://github.com/pybind/pybind11/pull/5598" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5598/hovercard">#5598</a> and updated<br>
docs/ci. <a href="https://github.com/pybind/pybind11/pull/5676" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5676/hovercard">#5676</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/varunagrawal/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/varunagrawal">@varunagrawal</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2379387687" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5207" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5207/hovercard" href="https://github.com/pybind/pybind11/pull/5207">#5207</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wenqing/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wenqing">@wenqing</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2379898291" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5208" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5208/hovercard" href="https://github.com/pybind/pybind11/pull/5208">#5208</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rgommers/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rgommers">@rgommers</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2413922410" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5250" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5250/hovercard" href="https://github.com/pybind/pybind11/pull/5250">#5250</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teo-tsirpanis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teo-tsirpanis">@teo-tsirpanis</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2425833197" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5263" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5263/hovercard" href="https://github.com/pybind/pybind11/pull/5263">#5263</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fred-sch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fred-sch">@fred-sch</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2445423074" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5284" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5284/hovercard" href="https://github.com/pybind/pybind11/pull/5284">#5284</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pwdcd/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pwdcd">@pwdcd</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2464830091" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5308" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5308/hovercard" href="https://github.com/pybind/pybind11/pull/5308">#5308</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MarkusBauer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MarkusBauer">@MarkusBauer</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1928481560" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/4874" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/4874/hovercard" href="https://github.com/pybind/pybind11/pull/4874">#4874</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ObeliskGate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ObeliskGate">@ObeliskGate</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2469449611" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5314" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5314/hovercard" href="https://github.com/pybind/pybind11/pull/5314">#5314</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DWesl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DWesl">@DWesl</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2479401060" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5326" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5326/hovercard" href="https://github.com/pybind/pybind11/pull/5326">#5326</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vnlitvinov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vnlitvinov">@vnlitvinov</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2478713964" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5324" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5324/hovercard" href="https://github.com/pybind/pybind11/pull/5324">#5324</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BobbyRBruce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BobbyRBruce">@BobbyRBruce</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2508189546" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5355" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5355/hovercard" href="https://github.com/pybind/pybind11/pull/5355">#5355</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vfdev-5/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vfdev-5">@vfdev-5</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2514841146" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5362" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5362/hovercard" href="https://github.com/pybind/pybind11/pull/5362">#5362</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Hintay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Hintay">@Hintay</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2533945430" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5378" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5378/hovercard" href="https://github.com/pybind/pybind11/pull/5378">#5378</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gentlegiantJGC/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gentlegiantJGC">@gentlegiantJGC</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2538470558" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5381" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5381/hovercard" href="https://github.com/pybind/pybind11/pull/5381">#5381</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sarlinpe/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sarlinpe">@sarlinpe</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2568874081" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5397" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5397/hovercard" href="https://github.com/pybind/pybind11/pull/5397">#5397</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/francesco-ballarin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/francesco-ballarin">@francesco-ballarin</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2568068224" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5396" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5396/hovercard" href="https://github.com/pybind/pybind11/pull/5396">#5396</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/J-M0/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/J-M0">@J-M0</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2686867063" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5448" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5448/hovercard" href="https://github.com/pybind/pybind11/pull/5448">#5448</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/timohl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/timohl">@timohl</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2688132807" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5450" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5450/hovercard" href="https://github.com/pybind/pybind11/pull/5450">#5450</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jspricke/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jspricke">@jspricke</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2556861143" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5392" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5392/hovercard" href="https://github.com/pybind/pybind11/pull/5392">#5392</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nikulpatel3141/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nikulpatel3141">@nikulpatel3141</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2512359326" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5360" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5360/hovercard" href="https://github.com/pybind/pybind11/pull/5360">#5360</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mattip/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mattip">@mattip</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2825939646" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5508" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5508/hovercard" href="https://github.com/pybind/pybind11/pull/5508">#5508</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/daizhirui/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/daizhirui">@daizhirui</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2834934658" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5516" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5516/hovercard" href="https://github.com/pybind/pybind11/pull/5516">#5516</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pganssle-google/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pganssle-google">@pganssle-google</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2885719759" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5545" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5545/hovercard" href="https://github.com/pybind/pybind11/pull/5545">#5545</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/b-pass/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/b-pass">@b-pass</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2933679338" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5574" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5574/hovercard" href="https://github.com/pybind/pybind11/pull/5574">#5574</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyollb/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyollb">@dyollb</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2993769763" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5617" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5617/hovercard" href="https://github.com/pybind/pybind11/pull/5617">#5617</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nsoblath/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nsoblath">@nsoblath</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3003552736" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5624" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5624/hovercard" href="https://github.com/pybind/pybind11/pull/5624">#5624</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/pybind/pybind11/compare/v2.13.6...v3.0.0rc1"><tt>v2.13.6...v3.0.0rc1</tt></a></p>henryiiitag:github.com,2008:Repository/38581626/v2.13.62024-09-14T00:33:41ZVersion 2.13.6<p>New Features:</p>
<ul>
<li>A new <code>self._pybind11_conduit_v1_()</code> method is automatically added to all <code>py::class_</code>-wrapped types, to enable type-safe interoperability between different independent Python/C++ bindings systems, including pybind11 versions with different <code>PYBIND11_INTERNALS_VERSION</code>'s. Supported on pybind11 2.11.2, 2.12.1, and 2.13.6+. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2459740604" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5296" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5296/hovercard" href="https://github.com/pybind/pybind11/pull/5296">#5296</a></li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>Using <code>__cpp_nontype_template_args</code> instead of <code>__cpp_nontype_template_parameter_class</code>. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2482320546" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5330" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5330/hovercard" href="https://github.com/pybind/pybind11/pull/5330">#5330</a></li>
<li>Properly translate C++ exception to Python exception when creating Python buffer from wrapped object. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2478713964" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5324" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5324/hovercard" href="https://github.com/pybind/pybind11/pull/5324">#5324</a></li>
</ul>
<p>Documentation:</p>
<ul>
<li>Adds an answer (FAQ) for "What is a highly conclusive and simple way to find memory leaks?". <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2490333275" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5340" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5340/hovercard" href="https://github.com/pybind/pybind11/pull/5340">#5340</a></li>
</ul>henryiiitag:github.com,2008:Repository/38581626/v2.12.12024-09-13T22:27:56ZVersion 2.12.1<p>New Features:</p>
<ul>
<li>A new <code>self._pybind11_conduit_v1_()</code> method is automatically added to all <code>py::class_</code>-wrapped types, to enable type-safe interoperability between different independent Python/C++ bindings systems, including pybind11 versions with different <code>PYBIND11_INTERNALS_VERSION</code>'s. Supported on pybind11 2.11.2, 2.12.1, and 2.13.6+. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2459740604" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5296" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5296/hovercard" href="https://github.com/pybind/pybind11/pull/5296">#5296</a></li>
</ul>rwgktag:github.com,2008:Repository/38581626/v2.11.22024-09-13T22:33:10ZVersion 2.11.2<p>New Features:</p>
<ul>
<li>A new <code>self._pybind11_conduit_v1_()</code> method is automatically added to all <code>py::class_</code>-wrapped types, to enable type-safe interoperability between different independent Python/C++ bindings systems, including pybind11 versions with different <code>PYBIND11_INTERNALS_VERSION</code>'s. Supported on pybind11 2.11.2, 2.12.1, and 2.13.6+. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2459740604" data-permission-text="Title is private" data-url="https://github.com/pybind/pybind11/issues/5296" data-hovercard-type="pull_request" data-hovercard-url="/pybind/pybind11/pull/5296/hovercard" href="https://github.com/pybind/pybind11/pull/5296">#5296</a></li>
</ul>rwgk