Open lgbaldoni opened 1 year ago
Any more information? gcc version? OS version? Version of capnproto? Version of pycapnp?
This is due to the breaking change in capnproto-c++ 1.0, mentioned in the blog post:
https://capnproto.org/news/2023-07-28-capnproto-1.0.html
The method allowCancellation()
has been removed. Instead, you now use an annotation to opt into allowing cancellation.
pycapnp will have to remove its version of this method. I suppose a breaking change like this in Python is a bit trickier since it won't be caught at compile-time if an app is still using this. Perhaps the method should change to do nothing, and log a warning? Of course, it can be conditional on #if CAPNP_VERSION_MAJOR >= 1
so it does the right thing regardless of which capnp-c++ version is in use.
Any more information? gcc version?
13
OS version?
openSUSE Tumbleweed
Version of capnproto?
1.0.0
Version of pycapnp?
1.3.0
The method allowCancellation() has been removed. Instead, you now use an annotation to opt into allowing cancellation.
Indeed. I forgot to mention it. I assumed pycapnp and capnproto to have the same maintainers.
Indeed. I forgot to mention it. I assumed pycapnp and capnproto to have the same maintainers.
Admittedly I (maintainer of capnproto-c++) probably should have coordinated better on this with @haata (maintainer of pycapnp) so that this was ready in advance. Didn't think of it for some reason. :/
Sorry for being quiet, this is a bit of a crazy week for me, I'll try to see if I can work on it on the weekend.
Any progress on this?
Sorry for the delay. I've started to take a look at it this weekend.
I'm also realizing pip has been going through a lot of changes recently and a lot of the old options for building no longer work with recent pip versions. Basically --force-bundled-libcapnp
will no longer work and I'll need to port all of the options to use something like this https://github.com/python-pillow/Pillow/pull/7171/files, sigh.
Making some progress (thanks @tobiasah for getting me into gear and @LasseBlaauwbroek for all your hard work since the last release), just doing some final tests before pushing out a beta (found some annoying packaging bugs that have probably been there a while).
Current branch: https://github.com/haata/pycapnp/tree/capnp1.0
🎉 thanks a loot @haata
😁 I am still puzzled if there is an easy way to support versions < 1.0.0 ... But getting the version into the pyx
file (e.g., through compile_time_env
) before "cythonizing" is, as far as I can see, not possible because its determined later which version is used/bundled.
So the only way would be to do this outside of the pyx
file.
BTW I do not need support for capnp > 1.0 ... but maybe someone relies on it?
Great @haata!
I'd also be in favor of supporting capnp < 1.0 for a while if possible. Many of the linux distros have not upgraded yet. Keeping some compatibility would be great. (Note that conda did upgrade capnp to 1.0.)
That being said, I'm probably fine with removing allowCancellation
entirely. So if we can maintain backwards compatibility that way, it is okay for me.