Skip to content

Commit 7b2c70b

Browse files
authored
Merge pull request #375 from neutrinoceros/whl/enable-cp314-wheels
WHL: drop support for EOL CPythons 3.8 and 3.9 and add explicit support for CPython 3.14
2 parents 379a43b + 777948b commit 7b2c70b

3 files changed

Lines changed: 18 additions & 20 deletions

File tree

.github/workflows/cibuildwheel.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,29 +42,29 @@ jobs:
4242

4343
- name: Build just oldest and newest on PRs, all on tags
4444
shell: bash
45-
# - Always omit musl 3.8 b/c NumPy does not provide wheels for it
4645
# - Always omit musllinux_aarch64 because it's slow and niche
46+
# - Always skip free-threading wheels for now
4747
# - On PPs, omit musllinux for speed
48-
# - On PRs, run just oldest and newest Python versions (and omit 3.8 aarch64)
48+
# - On PRs, run just oldest and newest Python versions
4949
run: |
5050
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
51-
CIBW_SKIP="cp38-* cp39-* cp310-* cp311-* cp38-*_aarch64 *musllinux*"
51+
CIBW_SKIP="cp311-* cp312-* cp313-* cp314t-* *musllinux*"
5252
else
53-
CIBW_SKIP="cp38-* *musllinux_aarch64"
53+
CIBW_SKIP="cp314t-* *musllinux_aarch64"
5454
fi
5555
echo "CIBW_SKIP=$CIBW_SKIP" >> $GITHUB_ENV
5656
echo "Setting CIBW_SKIP=$CIBW_SKIP"
5757
5858
- name: "Building ${{ matrix.os }} (${{ matrix.arch }}) wheels"
59-
uses: pypa/cibuildwheel@v3.2.0
59+
uses: pypa/cibuildwheel@v3.2.1
6060
env:
6161
CIBW_SKIP: ${{ env.CIBW_SKIP }}
6262
CIBW_ARCHS: ${{ matrix.arch }}
6363
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
6464
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
65-
# Emulated testing is slow, so trust that the Python 3.12 test is good enough on aarch64
65+
# Emulated testing is slow, so trust that the Python 3.14 test is good enough on aarch64
6666
# (takes about 5 minutes per wheel to build, and 5 minutes to test)
67-
CIBW_TEST_SKIP: "cp39-*_aarch64 cp310-*_aarch64 cp311-*_aarch64"
67+
CIBW_TEST_SKIP: "cp3{10,11,12,13}-*_aarch64"
6868
CIBW_TEST_GROUPS: dev
6969
CIBW_TEST_COMMAND: >
7070
python -c "import cftime; print(f'cftime v{cftime.__version__}')" &&

.github/workflows/tests_conda.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
15+
python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14" ]
1616
os: [windows-latest, ubuntu-latest, macos-latest]
1717
platform: [x64, x32]
1818
experimental: [false]
@@ -36,7 +36,7 @@ jobs:
3636
numpy>1.13.3
3737
cython>=0.29.20
3838
pytest
39-
pytest-cov
39+
coverage
4040
- name: Install unstable dependencies
4141
if: matrix.experimental == true
4242
shell: bash -l {0}
@@ -57,4 +57,5 @@ jobs:
5757
- name: Run Tests
5858
shell: bash -l {0}
5959
run: |
60-
pytest -vv test
60+
coverage run -m pytest -vv test
61+
coverage report

pyproject.toml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,25 @@ classifiers = [
1515
'Operating System :: POSIX :: Linux',
1616
'Programming Language :: Python',
1717
'Programming Language :: Python :: 3',
18-
'Programming Language :: Python :: 3.8',
19-
'Programming Language :: Python :: 3.9',
2018
'Programming Language :: Python :: 3.10',
2119
'Programming Language :: Python :: 3.11',
2220
'Programming Language :: Python :: 3.12',
2321
'Programming Language :: Python :: 3.13',
22+
'Programming Language :: Python :: 3.14',
2423
'Topic :: Scientific/Engineering',
2524
]
2625
dependencies = [
27-
"numpy>1.13.3",
26+
"numpy>=1.21.2",
2827
]
29-
requires-python = ">=3.8"
28+
requires-python = ">=3.10"
3029

3130
[dependency-groups]
3231
dev = [
3332
"check-manifest",
34-
"coverage",
33+
"coverage>=7.10.0",
3534
"coveralls",
3635
"cython>=0.29.20",
3736
"pytest",
38-
"pytest-cov",
3937
"sphinx",
4038
"twine",
4139
]
@@ -44,8 +42,7 @@ dev = [
4442
requires = [
4543
"setuptools>=77.0.1",
4644
"cython>=0.29.20",
47-
"oldest-supported-numpy ; python_version < '3.9'",
48-
"numpy>=2.0.0,<3 ; python_version >= '3.9'",
45+
"numpy>=2.0.0,<3",
4946
]
5047
build-backend = "setuptools.build_meta"
5148

@@ -58,15 +55,14 @@ addopts = [
5855
"-ra",
5956
"-v",
6057
"--doctest-modules",
61-
"--cov=cftime",
62-
"--cov-report=term-missing",
6358
]
6459
doctest_optionflags = [
6560
"NORMALIZE_WHITESPACE",
6661
"ELLIPSIS",
6762
]
6863

6964
[tool.coverage.run]
65+
source = ["src"]
7066
relative_files = true
7167
branch = true
7268
plugins = [
@@ -84,6 +80,7 @@ omit = [
8480
]
8581

8682
[tool.coverage.report]
83+
show_missing = true
8784
exclude_lines = [
8885
"pragma: no cover",
8986
"def __repr__",

0 commit comments

Comments
 (0)