Skip to content

ci(deps): update c++ dependencies (main)#246

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/main-c++-dependencies
Open

ci(deps): update c++ dependencies (main)#246
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/main-c++-dependencies

Conversation

@renovate

@renovate renovate Bot commented Feb 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
doctest patch v2.5.1v2.5.2
pybind11 patch v3.0.1v3.0.4

Release Notes

doctest/doctest (doctest)

v2.5.2

Compare Source

What's Changed

Full Changelog: doctest/doctest@v2.5.1...v2.5.2

pybind/pybind11 (pybind11)

v3.0.4: Version 3.0.4

Compare Source

Bug fixes:

  • Fixed test builds with installed Eigen 5 by improving Eigen3 CMake package detection.
    #​6036

  • Fixed move semantics of scoped_ostream_redirect to preserve buffered output and avoid crashes when moved redirects restore stream buffers.
    #​6033

  • Fixed py::dynamic_attr() traversal on Python 3.13+ to correctly propagate PyObject_VisitManagedDict() results.
    #​6032

  • Fixed std::shared_ptr<T> fallback casting to avoid unnecessary copy-constructor instantiation in reference_internal paths.
    #​6028

CI:

  • Updated setup-uv to the maintained GitHub Action tag scheme.
    #​6035

  • Updated pre-commit hooks.
    #​6029

  • Updated GitHub Actions dependencies, including actions-setup-cmake and cibuildwheel.
    #​6027

v3.0.3: Version 3.0.3

Compare Source

Bug fixes:

  • Fixed TSS key exhaustion in implicitly_convertible() when many implicit conversions are registered across large module sets.
    #​6020

  • Fixed heap-buffer-overflow in pythonbuf with undersized buffers by enforcing a minimum buffer size.
    #​6019

  • Fixed virtual-inheritance pointer offset crashes when dispatching inherited methods through virtual bases.
    #​6017

  • Fixed free(): invalid pointer crashes during interpreter shutdown with py::enum_<> by duplicating late-added def_property_static argument strings.
    #​6015

  • Fixed function_record heap-type deallocation to call PyObject_Free() and decref the type.
    #​6010

  • Hardened PYBIND11_MODULE_PYINIT and get_internals() against module-initialization crashes.
    #​6018

  • Fixed static_pointer_cast build failure with virtual inheritance in holder_caster_foreign_helpers.h.
    #​6014

  • Fixed ambiguous factory template specialization that caused compilation failures with nvcc + GCC 14.
    #​6011

  • Fixed crash in def_readwrite for non-smart-holder properties of smart-holder classes.
    #​6008

  • Fixed memory leak for py::dynamic_attr() objects on Python 3.13+ by clearing managed __dict__ contents during deallocation.
    #​5999

  • Fixed binding of noexcept and ref-qualified (&, &&) methods inherited from unregistered base classes.
    #​5992

Internal:

  • Moved tomlkit dependency to the dev dependency group.
    #​5990

  • Switched to newer public CPython APIs (PyType_GetFlags and public vectorcall APIs where available).
    #​6005

Tests:

  • Made an async callback test deterministic by replacing fixed sleep with bounded waiting.
    #​5986

CI:

  • Re-enabled Android tests in the cibuildwheel workflow.
    #​6001

v3.0.2: Version 3.0.2

Compare Source

New Features:

  • Added helper functions to py::array that return shape and strides as std::span when available.
    #​5974

