Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: bitpathfinder/python-driver
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: scylladb/python-driver
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 17 commits
  • 58 files changed
  • 6 contributors

Commits on May 8, 2026

  1. cluster: add Session.wait_for_schema_agreement

    Add Session.wait_for_schema_agreement() as a session-scoped schema agreement check. The new API queries schema_version from system.local on the connected hosts selected by the requested rack, dc, or cluster scope, respects Cluster.max_schema_agreement_wait and the control-connection metadata timeouts, and bounds the fan-out with configurable parallelism.
    
    Update the public Session docs and switch the integration callers that were explicitly waiting on schema agreement to use the session API. Add unit coverage for agreement, retries, busy connections, missing pools, batching, scope filtering, and invalid scope handling.
    dkropachev committed May 8, 2026
    Configuration menu
    Copy the full SHA
    0d215f4 View commit details
    Browse the repository at this point in the history
  2. control-connection: deprecate ControlConnection.wait_for_schema_agree…

    …ment
    
    Keep ControlConnection.wait_for_schema_agreement() as a compatibility wrapper, but move the existing implementation to _wait_for_schema_agreement() and deprecate the public method in favor of Session.wait_for_schema_agreement(). This lets the control-connection refresh path continue using the old logic internally without emitting warnings.
    
    The control-connection wait path was designed for internal metadata refresh use, not as a user-facing schema agreement API.
    It observes schema agreement from one single node, assuming that schema change statement have been ran on that host.
    Using it by users will lead to false positives, if user ran statement on
    a host different from host of control connection.
    
    Update the unit tests to call the internal helper everywhere a warning is not expected, add explicit deprecation coverage for the public wrapper, and set stacklevel=2 so the warning points at the caller instead of inside the driver.
    dkropachev committed May 8, 2026
    Configuration menu
    Copy the full SHA
    ef7c2d0 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2026

  1. connection: clean up failed heartbeat sends

    Keep heartbeat request-id and in-flight bookkeeping consistent when send_msg() fails.\n\nHandle the control-connection in_flight release separately from HostConnection cleanup.
    dkropachev committed May 10, 2026
    Configuration menu
    Copy the full SHA
    51dd366 View commit details
    Browse the repository at this point in the history
  2. cluster: add control-connection query fallback

    Add an opt-in control-connection fallback for application queries when the driver cannot populate normal node pools, which happens in deployments that expose the cluster through a non-broadcast IP address such as a TCP proxy or a node public IP. In that mode the driver can still execute queries over the single control connection, but throughput is poor and connection churn increases the chance of request errors. This option is intentionally disabled by default and should not be used in production.
    
    Also propagate keyspace updates on the fallback path so USE keeps the control connection in sync.
    
    Tests:
    - tests/unit/test_cluster.py::ClusterTest::test_set_keyspace_for_all_pools_reports_all_errors
    - tests/unit/test_response_future.py::ResponseFutureTests::test_control_connection_fallback_updates_connection_keyspace
    dkropachev committed May 10, 2026
    Configuration menu
    Copy the full SHA
    84b599c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    442f1ed View commit details
    Browse the repository at this point in the history

