Opsqueue's Python library uses PyO3 to generate FFI bindings.
The PyO3 project is evolving fast, with a lot of fixes and improvements happening in the past year.
However, there are some changes to the API / Rust macros, which means that some of the PyO3 annotations will need to be rewritten to be compatible with the newer version.
An important reason to perform this upgrade soon, is so we can support Python 3.14.x
EDIT: In PR #103 we have bumped PyO3 to v0.25.x which already includes support for Python 3.14 while not having any API changes yet. While that means this issue is less urgent, it would still be prudent to upgrade to 0.27.x soon because there are a bunch of bugfixes and stability improvements that we'd like to get.
The main difference in the new API, is that PyO3 does a lot less 'automatic locking of the GIL' by default. This means that a bunch of places in which we used .allow_threads(...) before will need to change. It also means that certain Python types are no longer + Send by default.
Opsqueue's Python library uses PyO3 to generate FFI bindings.
The PyO3 project is evolving fast, with a lot of fixes and improvements happening in the past year.
However, there are some changes to the API / Rust macros, which means that some of the PyO3 annotations will need to be rewritten to be compatible with the newer version.
An important reason to perform this upgrade soon, is so we can support Python 3.14.xEDIT: In PR #103 we have bumped PyO3 to v0.25.x which already includes support for Python 3.14 while not having any API changes yet. While that means this issue is less urgent, it would still be prudent to upgrade to 0.27.x soon because there are a bunch of bugfixes and stability improvements that we'd like to get.
The main difference in the new API, is that PyO3 does a lot less 'automatic locking of the GIL' by default. This means that a bunch of places in which we used
.allow_threads(...)before will need to change. It also means that certain Python types are no longer+ Sendby default.