See the pybind11 [upgrade guide](https://pybind11.readthedocs.io/en/stable/upgrade.html#v3-0) and the [Changelog](https://pybind11.readthedocs.io/en/stable/changelog.html#final-july-10-2025). Main steps as far as I can see are: - [ ] Check that CMake uses FindPython variables - [ ] Use `py::smart_holder` - [ ] Migrate from `py::enum_` to `py::native_enum`