From 5d698c5e99825523e9cd20e5b8454068e8fb8f8e Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Fri, 25 Jul 2025 07:31:33 -0700 Subject: [PATCH 1/2] Test on 3.14 --- .github/workflows/test-libmaxminddb.yml | 6 +++--- .github/workflows/test.yml | 6 +++--- HISTORY.rst | 1 + pyproject.toml | 7 +++++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test-libmaxminddb.yml b/.github/workflows/test-libmaxminddb.yml index a2210bb..8d44203 100644 --- a/.github/workflows/test-libmaxminddb.yml +++ b/.github/workflows/test-libmaxminddb.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - env: [3.9, "3.10", 3.11, 3.12, 3.13] + env: [3.9, "3.10", 3.11, 3.12, 3.13, 3.14] # We don't test on Windows currently due to issues # build libmaxminddb there. os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest] @@ -35,10 +35,10 @@ jobs: uses: astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc # 6.4.3 - name: Install tox - run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv --with tox-gh + run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv --with tox-gh - name: Install Python - if: matrix.env != '3.13' + if: matrix.env != '3.14' run: uv python install --python-preference only-managed ${{ matrix.env }} - name: Install libmaxminddb diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1b6f070..70953ee 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - env: [3.9, "3.10", 3.11, 3.12, 3.13] + env: [3.9, "3.10", 3.11, 3.12, 3.13, 3.14] os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest] steps: - uses: actions/checkout@v4 @@ -25,9 +25,9 @@ jobs: - name: Install the latest version of uv uses: astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc # 6.4.3 - name: Install tox - run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv --with tox-gh + run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv --with tox-gh - name: Install Python - if: matrix.env != '3.13' + if: matrix.env != '3.14' run: uv python install --python-preference only-managed ${{ matrix.env }} - name: Setup test suite run: tox run -vv --notest --skip-missing-interpreters false diff --git a/HISTORY.rst b/HISTORY.rst index cff1e0e..e77bc7b 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -6,6 +6,7 @@ History 2.8.0 ++++++++++++++++++ +* Python 3.14 is now officially supported, including binary wheels. * We have updated the platforms that we build binary wheels for. In particular, we now build wheels for iOS, Windows Arm, and Pyodide, and we have dropped 686 (32 bit), ppc64le, and s390x builds on Linux. diff --git a/pyproject.toml b/pyproject.toml index 365c0f2..4e5a21e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Internet", "Topic :: Internet :: Proxy Servers", ] @@ -98,6 +99,7 @@ env_list = [ "3.11", "3.12", "3.13", + "3.14", "lint", ] skip_missing_interpreters = false @@ -112,7 +114,7 @@ commands = [ [tool.tox.env.lint] description = "Code linting" -python = "3.13" +python = "3.14" dependency_groups = [ "dev", "lint", @@ -124,7 +126,8 @@ commands = [ ] [tool.tox.gh.python] -"3.13" = ["3.13", "lint"] +"3.14" = ["3.14", "lint"] +"3.13" = ["3.13"] "3.12" = ["3.12"] "3.11" = ["3.11"] "3.10" = ["3.10"] From 7d59cb10d9166ccda6d85f15efc00fd91f36ed08 Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Fri, 25 Jul 2025 07:37:18 -0700 Subject: [PATCH 2/2] Build Android wheels --- .github/workflows/release.yml | 21 ++++++++++++++++++++- HISTORY.rst | 4 ++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 127ea1b..4eba0bf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,6 +30,12 @@ jobs: include: - archs: auto platform: auto + - os: android-intel + runs-on: ubuntu-latest + platform: android + - os: android-arm + runs-on: macos-latest + platform: android - os: ios runs-on: macos-latest platform: ios @@ -58,12 +64,25 @@ jobs: submodules: true persist-credentials: false + # GitHub Actions can't currently run the Android emulator on macOS. + - name: Skip Android tests on macOS + if: matrix.os == 'android-arm' + run: echo "CIBW_TEST_COMMAND=" >> "$GITHUB_ENV" + + # https://github.blog/changelog/2024-04-02-github-actions-hardware-accelerated-android-virtualization-now-available/ + - name: Enable KVM for Android emulator + if: matrix.os == 'android-intel' + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Build wheels uses: pypa/cibuildwheel@ffd835cef18fa11522f608fc0fa973b89f5ddc87 # 3.1.0 env: CIBW_ENABLE: pypy pypy-eol CIBW_PLATFORM: ${{ matrix.platform }} - CIBW_ARCHS: ${{ matrix.archs }} + CIBW_ARCHS: ${{ matrix.archs || 'auto' }} MAXMINDDB_REQUIRE_EXTENSION: 1 - uses: actions/upload-artifact@v4 diff --git a/HISTORY.rst b/HISTORY.rst index e77bc7b..6a7ec64 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -8,8 +8,8 @@ History * Python 3.14 is now officially supported, including binary wheels. * We have updated the platforms that we build binary wheels for. In particular, - we now build wheels for iOS, Windows Arm, and Pyodide, and we have dropped - 686 (32 bit), ppc64le, and s390x builds on Linux. + we now build wheels for Android, iOS, Windows Arm, and Pyodide, and we have + dropped 686 (32 bit), ppc64le, and s390x builds on Linux. 2.7.0 (2025-05-05) ++++++++++++++++++