Skip to content

chore: bump version to 9.11.2 (#4909) #7265

chore: bump version to 9.11.2 (#4909)

chore: bump version to 9.11.2 (#4909) #7265

Workflow file for this run

name: Python
# This file builds and tests Python binary wheels across major platforms. The
# wheels that are produced are used for PyPi releases. The test step uses a
# fresh job and installs the wheel the ensure it works in isolation. The is also
# a job which produces the source distribution and ensures that can be built to.
on:
push:
branches:
- master
- 'releases/**'
- rlos2023/test
pull_request:
branches:
- '*'
- rlos2023/test
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.sha }}
cancel-in-progress: true
jobs:
# Linux x64 builds using cibuildwheel (Python 3.10-3.14)
cibuildwheel-build-linux:
name: cibuildwheel.${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
fail-fast: false
steps:
- uses: actions/checkout@v6
with:
submodules: false
fetch-depth: 0
- name: Init submodules with retry
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
for attempt in 1 2 3 4 5; do
if git submodule update --init --recursive; then
echo "Submodule init succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "Submodule init failed after 5 attempts"
exit 1
- name: Build wheels
uses: pypa/cibuildwheel@v3.3.0
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}
path: ./wheelhouse/*.whl
retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }}
# Linux ARM64 builds using cibuildwheel (Python 3.10-3.14)
cibuildwheel-build-linux-aarch64:
name: cibuildwheel.ubuntu-24.04-arm
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
with:
submodules: false
fetch-depth: 0
- name: Init submodules with retry
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
for attempt in 1 2 3 4 5; do
if git submodule update --init --recursive; then
echo "Submodule init succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "Submodule init failed after 5 attempts"
exit 1
- name: Build wheels
uses: pypa/cibuildwheel@v3.3.0
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-ubuntu-24.04-arm
path: ./wheelhouse/*.whl
retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }}
# macOS builds using cibuildwheel (Python 3.10-3.14)
cibuildwheel-build-macos:
name: cibuildwheel.${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-14, macos-15-intel]
fail-fast: false
steps:
- uses: actions/checkout@v6
with:
submodules: false
fetch-depth: 0
- name: Init submodules with retry
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
for attempt in 1 2 3 4 5; do
if git submodule update --init --recursive; then
echo "Submodule init succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "Submodule init failed after 5 attempts"
exit 1
- name: Build wheels
uses: pypa/cibuildwheel@v3.3.0
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}
path: ./wheelhouse/*.whl
retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }}
# Windows builds using cibuildwheel (Python 3.10-3.14)
cibuildwheel-build-windows:
name: cibuildwheel.windows-2022
runs-on: windows-2022
steps:
- uses: actions/checkout@v6
with:
submodules: false
fetch-depth: 0
- name: Init submodules with retry
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
for attempt in 1 2 3 4 5; do
if git submodule update --init --recursive; then
echo "Submodule init succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "Submodule init failed after 5 attempts"
exit 1
- name: Setup MSVC Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Install sccache
run: choco install sccache -y
- name: Build wheels
uses: pypa/cibuildwheel@v3.3.0
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-windows-2022
path: ./wheelhouse/*.whl
retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }}
linux-python-sdist-bundle:
name: ubuntu-latest.amd64.py3.10.sdist-bundle
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: false
- name: Init submodules with retry
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
for attempt in 1 2 3 4 5; do
if git submodule update --init --recursive; then
echo "Submodule init succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "Submodule init failed after 5 attempts"
exit 1
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: 'x64'
- name: Install dependencies
shell: bash
run: python setup.py sdist
- name: Upload built wheel
uses: actions/upload-artifact@v4
with:
name: python_source_distribution
path: dist/*.tar.gz
if-no-files-found: error
retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }}
linux-python-sdist-build-test:
name: ubuntu-latest.amd64.py3.10.sdist-build-test
needs: linux-python-sdist-bundle
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v5
- uses: actions/download-artifact@v4
with:
name: python_source_distribution
path: dist/
- name: Install dependencies
shell: bash
run: |
sudo apt update
sudo apt install libboost-test-dev zlib1g-dev cmake ninja-build g++
pip install pybind11
- name: Install source dist
shell: bash
run: pip install dist/*.tar.gz
- uses: actions/checkout@v6
with:
submodules: false
- name: Init submodules with retry
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
for attempt in 1 2 3 4 5; do
if git submodule update --init --recursive; then
echo "Submodule init succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "Submodule init failed after 5 attempts"
exit 1
- name: Install dependencies
shell: bash
run: |
pip install -r requirements.txt
pip install pytest vw-executor
- name: Run unit tests
shell: bash
run: |
python -m pytest ./python/tests/ --ignore=python/tests/e2e_v2