Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python support 3.11 #199

Merged
merged 22 commits into from
Sep 30, 2024
Merged

Python support 3.11 #199

merged 22 commits into from
Sep 30, 2024

Conversation

s0l0ist
Copy link
Contributor

@s0l0ist s0l0ist commented Sep 30, 2024

Description

Closes: #198

This PR adds support for Python 3.11. It also supports arm64 builds for MacOS. Future PRs can include arm builds for Linux once Github provides ARM runners for Ubuntu.

Python 3.12 is currently failing to build on M1 Mac with a segfault. It is not clear where the issue resides (CPython, pybind11, or some other upstream dependency). It may build on Linux, but I have not tested it. I think it is safe to omit Python 3.12 support until another future PR.

To support these changes, the repository was migrated from Bazel 6 which used a WORKSPACE to Bazel 7 with bzlmod. The only remaining workspace artifacts exist to support the emsdk repository which does not support bzlmod.

There are hermetic python versions used for testing different versions. This greatly simplifies testing locally different supported python versions. The caveat is that it installs the 'latest' patch version and therefore is not an exhaustive test for the specific runtime. Publishing wheels depends on the locally installed python version as I wasn't able to hook up a specific python toolchain to py_wheel. This is reflected in the CD.yml file which installs multiple python versions for publishing distributions.

Affected Dependencies

  • There's no longer a minimum version bound on the protobuf requirement in python.

How has this been tested?

CI should pass, but in summary:

  • Cpp
    • bazel test --test_output=all //private_set_intersection/cpp/...
  • C
    • bazel test --test_output=all //private_set_intersection/c/...
  • Golang
    • bazel test --test_output=all //private_set_intersection/go/...
  • Rust
    • bazel test --test_output=all //private_set_intersection/rust/...
  • Python
    • bazel test --test_output=all //private_set_intersection/python:test_3_8
    • bazel test --test_output=all //private_set_intersection/python:test_3_9
    • bazel test --test_output=all //private_set_intersection/python:test_3_10
    • bazel test --test_output=all //private_set_intersection/python:test_3_11
  • Javascript
    • npm i
    • npm run build
    • npm run build:proto
    • npm run compile
    • npm run test

Checklist

@s0l0ist s0l0ist merged commit b4d585d into master Sep 30, 2024
18 of 19 checks passed
@s0l0ist s0l0ist deleted the python-support-3.11 branch September 30, 2024 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Is there any plan to add support to Python 3.11+
1 participant