scylla-driver: Add version 3.29.11 - #2165
Merged
Merged
Conversation
Builds the Cython and C extensions (murmur3 partitioner, shard-aware routing, libev event loop, protocol deserializers) for cp312/cp313/cp314/cp314t on manylinux_riscv64.
luhenry
added a commit
that referenced
this pull request
Sep 21, 2026
Contributor
|
LibevLoop._cleanup() stops the shared prepare watcher, so the timer tests that follow test_watchers_are_finished never see their callbacks fire and the unit suite spins until the job's timeout. Patch the checkout to restart it, and keep pip on the registry's gevent instead of a ten-minute source build.
tests/unit/test_cluster.py ships two tests the 3.29.11 tag's own source does not
satisfy, and both fail the same way on x86_64, so neither is a riscv64 problem:
- test_set_keyspace_for_all_pools_reports_all_errors:
Session._set_keyspace_for_all_pools() accumulates per-host errors in a dict
but hands the final callback host_errors, the last pool's list, so a failure
on any pool but the last one is silently dropped.
- test_wait_for_schema_agreement_rejects_unknown_scope:
Session.wait_for_schema_agreement() documents ValueError for a scope outside
SchemaAgreementScope, but never validates it; an unknown scope silently
behaves like CLUSTER.
Upstream fixed both on master shortly after cutting the release - 26c201a on
18 June, three days after the tag, and 03c4c96 on 29 June - so carry them as
backports until a release contains them.
List patches/scylla-driver/** in the path triggers too, so a commit that only
touches a patch still produces a run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
scylla-driver3.29.11Compiles the murmur3 partitioner, the libev event loop and the Cython protocol, shard-routing and deserializer modules. Upstream publishes no riscv64 wheel.
Mirrors upstream's
lib-build.ymland its[tool.cibuildwheel]config.Differs from upstream
build-frontend = buildinstead ofbuild[uv]- the riscv64 runner has no hostuv.before-builddrops the AlmaLinux GPG import and the packages the image already ships.Testing
test-groupsreplaced by the same requirements minusccm, a git dependency only the integration tests use.setuptoolsadded, which is what givespyximportadistutilson 3.12+.geventand its reactor test dropped on cp314t, which it has no build for.tests/staged so the checkout cannot shadow the installed wheel.License: Wheel bundles libev (BSD-2-Clause OR GPL-2.0-or-later); upstream ships no licence text for it, so the build adds it.
Patches - none of the four is riscv64-specific.
0001-Ship-the-licence-of-the-bundled-libev-in-the-wheel.patch-To upstream. Without it the wheel redistributeslibev.so.4with no copyright notice.0002-Restart-the-libev-prepare-watcher-after-the-cleanup-t.patch-To upstream.LibevLoop._cleanup()stops the process-wide prepare watcher and nothing restarts it, so_update_timernever runs again and every timer created aftertest_watchers_are_finishedstays pending forever. The next test then spins insubmit_and_wait_for_completionuntil the job is killed.0003-Fix-Session._set_keyspace_for_all_pools-to-report-al.patch-Backportof 26c201a.Session._set_keyspace_for_all_pools()accumulates per-host errors in a dict but hands the final callbackhost_errors, the last pool's list, so a failure on any pool but the last is silently dropped.0004-fix-add-missing-scope-validation-in-Session.wait_for.patch-Backportof 03c4c96.Session.wait_for_schema_agreement()documentsValueErrorfor a scope outsideSchemaAgreementScopebut never validates it; an unknown scope silently behaves likeCLUSTER.The 3.29.11 tag ships the two tests that 0003 and 0004 satisfy but not the source fixes: both were cut on master 3 days and 2 weeks after the release. They fail identically on x86_64, so they are not an artefact of riscv64 or QEMU.
patches/scylla-driver/**is listed in thepull_request/pushpath triggers, so a patch-only commit still produces a run.