Skip to content

Commit 5cf7ab8

Browse files
Merge pull request #897 from iangelak/891-ci-jobs-for-new-python
feat(ci): add Python 3.13 and 3.14 support to CI jobs
2 parents bf76ad9 + c237da5 commit 5cf7ab8

File tree

7 files changed

+45
-16
lines changed

7 files changed

+45
-16
lines changed

.github/workflows/test.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515
python-version:
1616
- "3.11"
1717
- "3.12"
18+
- "3.13"
19+
- "3.14"
1820
rust-version:
1921
# RHEL 9.4 has rustc 1.75
2022
- "1.75"
@@ -71,6 +73,8 @@ jobs:
7173
python-version:
7274
- "3.11"
7375
- "3.12"
76+
- "3.13"
77+
- "3.14"
7478
rust-version:
7579
# RHEL 9.4 has rustc 1.75
7680
- "1.75"
@@ -89,6 +93,10 @@ jobs:
8993
# only run macOS tests on latest stable Python version
9094
- os: macos-latest
9195
python-version: "3.11"
96+
- os: macos-latest
97+
python-version: "3.12"
98+
- os: macos-latest
99+
python-version: "3.13"
92100

93101
steps:
94102
- name: Get source

.mergify.yml

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,49 @@ pull_request_rules:
3333
- check-success=unit (3.11, 1.75, macos-latest)
3434
- check-success=unit (3.12, 1.75, ubuntu-latest)
3535
- check-success=unit (3.12, 1.75, macos-latest)
36+
- check-success=unit (3.13, 1.75, ubuntu-latest)
37+
- check-success=unit (3.13, 1.75, macos-latest)
38+
- check-success=unit (3.14, 1.75, ubuntu-latest)
39+
- check-success=unit (3.14, 1.75, macos-latest)
3640

3741
# MyPy type checking
3842
- check-success=mypy
3943

