diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index 8a5b730..4d4ddfa 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: cp310-* cp311-* cp312-* cp313-* cp314-* 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 -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall' + CIBW_BUILD_VERBOSITY: 3 steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/build_wheels_mac.yml b/.github/workflows/build_wheels_mac.yml index 2d18dac..be842eb 100644 --- a/.github/workflows/build_wheels_mac.yml +++ b/.github/workflows/build_wheels_mac.yml @@ -8,19 +8,20 @@ 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 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" diff --git a/.github/workflows/build_wheels_win.yml b/.github/workflows/build_wheels_win.yml index d0af8d0..b3ccb09 100644 --- a/.github/workflows/build_wheels_win.yml +++ b/.github/workflows/build_wheels_win.yml @@ -7,18 +7,22 @@ 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" - 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/.gitmodules b/.gitmodules index 1511a22..cf119e3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,4 @@ url = https://github.com/matthew-brett/multibuild.git [submodule "python-driver"] path = python-driver - url = https://github.com/datastax/python-driver.git + url = https://github.com/absurdfarce/python-driver.git diff --git a/python-driver b/python-driver index 27a1770..475df4b 160000 --- a/python-driver +++ b/python-driver @@ -1 +1 @@ -Subproject commit 27a1770933e490ff4282a0f6b098de472576ff14 +Subproject commit 475df4b3347266237cf8ccc974ae27f8c8bf0348 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"))