From 336bf445491359181119a9583ab3de02f903a8b3 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Thu, 20 Nov 2025 15:17:14 -0600 Subject: [PATCH 01/19] Updating to state of current work... while also removing existing submodule --- .github/workflows/build_wheels_linux.yml | 3 ++- .gitmodules | 3 --- python-driver | 1 - 3 files changed, 2 insertions(+), 5 deletions(-) delete mode 160000 python-driver diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index eac7b2d..c8d5af1 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -7,13 +7,14 @@ jobs: name: Build wheels on ubuntu-22.04 runs-on: ubuntu-22.04 env: - CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-* + CIBW_BUILD: cp312-* CIBW_SKIP: "*musllinux*" CIBW_ARCHS_LINUX: x86_64 aarch64 CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" CIBW_BEFORE_ALL: yum install -y libev libev-devel CIBW_ENVIRONMENT: CFLAGS='-s' + CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 with: diff --git a/.gitmodules b/.gitmodules index 1511a22..347fe93 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ [submodule "multibuild"] path = multibuild url = https://github.com/matthew-brett/multibuild.git -[submodule "python-driver"] - path = python-driver - url = https://github.com/datastax/python-driver.git diff --git a/python-driver b/python-driver deleted file mode 160000 index 27a1770..0000000 --- a/python-driver +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 27a1770933e490ff4282a0f6b098de472576ff14 From ecbbe3c926697ae90b156b16b3bacd73d62f22c5 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Thu, 20 Nov 2025 15:19:17 -0600 Subject: [PATCH 02/19] Updating to use absurdfarce/python-driver --- .gitmodules | 3 +++ python-driver | 1 + 2 files changed, 4 insertions(+) create mode 160000 python-driver diff --git a/.gitmodules b/.gitmodules index 347fe93..cf119e3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "multibuild"] path = multibuild url = https://github.com/matthew-brett/multibuild.git +[submodule "python-driver"] + path = python-driver + url = https://github.com/absurdfarce/python-driver.git diff --git a/python-driver b/python-driver new file mode 160000 index 0000000..02e8270 --- /dev/null +++ b/python-driver @@ -0,0 +1 @@ +Subproject commit 02e8270628398121bd53496ae1e029ad46b7f8a1 From 1edae4f1d10c0739ef97bc04bc1271816af5b087 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Thu, 20 Nov 2025 15:58:30 -0600 Subject: [PATCH 03/19] Updating submodule to use latest commit on python1428 branch of absurdfarce/python-driver --- python-driver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-driver b/python-driver index 02e8270..5397c6a 160000 --- a/python-driver +++ b/python-driver @@ -1 +1 @@ -Subproject commit 02e8270628398121bd53496ae1e029ad46b7f8a1 +Subproject commit 5397c6a6bae0c98e51138b5711f4cb425460dff8 From ccee4f686921b0444a69bd085942abd4620d74ea Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Mon, 22 Dec 2025 17:20:28 -0600 Subject: [PATCH 04/19] Update to reflect recent work on moving to pyproject.toml --- python-driver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-driver b/python-driver index 5397c6a..fcfc680 160000 --- a/python-driver +++ b/python-driver @@ -1 +1 @@ -Subproject commit 5397c6a6bae0c98e51138b5711f4cb425460dff8 +Subproject commit fcfc68007fdcf3f4016c2935cafaf1b03f9c632c From 2d6517477b44cce69faa7c1b9e08b5525c2eb15e Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Tue, 23 Dec 2025 13:21:34 -0600 Subject: [PATCH 05/19] Temporarily remove stripping of symbols from shared objects in order to try and diagnose an issue --- .github/workflows/build_wheels_linux.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index c8d5af1..88628ef 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -13,7 +13,6 @@ jobs: CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" CIBW_BEFORE_ALL: yum install -y libev libev-devel - CIBW_ENVIRONMENT: CFLAGS='-s' CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 From bcd86468ae6b26b4ff2dc61c93d6ecd74eb210e5 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Tue, 23 Dec 2025 15:54:24 -0600 Subject: [PATCH 06/19] Revert "Temporarily remove stripping of symbols from shared objects in order to try and diagnose an issue" This reverts commit 2d6517477b44cce69faa7c1b9e08b5525c2eb15e. --- .github/workflows/build_wheels_linux.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index 88628ef..c8d5af1 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -13,6 +13,7 @@ jobs: CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" CIBW_BEFORE_ALL: yum install -y libev libev-devel + CIBW_ENVIRONMENT: CFLAGS='-s' CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 From c06ba169308cfab90795a6f790ece6ca21ed5754 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Tue, 23 Dec 2025 15:54:58 -0600 Subject: [PATCH 07/19] Let's try including an explicitly empty CFLAGS to avoid the compiler adding it's own values --- .github/workflows/build_wheels_linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index c8d5af1..e6bf326 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -13,7 +13,7 @@ jobs: CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" CIBW_BEFORE_ALL: yum install -y libev libev-devel - CIBW_ENVIRONMENT: CFLAGS='-s' + CIBW_ENVIRONMENT: CFLAGS='' CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 From 15c4e8d97f5b83fb35a40e3faa5b0d40eced9651 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Tue, 23 Dec 2025 16:34:59 -0600 Subject: [PATCH 08/19] Trying the default gcc compilation args + stripping of symbols --- .github/workflows/build_wheels_linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index e6bf326..e113bdd 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -13,7 +13,7 @@ jobs: CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" CIBW_BEFORE_ALL: yum install -y libev libev-devel - CIBW_ENVIRONMENT: CFLAGS='' + CIBW_ENVIRONMENT: CFLAGS='-s -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall' CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 From aecd59c6c29a4ea95258897f3d538eae62888e60 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Tue, 23 Dec 2025 17:48:25 -0600 Subject: [PATCH 09/19] Revert "Trying the default gcc compilation args + stripping of symbols" This reverts commit 15c4e8d97f5b83fb35a40e3faa5b0d40eced9651. --- .github/workflows/build_wheels_linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index e113bdd..e6bf326 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -13,7 +13,7 @@ jobs: CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" CIBW_BEFORE_ALL: yum install -y libev libev-devel - CIBW_ENVIRONMENT: CFLAGS='-s -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall' + CIBW_ENVIRONMENT: CFLAGS='' CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 From 3af044e4a5df26a7f240dd5d7c7d006f0edee2a0 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Tue, 23 Dec 2025 17:48:50 -0600 Subject: [PATCH 10/19] Revert "Let's try including an explicitly empty CFLAGS to avoid the compiler adding it's own values" This reverts commit c06ba169308cfab90795a6f790ece6ca21ed5754. --- .github/workflows/build_wheels_linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index e6bf326..c8d5af1 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -13,7 +13,7 @@ jobs: CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" CIBW_BEFORE_ALL: yum install -y libev libev-devel - CIBW_ENVIRONMENT: CFLAGS='' + CIBW_ENVIRONMENT: CFLAGS='-s' CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 From efe43a3a346f8a882d6098f35bdc3bda64ea4e17 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Fri, 9 Jan 2026 16:17:00 -0600 Subject: [PATCH 11/19] Restoring the full Python build matrix - Python 3.9 + Python 3.14 --- .github/workflows/build_wheels_linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index c8d5af1..96e842e 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -7,7 +7,7 @@ jobs: name: Build wheels on ubuntu-22.04 runs-on: ubuntu-22.04 env: - CIBW_BUILD: cp312-* + CIBW_BUILD: cp310-* cp311-* cp312-* cp313-* cp314-* CIBW_SKIP: "*musllinux*" CIBW_ARCHS_LINUX: x86_64 aarch64 CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet From 1ae3b6a617f7c33f870823f3ae7335767bad8e21 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Fri, 9 Jan 2026 16:33:48 -0600 Subject: [PATCH 12/19] Update OSX configs to account for removal of MacOS 13 runner --- .github/workflows/build_wheels_mac.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_wheels_mac.yml b/.github/workflows/build_wheels_mac.yml index 2d18dac..eb77d9f 100644 --- a/.github/workflows/build_wheels_mac.yml +++ b/.github/workflows/build_wheels_mac.yml @@ -8,12 +8,13 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - # macos-13 == Intel, macos-14 == ARM - os: [macos-13, macos-14] + # macos-15-intel == Intel, macos-14 == ARM + # macos-15-intel is the last x86_64 runner (https://github.com/actions/runner-images/issues/13046) + os: [macos-15-intel, macos-14] min_version: [10.9, 11.0] exclude: # Always try for the maximal min version for x86_64 builds - - os: macos-13 + - os: macos-15-intel min_version: 11.0 # ARM builds require an OSX version of at least 11.0 - os: macos-14 From 5096c6cf854dd583d67243540a7d44300218018f Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Sat, 10 Jan 2026 11:40:18 -0600 Subject: [PATCH 13/19] Bump target Python versions for MacOS --- .github/workflows/build_wheels_mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_mac.yml b/.github/workflows/build_wheels_mac.yml index eb77d9f..be842eb 100644 --- a/.github/workflows/build_wheels_mac.yml +++ b/.github/workflows/build_wheels_mac.yml @@ -21,7 +21,7 @@ jobs: min_version: 10.9 env: CIBW_ENVIRONMENT: CFLAGS="-mmacosx-version-min=${{ matrix.min_version }}" - CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-* + CIBW_BUILD: cp310-* cp311-* cp312-* cp313-* cp314-* CIBW_SKIP: "*musllinux*" CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" From d49eb3dffe00340d7fd82698a6802a2e12a0fdc0 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Mon, 12 Jan 2026 12:03:20 -0600 Subject: [PATCH 14/19] Update python-driver to reflect recent pyproject.toml changes --- python-driver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-driver b/python-driver index fcfc680..475df4b 160000 --- a/python-driver +++ b/python-driver @@ -1 +1 @@ -Subproject commit fcfc68007fdcf3f4016c2935cafaf1b03f9c632c +Subproject commit 475df4b3347266237cf8ccc974ae27f8c8bf0348 From 920678a495db178a60d94f9b84b969bba2e49be1 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Mon, 12 Jan 2026 12:03:45 -0600 Subject: [PATCH 15/19] Trying out the script-based pyproject.toml update process --- .github/workflows/build_wheels_win.yml | 8 ++++++-- scripts/update_pyproject.py | 16 ++++++++++++++++ scripts/update_pyproject.py~ | 10 ++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 scripts/update_pyproject.py create mode 100644 scripts/update_pyproject.py~ diff --git a/.github/workflows/build_wheels_win.yml b/.github/workflows/build_wheels_win.yml index d0af8d0..ec98f4d 100644 --- a/.github/workflows/build_wheels_win.yml +++ b/.github/workflows/build_wheels_win.yml @@ -11,14 +11,18 @@ jobs: CIBW_SKIP: "*musllinux*" CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" - CASS_DRIVER_LIBEV_INCLUDES: C:\vcpkg\packages\libev_x64-windows\include\libev - CASS_DRIVER_LIBEV_LIBS: C:\vcpkg\packages\libev_x64-windows\lib + LIBEV_INCLUDES: C:\vcpkg\packages\libev_x64-windows\include\libev + LIBEV_LIBS: C:\vcpkg\packages\libev_x64-windows\lib steps: - uses: actions/checkout@v4 with: submodules: true - name: Install libev run: vcpkg install libev + - name: Update pyproject.toml to find libev + run: | + pip install toml + python scripts/update-pyproject.py python-driver/pyproject.toml "${{ env.LIBEV_INCLUDES }}" "${{ env.LIBEV_LIBS }}" - uses: pypa/cibuildwheel@v3.2.1 with: package-dir: ./python-driver diff --git a/scripts/update_pyproject.py b/scripts/update_pyproject.py new file mode 100644 index 0000000..c7b54be --- /dev/null +++ b/scripts/update_pyproject.py @@ -0,0 +1,16 @@ +import toml + +import shutil +import sys + +(pyproject_path, libev_includes,libev_libs) = sys.argv[1:] + +pyproject_path_backup = pyproject_path + ".original" + +shutil.move(pyproject_path, pyproject_path_backup) +the_toml = toml.load(pyproject_path_backup) + +the_toml["tool"]["cassandra-driver"]["libev-includes"] = [libev_includes] +the_toml["tool"]["cassandra-driver"]["libev-libs"] = [libev_libs] + +toml.dump(the_toml, open(pyproject_path, "w")) diff --git a/scripts/update_pyproject.py~ b/scripts/update_pyproject.py~ new file mode 100644 index 0000000..84051e5 --- /dev/null +++ b/scripts/update_pyproject.py~ @@ -0,0 +1,10 @@ +import toml + +(pyproject_path, libev_includes,libev_libs) = sys.argv[1:] + +origin_toml = toml.load(pyproject_path) +origin_toml["tool.cassandra-driver"]["libev-includes] = [libev_includes] +origin_toml["tool.cassandra-driver"]["libev-libs] = [libev_libs] + +print toml.dump(origin_toml) + From dfd3434aebd1d136bdcd3fa29a664227487e403a Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Mon, 12 Jan 2026 12:08:52 -0600 Subject: [PATCH 16/19] Formatting issue --- .github/workflows/build_wheels_win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_win.yml b/.github/workflows/build_wheels_win.yml index ec98f4d..c61287d 100644 --- a/.github/workflows/build_wheels_win.yml +++ b/.github/workflows/build_wheels_win.yml @@ -22,7 +22,7 @@ jobs: - name: Update pyproject.toml to find libev run: | pip install toml - python scripts/update-pyproject.py python-driver/pyproject.toml "${{ env.LIBEV_INCLUDES }}" "${{ env.LIBEV_LIBS }}" + python scripts/update-pyproject.py python-driver/pyproject.toml "${{ env.LIBEV_INCLUDES }}" "${{ env.LIBEV_LIBS }}" - uses: pypa/cibuildwheel@v3.2.1 with: package-dir: ./python-driver From 46c4135b93424ab534b74d9efd208dfc567c84aa Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Mon, 12 Jan 2026 12:18:57 -0600 Subject: [PATCH 17/19] A few minor fixes --- .github/workflows/build_wheels_win.yml | 2 +- scripts/update_pyproject.py~ | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 scripts/update_pyproject.py~ diff --git a/.github/workflows/build_wheels_win.yml b/.github/workflows/build_wheels_win.yml index c61287d..e71ccd3 100644 --- a/.github/workflows/build_wheels_win.yml +++ b/.github/workflows/build_wheels_win.yml @@ -22,7 +22,7 @@ jobs: - name: Update pyproject.toml to find libev run: | pip install toml - python scripts/update-pyproject.py python-driver/pyproject.toml "${{ env.LIBEV_INCLUDES }}" "${{ env.LIBEV_LIBS }}" + python scripts/update_pyproject.py python-driver/pyproject.toml "${{ env.LIBEV_INCLUDES }}" "${{ env.LIBEV_LIBS }}" - uses: pypa/cibuildwheel@v3.2.1 with: package-dir: ./python-driver diff --git a/scripts/update_pyproject.py~ b/scripts/update_pyproject.py~ deleted file mode 100644 index 84051e5..0000000 --- a/scripts/update_pyproject.py~ +++ /dev/null @@ -1,10 +0,0 @@ -import toml - -(pyproject_path, libev_includes,libev_libs) = sys.argv[1:] - -origin_toml = toml.load(pyproject_path) -origin_toml["tool.cassandra-driver"]["libev-includes] = [libev_includes] -origin_toml["tool.cassandra-driver"]["libev-libs] = [libev_libs] - -print toml.dump(origin_toml) - From ee369edc81bb7958d19e4dff72f982d3ba99dd62 Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Mon, 12 Jan 2026 16:51:42 -0600 Subject: [PATCH 18/19] Bump Python versions on Windows to Python 3.10 through 3.14. Also avoid building 32-bit Windows wheels. --- .github/workflows/build_wheels_win.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_wheels_win.yml b/.github/workflows/build_wheels_win.yml index e71ccd3..357076e 100644 --- a/.github/workflows/build_wheels_win.yml +++ b/.github/workflows/build_wheels_win.yml @@ -7,8 +7,8 @@ jobs: name: Build wheels on windows-2022 runs-on: windows-2022 env: - CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-* - CIBW_SKIP: "*musllinux*" + CIBW_BUILD: cp310-* cp311-* cp312-* cp313-* cp314-* + CIBW_SKIP: "*musllinux*" "*win32" CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" LIBEV_INCLUDES: C:\vcpkg\packages\libev_x64-windows\include\libev From f284c130ae920b2ca449419780e284bcc855b3ff Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Mon, 12 Jan 2026 16:53:33 -0600 Subject: [PATCH 19/19] Formatting fix --- .github/workflows/build_wheels_win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels_win.yml b/.github/workflows/build_wheels_win.yml index 357076e..b3ccb09 100644 --- a/.github/workflows/build_wheels_win.yml +++ b/.github/workflows/build_wheels_win.yml @@ -8,7 +8,7 @@ jobs: runs-on: windows-2022 env: CIBW_BUILD: cp310-* cp311-* cp312-* cp313-* cp314-* - CIBW_SKIP: "*musllinux*" "*win32" + CIBW_SKIP: "*musllinux* *win32" CIBW_TEST_REQUIRES: pytest mock pure-sasl eventlet CIBW_TEST_COMMAND: echo "wheel is installed" LIBEV_INCLUDES: C:\vcpkg\packages\libev_x64-windows\include\libev