4044
# E2E test suites (consolidated from individual tests)
45+
# Python 3.11 - Ubuntu only (macOS excluded)
4146
- check-success=e2e (3.11, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
4247
- check-success=e2e (3.11, 1.75, ci_bootstrap_suite, ubuntu-latest)
4348
- check-success=e2e (3.11, 1.75, ci_build_suite, ubuntu-latest)
4449
- check-success=e2e (3.11, 1.75, ci_config_suite, ubuntu-latest)
4550
- check-success=e2e (3.11, 1.75, ci_specialized_suite, ubuntu-latest)
4651
- check-success=e2e (3.11, 1.75, ci_workflow_suite, ubuntu-latest)
47-
- check-success=e2e (3.12, 1.75, ci_bootstrap_parallel_suite, macos-latest)
52+
# Python 3.12 - Ubuntu only (macOS excluded)
4853
- check-success=e2e (3.12, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
49-
- check-success=e2e (3.12, 1.75, ci_bootstrap_suite, macos-latest)
5054
- check-success=e2e (3.12, 1.75, ci_bootstrap_suite, ubuntu-latest)
51-
- check-success=e2e (3.12, 1.75, ci_build_suite, macos-latest)
5255
- check-success=e2e (3.12, 1.75, ci_build_suite, ubuntu-latest)
53-
- check-success=e2e (3.12, 1.75, ci_config_suite, macos-latest)
5456
- check-success=e2e (3.12, 1.75, ci_config_suite, ubuntu-latest)
55-
- check-success=e2e (3.12, 1.75, ci_specialized_suite, macos-latest)
5657
- check-success=e2e (3.12, 1.75, ci_specialized_suite, ubuntu-latest)
57-
- check-success=e2e (3.12, 1.75, ci_workflow_suite, macos-latest)
5858
- check-success=e2e (3.12, 1.75, ci_workflow_suite, ubuntu-latest)
59+
# Python 3.13 - Ubuntu only (macOS excluded)
60+
- check-success=e2e (3.13, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
61+
- check-success=e2e (3.13, 1.75, ci_bootstrap_suite, ubuntu-latest)
62+
- check-success=e2e (3.13, 1.75, ci_build_suite, ubuntu-latest)
63+
- check-success=e2e (3.13, 1.75, ci_config_suite, ubuntu-latest)
64+
- check-success=e2e (3.13, 1.75, ci_specialized_suite, ubuntu-latest)
65+
- check-success=e2e (3.13, 1.75, ci_workflow_suite, ubuntu-latest)
66+
# Python 3.14 - Ubuntu + macOS (latest stable)
67+
- check-success=e2e (3.14, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
68+
- check-success=e2e (3.14, 1.75, ci_bootstrap_parallel_suite, macos-latest)
69+
- check-success=e2e (3.14, 1.75, ci_bootstrap_suite, ubuntu-latest)
70+
- check-success=e2e (3.14, 1.75, ci_bootstrap_suite, macos-latest)
71+
- check-success=e2e (3.14, 1.75, ci_build_suite, ubuntu-latest)
72+
- check-success=e2e (3.14, 1.75, ci_build_suite, macos-latest)
73+
- check-success=e2e (3.14, 1.75, ci_config_suite, ubuntu-latest)
74+
- check-success=e2e (3.14, 1.75, ci_config_suite, macos-latest)
75+
- check-success=e2e (3.14, 1.75, ci_specialized_suite, ubuntu-latest)
76+
- check-success=e2e (3.14, 1.75, ci_specialized_suite, macos-latest)
77+
- check-success=e2e (3.14, 1.75, ci_workflow_suite, ubuntu-latest)
78+
- check-success=e2e (3.14, 1.75, ci_workflow_suite, macos-latest)
5979

6080
# At least 1 reviewer from maintainers
6181
- and:

e2e/download_sequence/simplejson-build-order.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"type": "build-system",
44
"req": "flit_core<4,>=3.8",
55
"dist": "flit-core",
6-
"version": "3.9.0",
6+
"version": "3.10.1",
77
"why": [
88
[
99
"toplevel",
@@ -23,11 +23,11 @@
2323
[
2424
"build-system",
2525
"flit_core<4,>=3.8",
26-
"3.9.0"
26+
"3.10.1"
2727
]
2828
],
2929
"prebuilt": false,
30-
"source_url": "https://files.pythonhosted.org/packages/c4/e6/c1ac50fe3eebb38a155155711e6e864e254ce4b6e17fe2429b4c4d5b9e80/flit_core-3.9.0.tar.gz#sha256=72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba",
30+
"source_url": "https://files.pythonhosted.org/packages/d5/ae/09427bea9227a33ec834ed5461432752fd5d02b14f93dd68406c91684622/flit_core-3.10.1.tar.gz#sha256=66e5b87874a0d6e39691f0e22f09306736b633548670ad3c09ec9db03c5662f7",
3131
"source_url_type": "sdist"
3232
},
3333
{

e2e/test_download_sequence.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pass=true
2121

2222
# Check for output files
2323
EXPECTED_FILES="
24-
sdists-repo/downloads/flit_core-3.9.0.tar.gz
24+
sdists-repo/downloads/flit_core-3.10.1.tar.gz
2525
sdists-repo/downloads/setuptools-70.0.0.tar.gz
2626
sdists-repo/downloads/simplejson-3.19.2.tar.gz
2727
sdists-repo/downloads/wheel-0.43.0.tar.gz

e2e/test_override.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ fromager \
2323
--wheels-repo="$OUTDIR/wheels-repo" \
2424
--work-dir="$OUTDIR/work-dir" \
2525
--patches-dir "$SCRIPTDIR/flit_core_patches" \
26-
bootstrap 'flit_core==3.9.0'
26+
bootstrap 'flit_core==3.10.1'
2727

2828
find "$OUTDIR/wheels-repo/simple/" -name '*.whl'
2929

@@ -50,9 +50,9 @@ fi
5050

5151
# Check for output files
5252
EXPECTED_FILES="
53-
wheels-repo/downloads/flit_core-3.9.0-0-py3-none-any.whl
53+
wheels-repo/downloads/flit_core-3.10.1-0-py3-none-any.whl
5454
55-
sdists-repo/downloads/flit_core-3.9.0.tar.gz
55+
sdists-repo/downloads/flit_core-3.10.1.tar.gz
5656
"
5757

5858
for f in $EXPECTED_FILES; do

e2e/test_prebuilt_wheels_alt_server.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ mkdir -p "$INIT"
1212

1313
# What are we building?
1414
DIST="flit_core"
15-
VERSION="3.9.0"
15+
VERSION="3.10.1"
1616

1717
# Get the wheel we need from PyPI
1818
fromager \
@@ -57,7 +57,7 @@ fromager \
5757

5858
# Ensure we have both expected wheels
5959
EXPECTED_FILES="
60-
wheels-repo/prebuilt/flit_core-3.9.0-0-py3-none-any.whl
60+
wheels-repo/prebuilt/flit_core-3.10.1-0-py3-none-any.whl
6161
wheels-repo/downloads/wheel-0.43.0-0-py3-none-any.whl
6262
"
6363

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ classifiers = [
2424
"Programming Language :: Python :: 3.11",
2525
"Programming Language :: Python :: 3.12",
2626
"Programming Language :: Python :: 3.13",
27+
"Programming Language :: Python :: 3.14",
2728
"Programming Language :: Python :: Implementation :: CPython",
2829
"Topic :: Utilities",
2930
]
@@ -254,7 +255,7 @@ install-hooks = "pre-commit install"
254255
pkglint = [
255256
"python -m build",
256257
"twine check dist/*.tar.gz dist/*.whl",
257-
"check-python-versions --only pyproject.toml,.github/workflows/test.yml",
258+
"check-python-versions --only pyproject.toml,.github/workflows/test.yaml",
258259
]
259260

260261
[tool.hatch.envs.e2e]

0 commit comments

Comments
 (0)