Skip to content

scylla-driver: Add version 3.29.11 - #2165

Merged
luhenry merged 3 commits into
mainfrom
scylla-driver
Sep 21, 2026
Merged

luhenry merged 3 commits into
mainfrom
scylla-driver

Conversation

@luhenry

@luhenry luhenry commented Sep 21, 2026

Copy link
Copy Markdown
Member

Compiles 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.yml and its [tool.cibuildwheel] config.

Differs from upstream

  • build-frontend = build instead of build[uv] - the riscv64 runner has no host uv.
  • before-build drops the AlmaLinux GPG import and the packages the image already ships.

Testing

  • test-groups replaced by the same requirements minus ccm, a git dependency only the integration tests use.
  • setuptools added, which is what gives pyximport a distutils on 3.12+.
  • gevent and 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 redistributes libev.so.4 with 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_timer never runs again and every timer created after test_watchers_are_finished stays pending forever. The next test then spins in submit_and_wait_for_completion until the job is killed.
  • 0003-Fix-Session._set_keyspace_for_all_pools-to-report-al.patch - Backport of 26c201a. 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 is silently dropped.
  • 0004-fix-add-missing-scope-validation-in-Session.wait_for.patch - Backport of 03c4c96. Session.wait_for_schema_agreement() documents ValueError for a scope outside SchemaAgreementScope but never validates it; an unknown scope silently behaves like CLUSTER.

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 the pull_request/push path triggers, so a patch-only commit still produces a run.

Builds the Cython and C extensions (murmur3 partitioner, shard-aware routing, libev event loop, protocol deserializers) for cp312/cp313/cp314/cp314t on manylinux_riscv64.
@github-actions

github-actions Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-21 20:10 UTC

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.
@luhenry
luhenry marked this pull request as ready for review September 21, 2026 18:45
@luhenry
luhenry merged commit b999d1c into main Sep 21, 2026
15 checks passed
@luhenry
luhenry deleted the scylla-driver branch September 21, 2026 20:06
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.

1 participant