capnproto / pycapnp

Cap'n Proto serialization/RPC system - Python bindings
BSD 2-Clause "Simplified" License
468 stars 124 forks source link

Python 3.10 Wheels #286

Closed madhavajay closed 2 years ago

madhavajay commented 2 years ago

Firstly, thanks for capnproto, one doesn't realise just how awesome it is, until one needs what it offers that other serde / in-memory / wireformats do not.

Any chance of getting a Python 3.10 release with Windows and Apple Silicon? https://github.com/capnproto/pycapnp/pull/285

We have added some steps to compile for windows on python 3.10 to our GitHub CI but most users won't have the correct packages setup on windows, and its likely the same will occur for any other user without correct c++ compilers being setup.

I can help with fixing the flake8 issues but theres a lot right now so maybe it makes sense to do them progressively rather than blocking CI.

Also, it looks like Apple Silicon can be cross-compiled on intel mac so im just investigating being able to do that to create a universal2 wheel if you are interested.

haata commented 2 years ago

Yeah, I'm totally down with adding binaries for Apple ARM. The trick will be setting it up in GitHub CI. Hopefully the tooling has made some strides since I last looked into this.

I've been pretty busy lately, but I'll happily review PRs.

madhavajay commented 2 years ago

Okay, I can take a look, it looks like my PR is failing due to some test / memory issue, is that from this PR: https://github.com/capnproto/pycapnp/pull/281 ?

theunkn0wn1 commented 2 years ago

+1 for windows 3.10 wheels. Trying to install this on 3.10 right now results in ugly errors inside pip

madhavajay commented 2 years ago

@haata @theunkn0wn1 I think my PR was broken due to the issues from this PR, so I merged it into mine and fixed the conflicts: https://github.com/capnproto/pycapnp/pull/281

I will open a seperate PR as soon as this works to add m1 support. Regarding Windows @theunkn0wn1 in the mean time you can get it working with cmake and vstudio we do it here in our CI pipeline: https://github.com/OpenMined/PySyft/blob/04baf59dce171dc326c7351c0fd7012c1eed5145/.github/workflows/stack-integration_tests.yml#L241

The requirements are cmake, visualstudio2019-workload-vctools and cython.

We also really want this merged because currently users need to have cmake just to pip install our library on python 3.10 and apple silicon.

haata commented 2 years ago

https://pypi.org/project/pycapnp/1.1.1/

This doesn't include the universal2 wheels (we can use a different issue for that one).