Commits on May 11, 2026

  1. tests: replace SimpleStrategy with NetworkTopologyStrategy

    Replace SimpleStrategy with NetworkTopologyStrategy across integration
    tests to align with ScyllaDB's tablet-based replication defaults.
    
    In the tablets test module, skip default keyspace creation
    (set_keyspace=False) to avoid RF=3 keyspaces that block node
    decommission when all nodes already hold replicas.
    sylwiaszunejko authored and dkropachev committed May 11, 2026
    Configuration menu
    Copy the full SHA
    69bb8ef View commit details
    Browse the repository at this point in the history
  2. tests: bootstrap 3 new nodes in full node replacement test

    With tablets enabled, decommissioning a node from a 3-node cluster with
    RF=3 fails because there is no available node to receive tablet replicas.
    Bootstrap 3 replacement nodes instead of 2 so that each original node
    can be decommissioned while sufficient replicas remain.
    sylwiaszunejko authored and dkropachev committed May 11, 2026
    Configuration menu
    Copy the full SHA
    445b5af View commit details
    Browse the repository at this point in the history
  3. tests: xfail LWT tests on Scylla versions without tablet LWT support

    LWT is not supported with tablets on ScyllaDB < 2025.4. Mark the affected SerialConsistencyTests and
    LightweightTransactionTests as xfail for those versions.
    sylwiaszunejko authored and dkropachev committed May 11, 2026
    Configuration menu
    Copy the full SHA
    2b5dd16 View commit details
    Browse the repository at this point in the history
  4. tests: xfail tests on Scylla version without indexes tablet support

    Secondary indexes are not supported on base tables with tablets for Scylla
    versions < 2026.1.
    sylwiaszunejko authored and dkropachev committed May 11, 2026
    Configuration menu
    Copy the full SHA
    e7cb651 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fe2a943 View commit details
    Browse the repository at this point in the history
  6. ci: update Scylla test version from 2025.2 to 2026.1

    The integration test suite was pinned to release:2025.2 which is no
    longer the latest LTS branch.  Update to release:2026.1 so CI covers
    the newest ScyllaDB features and catches regressions earlier.
    
    Tests gated by @skip_scylla_version_lt(2026.1.0) — such as the
    client_routes tests — will now actually execute in CI.
    mykaul authored and roydahan committed May 11, 2026
    Configuration menu
    Copy the full SHA
    b9813e7 View commit details
    Browse the repository at this point in the history
  7. Replace SimpleStrategy with NetworkTopologyStrategy across codebase

    ScyllaDB has dropped support for SimpleStrategy. Update all CQL
    statements, test fixtures, examples, benchmarks, and management
    utilities to use NetworkTopologyStrategy instead.
    
    The SimpleStrategy class definition in cassandra/metadata.py is
    preserved for backward compatibility with Cassandra clusters.
    roydahan authored and dkropachev committed May 11, 2026
    Configuration menu
    Copy the full SHA
    fb13815 View commit details
    Browse the repository at this point in the history

Commits on May 12, 2026

  1. build(deps): bump urllib3 from 2.6.3 to 2.7.0 in /docs

    Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0.
    - [Release notes](https://github.com/urllib3/urllib3/releases)
    - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
    - [Commits](urllib3/urllib3@2.6.3...2.7.0)
    
    ---
    updated-dependencies:
    - dependency-name: urllib3
      dependency-version: 2.7.0
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored and dkropachev committed May 12, 2026
    Configuration menu
    Copy the full SHA
    f7d945f View commit details
    Browse the repository at this point in the history

Commits on May 15, 2026

  1. tests: use tablets-disabled keyspace instead of xfail for scylladb/sc…

    …ylladb#22677
    
    Tests that previously xfailed on ScyllaDB < 2026.1 due to MVs, secondary
    indexes, and counters not being supported on tables with tablets now create
    their keyspace with 'AND tablets = {"enabled": false}' for those older
    versions, so the tests run and pass rather than being expected to fail.
    
    A new helper get_tablets_disabled_ddl_suffix() is added to
    tests/integration/__init__.py to return the appropriate DDL suffix.
    sylwiaszunejko authored and dkropachev committed May 15, 2026
    Configuration menu
    Copy the full SHA
    cf01c3f View commit details
    Browse the repository at this point in the history

Commits on May 20, 2026

  1. asyncio: fix SSL connections by using native TLS transport

    Python 3.8+ rejects ssl.SSLSocket in asyncio's sock_sendall/sock_recv
    with TypeError. This caused the driver to fail connecting to ScyllaDB
    clusters requiring TLS, manifesting as 'protocol version 21 not
    supported' errors (0x15 = TLS Alert byte misread as protocol version).
    
    Fix by using asyncio's native TLS transport (loop.create_connection
    with ssl= parameter) instead of wrapping sockets with
    ssl.SSLContext.wrap_socket(). This preserves shard-aware port binding
    done during _initiate_connection().
    
    Add _AsyncioProtocol to bridge asyncio's transport/protocol API back
    to Connection.process_io_buffer() for SSL data reads. Non-SSL
    connections continue using the existing sock_recv path.
    
    Fixes scylladb#330
    roydahan authored and dkropachev committed May 20, 2026
    Configuration menu
    Copy the full SHA
    a0eb304 View commit details
    Browse the repository at this point in the history

Commits on May 22, 2026

  1. Pin GitHub Actions to commit hashes and enforce pinning

    - Update all action references to use full SHA commit hashes
    - Configure Renovate to pin digests and require 90-day minimum age
    - Add github-actions ecosystem to Dependabot
    sylwiaszunejko committed May 22, 2026
    Configuration menu
    Copy the full SHA
    44bc95a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    037118e View commit details
    Browse the repository at this point in the history
Loading