diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index 18f821be7..af7841dfd 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -14,7 +14,7 @@ global_job_config: - checkout - mkdir artifacts blocks: - - name: "Wheels: OSX x64 - Python 3.7-3.12" + - name: "Wheels: OSX x64 - Python 3.8-3.12" run: when: "tag =~ '.*'" dependencies: [] @@ -34,7 +34,7 @@ blocks: - PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse 2.16.2 - tar -czf wheelhouse-macOS-${ARCH}.tgz wheelhouse - artifact push workflow wheelhouse-macOS-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/ - - name: "Wheels: OSX x64 - Python 3.13" + - name: "Wheels: OSX x64 - Python 3.13-3.14" run: when: "tag =~ '.*'" dependencies: [] @@ -54,10 +54,10 @@ blocks: jobs: - name: Build commands: - - sem-version python 3.11 + - sem-version python 3.13 - PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse - - tar -czf wheelhouse-macOS-${ARCH}-py313.tgz wheelhouse - - artifact push workflow wheelhouse-macOS-${ARCH}-py313.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313.tgz/ + - tar -czf wheelhouse-macOS-${ARCH}-py313-plus.tgz wheelhouse + - artifact push workflow wheelhouse-macOS-${ARCH}-py313-plus.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313-plus.tgz/ - name: "Wheels: OSX arm64 - Python 3.8-3.12" run: when: "tag =~ '.*'" @@ -80,7 +80,7 @@ blocks: - PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse 2.16.2 - tar -czf wheelhouse-macOS-${ARCH}.tgz wheelhouse - artifact push workflow wheelhouse-macOS-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/ - - name: "Wheels: OSX arm64 - Python 3.13" + - name: "Wheels: OSX arm64 - Python 3.13-3.14" run: when: "tag =~ '.*'" dependencies: [] @@ -102,10 +102,10 @@ blocks: jobs: - name: Build commands: - - sem-version python 3.11 + - sem-version python 3.13 - PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse - - tar -czf wheelhouse-macOS-${ARCH}-py313.tgz wheelhouse - - artifact push workflow wheelhouse-macOS-${ARCH}-py313.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313.tgz/ + - tar -czf wheelhouse-macOS-${ARCH}-py313-plus.tgz wheelhouse + - artifact push workflow wheelhouse-macOS-${ARCH}-py313-plus.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313-plus.tgz/ - name: "Wheels: Linux arm64" run: when: "tag =~ '.*'" @@ -122,6 +122,7 @@ blocks: jobs: - name: Build commands: + - sem-version python 3.13 - ./tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse - tar -czf wheelhouse-linux-${ARCH}.tgz wheelhouse - artifact push workflow wheelhouse-linux-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/ @@ -141,6 +142,7 @@ blocks: jobs: - name: Build commands: + - sem-version python 3.11 - ./tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse - tar -czf wheelhouse-linux-${ARCH}.tgz wheelhouse - artifact push workflow wheelhouse-linux-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/ @@ -170,6 +172,8 @@ blocks: - name: MSYSTEM value: UCRT64 commands: + - pyenv install 3.11.9 + - pyenv global 3.11.9 - bash tools/mingw-w64/semaphore_commands.sh - bash tools/wheels/install-librdkafka.sh $env:LIBRDKAFKA_VERSION.TrimStart("v") dest - tools/wheels/build-wheels.bat x64 win_amd64 dest wheelhouse @@ -379,10 +383,10 @@ blocks: run: when: "tag =~ '.*'" dependencies: - - "Wheels: OSX x64 - Python 3.7-3.12" - - "Wheels: OSX x64 - Python 3.13" + - "Wheels: OSX x64 - Python 3.8-3.12" + - "Wheels: OSX x64 - Python 3.13-3.14" - "Wheels: OSX arm64 - Python 3.8-3.12" - - "Wheels: OSX arm64 - Python 3.13" + - "Wheels: OSX arm64 - Python 3.13-3.14" - "Wheels: Linux arm64" - "Wheels: Linux x64" - "Wheels: Windows" diff --git a/DEVELOPER.md b/DEVELOPER.md index d7dcb734e..201816c73 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -6,7 +6,7 @@ This document provides information useful to developers working on confluent-kaf ### Prerequisites -- Python 3.7 or higher +- Python 3.8 or higher - Git - librdkafka (for Kafka functionality) diff --git a/pyproject.toml b/pyproject.toml index c804ba0b4..50b28ff9f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ classifiers = [ "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules"] readme = "README.md" -requires-python = ">=3.7" +requires-python = ">=3.8" dynamic = ["dependencies", "optional-dependencies"] [[project.authors]] diff --git a/service.yml b/service.yml index b792fb913..bf4ed9b86 100644 --- a/service.yml +++ b/service.yml @@ -1,6 +1,6 @@ name: confluent-kafka-python lang: python -lang_version: 3.7 +lang_version: 3.8 git: enable: true github: diff --git a/tools/cibuildwheel-build.sh b/tools/cibuildwheel-build.sh index 2f342f656..8fdfa4743 100755 --- a/tools/cibuildwheel-build.sh +++ b/tools/cibuildwheel-build.sh @@ -52,7 +52,7 @@ case "$(uname -s)" in esac if ! which cibuildwheel 2>/dev/null ; then - pip install cibuildwheel==0.4.1 + pip install -r tools/requirements-manylinux.txt fi cibuildwheel $_CIBW_ARGS --output-dir "$OUT_DIR" diff --git a/tools/mingw-w64/semaphore_commands.sh b/tools/mingw-w64/semaphore_commands.sh index c6ecd4957..0ea88465b 100644 --- a/tools/mingw-w64/semaphore_commands.sh +++ b/tools/mingw-w64/semaphore_commands.sh @@ -8,4 +8,4 @@ export MAKE=mingw32-make # so that Autotools can find it cmd /c mklink /D C:\Python38\python3.exe C:\Python38\python.exe -python -m pip install cibuildwheel==2.21.3 +python -m pip install cibuildwheel==3.2.1 diff --git a/tools/mingw-w64/setup-msys2.ps1 b/tools/mingw-w64/setup-msys2.ps1 index cf7285041..b6022807f 100644 --- a/tools/mingw-w64/setup-msys2.ps1 +++ b/tools/mingw-w64/setup-msys2.ps1 @@ -1,7 +1,7 @@ # Install (if necessary) and set up msys2. -$url="https://github.com/msys2/msys2-installer/releases/download/2022-10-28/msys2-base-x86_64-20221028.sfx.exe" +$url="https://github.com/msys2/msys2-installer/releases/download/2025-08-30/msys2-base-x86_64-20250830.sfx.exe" $sha256="e365b79b4b30b6f4baf34bd93f3d2a41c0a92801c7a96d79cddbfca1090a0554" diff --git a/tools/requirements-manylinux.txt b/tools/requirements-manylinux.txt index 6cd41e1b3..eaea2a84f 100644 --- a/tools/requirements-manylinux.txt +++ b/tools/requirements-manylinux.txt @@ -1,2 +1,2 @@ -cibuildwheel +cibuildwheel==3.2.1 wheel diff --git a/tools/wheels/build-wheels.bat b/tools/wheels/build-wheels.bat index 0fcfaa2a9..496813d46 100644 --- a/tools/wheels/build-wheels.bat +++ b/tools/wheels/build-wheels.bat @@ -13,7 +13,7 @@ set WHEELHOUSE=%4 if [%WHEELHOUSE%]==[] goto usage echo on -set CIBW_BUILD=cp37-%BW_ARCH% cp38-%BW_ARCH% cp39-%BW_ARCH% cp310-%BW_ARCH% cp311-%BW_ARCH% cp312-%BW_ARCH% cp313-%BW_ARCH% +set CIBW_BUILD=cp38-%BW_ARCH% cp39-%BW_ARCH% cp310-%BW_ARCH% cp311-%BW_ARCH% cp312-%BW_ARCH% cp313-%BW_ARCH% cp314-%BW_ARCH% set CIBW_BEFORE_BUILD=python -m pip install delvewheel==1.1.4 set CIBW_TEST_REQUIRES=pytest set CIBW_TEST_COMMAND=pytest {project}\tests\test_error.py diff --git a/tools/wheels/build-wheels.sh b/tools/wheels/build-wheels.sh index bf6e0e21f..d836f18e8 100755 --- a/tools/wheels/build-wheels.sh +++ b/tools/wheels/build-wheels.sh @@ -16,7 +16,7 @@ export CIBW_MANYLINUX_AARCH64_IMAGE="manylinux_2_28" librdkafka_version=$1 wheeldir=$2 -cibuildwheel_version=${3:-"2.21.3"} +cibuildwheel_version=${3:-"3.2.1"} if [[ -z $wheeldir ]]; then echo "Usage: $0 " diff --git a/tools/wheels/install-macos-python-required-by-cibuildwheel.py b/tools/wheels/install-macos-python-required-by-cibuildwheel.py index c5d160593..d8fb6ae1b 100644 --- a/tools/wheels/install-macos-python-required-by-cibuildwheel.py +++ b/tools/wheels/install-macos-python-required-by-cibuildwheel.py @@ -2,7 +2,7 @@ # # # Get python versions required for cibuildwheel from their config and -# install them. This implementation is based on cibuildwheel 2.12.0 +# install them. This implementation is based on cibuildwheel 3.2.1 # version. Might need tweak if something changes in cibuildwheel. # # This was added as there is a permission issue when cibuildwheel diff --git a/tools/windows-build.bat b/tools/windows-build.bat index 497c99473..eb5075634 100644 --- a/tools/windows-build.bat +++ b/tools/windows-build.bat @@ -10,8 +10,8 @@ set rem Download and install librdkafka from NuGet. call tools\windows-install-librdkafka.bat %LIBRDKAFKA_NUGET_VERSION% dest || exit /b 1 -pip install -r requirements\requirements-tests-install.txt -pip install cibuildwheel==0.12.0 || exit /b 1 +pip install -r requirements\requirements-tests-install.txt || exit /b 1 +pip install cibuildwheel==3.2.1 || exit /b 1 rem Build wheels (without tests) cibuildwheel --platform windows --output-dir wheelhouse || exit /b 1