-
Notifications
You must be signed in to change notification settings - Fork 43
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
git actions: fail build if extensions aren't built #412
base: master
Are you sure you want to change the base?
Conversation
PyEval_InitThreads is depricated, since 3.7 it is not necessary to call it. Ref: https://docs.python.org/3/c-api/init.html#c.PyEval_InitThreads
Otherwise it fails to convert unicode to 'str': ``` Error compiling Cython file: ------------------------------------------------------------ ... if metadata_request_timeout is None: return stmt ms = int(metadata_request_timeout / datetime.timedelta(milliseconds=1)) if ms == 0: return stmt return f"{stmt} USING TIMEOUT {ms}ms" ^ ------------------------------------------------------------ cassandra/util.py:1813:11: Cannot convert Unicode string to 'str' implicitly. This is not portable and requires explicit encoding. ```
1967715
to
0b856da
Compare
See my commits to switch using pyproject.toml seems they are helping with the building situation quite a lot It's still a work in progress (macos is not targeting correct in some) Other issues surfaced cause failing extensions:
We'll need to take a call on those |
Thanks @fruch , it fixed ubuntu, working on aarch, it looks like all major building binaries are affected: patchelf, gcc, c++. |
You are missing the point, compilation is done inside docker, we can try updating packing inside the before build command, or find out what the root cause, it's only one extension that crashes With the new setup cibuildwheel and docker, you can run the aarch64 locally (it would be slow be easier to debug) |
It looks like I found cure for aarch https://github.com/scylladb/python-driver/actions/runs/12970378006/job/36175553064?pr=411, ran pass |
fixes macos as well, making a glimpse at windows. |
we run running again and again into situation our wheels are missing some of the part we expect cause of extensions silently failing with this change we can stop the builds cause of that, and attend to it
build is the way packages should be built it does build isolation by default we also switch to uv, for quicker way of collecting packages Ref: https://build.pypa.io/en/stable/index.html Ref: https://peps.python.org/pep-0517/ Ref: https://peps.python.org/pep-0518/
move to pyproject.toml that supports PEP517/518 this would help us use isolated build env, and avoid all the fragile situation we have with Cython installation dependcy missing in some CI variation
0b856da
to
47d4409
Compare
move the configuration to pyproject.toml, that it would be easier to use from multiple workflow and for local usage for example: ``` uv pip install cibuildwheel CIBW_FREE_THREADED_SUPPORT=True cibuildwheel --only cp313-manylinux_x86_64 ```
for some reason we missing that the path we carfully added are not actually used
without this, that `c_shard_info.c` fails to compile like the following: ``` cassandra\c_shard_info.c(3083): error C2065: '__uint128_t': undeclared identifier cassandra\c_shard_info.c(3083): error C2146: syntax error: missing ')' before identifier '__pyx_v_biased_token' cassandra\c_shard_info.c(3083): error C2059: syntax error: ')' cassandra\c_shard_info.c(3083): error C2059: syntax error: ')' cassandra\c_shard_info.c(3083): error C2059: syntax error: ')' ```
47d4409
to
b2c6171
Compare
we run running again and again into situation our wheels are missing some of the part we expect cause of extensions silently failing
with this change we can stop the builds cause of that, and attend to it
Pre-review checklist
./docs/source/
.Fixes:
annotations to PR description.