Skip to content

Commit 8afdc56

Browse files
authored
Merge pull request #222 from maxmind/greg/eng-2556
Add Android wheels and test on 3.14
2 parents b64f4ef + 7d59cb1 commit 8afdc56

File tree

5 files changed

+34
-11
lines changed

5 files changed

+34
-11
lines changed

.github/workflows/release.yml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ jobs:
3030
include:
3131
- archs: auto
3232
platform: auto
33+
- os: android-intel
34+
runs-on: ubuntu-latest
35+
platform: android
36+
- os: android-arm
37+
runs-on: macos-latest
38+
platform: android
3339
- os: ios
3440
runs-on: macos-latest
3541
platform: ios
@@ -58,12 +64,25 @@ jobs:
5864
submodules: true
5965
persist-credentials: false
6066

67+
# GitHub Actions can't currently run the Android emulator on macOS.
68+
- name: Skip Android tests on macOS
69+
if: matrix.os == 'android-arm'
70+
run: echo "CIBW_TEST_COMMAND=" >> "$GITHUB_ENV"
71+
72+
# https://github.blog/changelog/2024-04-02-github-actions-hardware-accelerated-android-virtualization-now-available/
73+
- name: Enable KVM for Android emulator
74+
if: matrix.os == 'android-intel'
75+
run: |
76+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
77+
sudo udevadm control --reload-rules
78+
sudo udevadm trigger --name-match=kvm
79+
6180
- name: Build wheels
6281
uses: pypa/cibuildwheel@e6de07ed3921b51089aae6981989889cf1eddd0c # 3.1.1
6382
env:
6483
CIBW_ENABLE: pypy pypy-eol
6584
CIBW_PLATFORM: ${{ matrix.platform }}
66-
CIBW_ARCHS: ${{ matrix.archs }}
85+
CIBW_ARCHS: ${{ matrix.archs || 'auto' }}
6786
MAXMINDDB_REQUIRE_EXTENSION: 1
6887

6988
- uses: actions/upload-artifact@v4

.github/workflows/test-libmaxminddb.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
strategy:
1515
matrix:
16-
env: [3.9, "3.10", 3.11, 3.12, 3.13]
16+
env: [3.9, "3.10", 3.11, 3.12, 3.13, 3.14]
1717
# We don't test on Windows currently due to issues
1818
# build libmaxminddb there.
1919
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
@@ -35,10 +35,10 @@ jobs:
3535
uses: astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc # 6.4.3
3636

3737
- name: Install tox
38-
run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv --with tox-gh
38+
run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv --with tox-gh
3939

4040
- name: Install Python
41-
if: matrix.env != '3.13'
41+
if: matrix.env != '3.14'
4242
run: uv python install --python-preference only-managed ${{ matrix.env }}
4343

4444
- name: Install libmaxminddb

.github/workflows/test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
strategy:
1616
fail-fast: false
1717
matrix:
18-
env: [3.9, "3.10", 3.11, 3.12, 3.13]
18+
env: [3.9, "3.10", 3.11, 3.12, 3.13, 3.14]
1919
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
2020
steps:
2121
- uses: actions/checkout@v4
@@ -25,9 +25,9 @@ jobs:
2525
- name: Install the latest version of uv
2626
uses: astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc # 6.4.3
2727
- name: Install tox
28-
run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv --with tox-gh
28+
run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv --with tox-gh
2929
- name: Install Python
30-
if: matrix.env != '3.13'
30+
if: matrix.env != '3.14'
3131
run: uv python install --python-preference only-managed ${{ matrix.env }}
3232
- name: Setup test suite
3333
run: tox run -vv --notest --skip-missing-interpreters false

HISTORY.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ History
66
2.8.0
77
++++++++++++++++++
88

9+
* Python 3.14 is now officially supported, including binary wheels.
910
* We have updated the platforms that we build binary wheels for. In particular,
10-
we now build wheels for iOS, Windows Arm, and Pyodide, and we have dropped
11-
686 (32 bit), ppc64le, and s390x builds on Linux.
11+
we now build wheels for Android, iOS, Windows Arm, and Pyodide, and we have
12+
dropped 686 (32 bit), ppc64le, and s390x builds on Linux.
1213

1314
2.7.0 (2025-05-05)
1415
++++++++++++++++++

pyproject.toml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ classifiers = [
2020
"Programming Language :: Python :: 3.11",
2121
"Programming Language :: Python :: 3.12",
2222
"Programming Language :: Python :: 3.13",
23+
"Programming Language :: Python :: 3.14",
2324
"Topic :: Internet",
2425
"Topic :: Internet :: Proxy Servers",
2526
]
@@ -98,6 +99,7 @@ env_list = [
9899
"3.11",
99100
"3.12",
100101
"3.13",
102+
"3.14",
101103
"lint",
102104
]
103105
skip_missing_interpreters = false
@@ -112,7 +114,7 @@ commands = [
112114

113115
[tool.tox.env.lint]
114116
description = "Code linting"
115-
python = "3.13"
117+
python = "3.14"
116118
dependency_groups = [
117119
"dev",
118120
"lint",
@@ -124,7 +126,8 @@ commands = [
124126
]
125127

126128
[tool.tox.gh.python]
127-
"3.13" = ["3.13", "lint"]
129+
"3.14" = ["3.14", "lint"]
130+
"3.13" = ["3.13"]
128131
"3.12" = ["3.12"]
129132
"3.11" = ["3.11"]
130133
"3.10" = ["3.10"]

0 commit comments

Comments
 (0)