Bug fixes:

  • Added fallback locking for Python 3.13t where PyCriticalSection_BeginMutex is unavailable.
    #​5981

  • Fixed race condition in py::make_key_iterator with free-threaded Python.
    #​5971

  • MSVC 19.16 and earlier were blocked from using std::launder due to internal compiler errors.
    #​5968

  • Internals destructors were updated to check the owning interpreter before clearing Python objects.
    #​5965

  • 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 py::cast segfaults.
    #​5958
    #​5972

  • Fixed ambiguous str(handle) construction for object-derived types like kwargs or dict by templatizing the constructor with SFINAE.
    #​5949

  • Fixed concurrency consistency for internals_pp_manager under multiple-interpreters.
    #​5947

  • Fixed MSVC LNK2001 in C++20 builds when /GL (whole program optimization) is enabled.
    #​5939

  • Added per-interpreter storage for gil_safe_call_once_and_store to make it safe under multi-interpreters.
    #​5933

  • A workaround for a GCC -Warray-bounds false positive in argument_vector was added.
    #​5908

  • Corrected a mistake where support for __index__ was added, but the type hints did not reflect acceptance of SupportsIndex objects. Also fixed a long-standing bug: the complex-caster did not accept __index__ in convert mode.
    #​5891

  • Fixed *args/**kwargs return types. Added type hinting to py::make_tuple.
    #​5881

  • Fixed compiler error in type_caster_generic when casting a T implicitly convertible from T*.
    #​5873

  • Updated py::native_enum bindings to unregister enum types on destruction, preventing a use-after-free when returning a destroyed enum instance.
    #​5871

  • Fixed undefined behavior that occurred when importing pybind11 modules from non-main threads created by C API modules or embedded python interpreters.
    #​5870

  • Fixed dangling pointer in internals::registered_types_cpp_fast.
    #​5867

  • Added support for std::shared_ptr<T> when loading module-local or conduit types from other modules.
    #​5862

  • Fixed thread-safety issues if types were concurrently registered while get_local_type_info() was called in free threaded Python.
    #​5856

  • Fixed py::float_ casting and py::int_ and py::float_ type hints.
    #​5839

  • Fixed two smart_holder bugs in shared_ptr and unique_ptr adoption with multiple/virtual inheritance:

    • shared_ptr to-Python caster was updated to register the correct subobject pointer (fixes #​5786).
    • unique_ptr adoption was updated to own the proper object start while aliasing subobject pointers for registration, which fixed MSVC crashes during destruction.
      #​5836
  • Constrained accessor::operator= templates to avoid obscuring special members.
    #​5832

  • Fixed crash that can occur when finalizers acquire and release the GIL.
    #​5828

  • Fixed compiler detection in pybind11/detail/pybind11_namespace_macros.h for clang-cl on Windows, to address warning suppression macros.
    #​5816

  • Fixed compatibility with CMake policy CMP0190 by not always requiring a Python interpreter when cross-compiling.
    #​5829

  • Added a static assertion to disallow keep_alive and call_guard on properties.
    #​5533

Internal:

  • CMake policy limit was set to 4.1.
    #​5944

  • Improved performance of function calls between Python and C++ by switching to the "vectorcall" calling protocol.
    #​5948

  • Many C-style casts were replaced with C++-style casts.
    #​5930

  • Added cast_sources abstraction to type_caster_generic.
    #​5866

  • Improved the performance of from-Python conversions of legacy pybind11 enum objects bound by py::enum_.
    #​5860

  • Reduced size overhead by deduplicating functions' readable signatures and type information.
    #​5857

  • Used new Python 3.14 C APIs when available.
    #​5854

  • Improved performance of function dispatch and type casting by porting two-level type info lookup strategy from nanobind.
    #​5842

  • Updated .gitignore to exclude __pycache__/ directories.
    #​5838

  • Changed internals to use thread_local instead of thread_specific_storage for increased performance.
    #​5834

  • Reduced function call overhead by using thread_local for loader_life_support when possible.
    #​5830

  • Removed heap allocation for the C++ argument array when dispatching functions with 6 or fewer arguments.
    #​5824

Documentation:

  • Fixed docstring for long double complex types to use numpy.clongdouble instead of the deprecated numpy.longcomplex (removed in NumPy 2.0).
    #​5952

  • The "Supported compilers" and "Supported platforms" sections in the main README.rst were replaced with a new "Supported platforms & compilers" section that points to the CI test matrix as the living source of truth.
    #​5910

  • Fixed documentation formatting.
    #​5903

  • Updated upgrade notes for py::native_enum.
    #​5885

  • Clarified in the docs to what extent bindings are global.
    #​5859

Tests:

  • Fixed deadlock in a free-threading test by releasing the GIL while waiting on synchronization.
    #​5973

  • Calls to env.deprecated_call() were replaced with direct calls to pytest.deprecated_call().
    #​5893

  • Updated pytest configuration to use log_level instead of log_cli_level.
    #​5890

CI:

  • Added CI tests for windows-11-arm with clang/MSVC (currently python 3.13), windows-11-arm with clang/mingw (currently python 3.12).
    #​5932

  • These clang-tidy rules were added: readability-redundant-casting, readability-redundant-inline-specifier, readability-redundant-member-init
    #​5924

  • Replaced deprecated macos-13 runners with macos-15-intel in CI.
    #​5916

  • Restored runs-on: windows-latest in CI.
    #​5835


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added dependencies Pull requests that update a dependency file renovate labels Feb 21, 2026
@overlap-benchmarks

overlap-benchmarks Bot commented Feb 21, 2026

Copy link
Copy Markdown

C++ benchmark results

Benchmark Reference (797c5e8) Current (d4bca65)
construction[hex] 888 ns 885 ns: 1.00x faster
construction[tet] 304 ns 294 ns: 1.03x faster
construction[wedge] 597 ns 605 ns: 1.01x slower
hex_overlap_volume[sphere-in-hex] 564 ns 558 ns: 1.01x faster
normal_newell 50.5 ns 50.9 ns: 1.01x slower
tet_overlap_volume[sphere-in-hex] 1.22 us 1.21 us: 1.01x faster
Geometric mean (ref) 1.00x faster

Benchmark hidden because not significant (6): hex_overlap_volume[AABB], hex_overlap_volume[hex-in-sphere], hex_overlap_volume[random], regularized_wedge, tet_overlap_volume[AABB], tet_overlap_volume[hex-in-sphere]

Python benchmark results

Benchmark Reference Current
hex_overlap_volume[sphere-in-hex] 2.45 us 2.19 us: 1.12x faster
hex_overlap_volume[hex-in-sphere] 1.70 us 1.52 us: 1.11x faster
hex_overlap_volume[AABB] 1.68 us 1.51 us: 1.11x faster
tet_overlap_volume[sphere-in-tet] 1.29 us 1.06 us: 1.21x faster
tet_overlap_volume[tet-in-sphere] 300 ns 196 ns: 1.53x faster
tet_overlap_volume[AABB] 288 ns 184 ns: 1.57x faster
construction[tet] 3.23 us 2.97 us: 1.09x faster
construction[wedge] 4.34 us 4.05 us: 1.07x faster
construction[hex] 5.73 us 5.32 us: 1.08x faster
hex_overlap_volume[random] 10.2 us 9.45 us: 1.07x faster
Geometric mean (ref) 1.18x faster

@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch from f7d4e68 to e3f7402 Compare February 24, 2026 23:12
@renovate renovate Bot changed the title ci(deps): update c++ dependencies (main) ci(deps): update dependency pybind11 to v3.0.2 (main) Feb 25, 2026
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch 2 times, most recently from 73ebcd8 to d613e40 Compare March 1, 2026 07:14
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch from d613e40 to 29beb4a Compare March 5, 2026 21:49
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch 2 times, most recently from 1551751 to aef7048 Compare March 14, 2026 11:03
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch from aef7048 to 1e6f204 Compare March 27, 2026 14:41
@renovate renovate Bot changed the title ci(deps): update dependency pybind11 to v3.0.2 (main) ci(deps): update c++ dependencies (main) Mar 27, 2026
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch 5 times, most recently from 597c0f4 to 96e283d Compare April 6, 2026 20:51
@renovate renovate Bot changed the title ci(deps): update c++ dependencies (main) ci(deps): update dependency pybind11 to v3.0.3 (main) Apr 6, 2026
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch 3 times, most recently from c60c61d to 95e7806 Compare April 14, 2026 13:28
@renovate renovate Bot changed the title ci(deps): update dependency pybind11 to v3.0.3 (main) ci(deps): update c++ dependencies (main) Apr 14, 2026
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch from 95e7806 to 1b90fad Compare April 19, 2026 09:45
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch from 1b90fad to 76c5108 Compare April 28, 2026 22:52
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch 4 times, most recently from 917c80e to e150706 Compare May 16, 2026 14:13
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch from e150706 to 17a34a0 Compare May 19, 2026 19:46
| datasource      | package         | from   | to     |
| --------------- | --------------- | ------ | ------ |
| github-releases | doctest/doctest | v2.5.1 | v2.5.2 |
| github-releases | pybind/pybind11 | v3.0.1 | v3.0.4 |
@renovate renovate Bot force-pushed the renovate/main-c++-dependencies branch from 17a34a0 to 6d1c609 Compare June 2, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file renovate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants