Skip to content

Commit d79dbe0

Browse files
committed
cleanup: drop Python 3.11 support
Make Python 3.12 the minimum supported version. Python 3.11 is in security-fix only mode upstream, and downstream (RHEL) has stopped using it. This reduces the CI test matrix and enables use of Python 3.12 features. - Remove Python 3.11 classifier from pyproject.toml and e2e plugins - Bump requires-python from >=3.11 to >=3.12 - Bump ruff target-version from py311 to py312 - Remove 3.11 from CI test matrix (unit + e2e workflows) - Update check, publish, and docs workflows to use Python 3.12 - Remove all 3.11 check-success entries from Mergify config - Update example Containerfile to default to Python 3.12 Closes: #948 Made-with: Cursor
1 parent cc3515d commit d79dbe0

10 files changed

Lines changed: 13 additions & 30 deletions

File tree

.github/workflows/check.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Set up Python
1919
uses: actions/setup-python@v6
2020
with:
21-
python-version: "3.11" # minimum supported lang version
21+
python-version: "3.12" # minimum supported lang version
2222

2323
- name: Install dependencies
2424
run: python -m pip install hatch 'click!=8.3.0'
@@ -39,7 +39,7 @@ jobs:
3939
- name: Set up Python
4040
uses: actions/setup-python@v6
4141
with:
42-
python-version: "3.11" # minimum supported lang version
42+
python-version: "3.12" # minimum supported lang version
4343

4444
- name: Install dependencies
4545
run: python -m pip install hatch 'click!=8.3.0'
@@ -60,7 +60,7 @@ jobs:
6060
- name: Set up Python
6161
uses: actions/setup-python@v6
6262
with:
63-
python-version: "3.11" # minimum supported lang version
63+
python-version: "3.12" # minimum supported lang version
6464

6565
- name: Install dependencies
6666
run: python -m pip install hatch 'click!=8.3.0'
@@ -81,7 +81,7 @@ jobs:
8181
- name: Set up Python
8282
uses: actions/setup-python@v6
8383
with:
84-
python-version: "3.11" # minimum supported lang version
84+
python-version: "3.12" # minimum supported lang version
8585

8686
- name: Install dependencies
8787
run: python -m pip install hatch 'click!=8.3.0'
@@ -118,7 +118,7 @@ jobs:
118118
- name: Set up Python
119119
uses: actions/setup-python@v6
120120
with:
121-
python-version: "3.11" # minimum supported lang version
121+
python-version: "3.12" # minimum supported lang version
122122

123123
- name: Install dependencies
124124
run: python -m pip install hatch 'click!=8.3.0'

.github/workflows/python-publish.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Set up Python
2626
uses: actions/setup-python@v6
2727
with:
28-
python-version: '3.11'
28+
python-version: '3.12'
2929
- name: Install dependencies
3030
run: |
3131
python -m pip install --upgrade pip

.github/workflows/test.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
python-version:
16-
- "3.11"
1716
- "3.12"
1817
- "3.13"
1918
- "3.14"
@@ -71,7 +70,6 @@ jobs:
7170
fail-fast: false
7271
matrix:
7372
python-version:
74-
- "3.11"
7573
- "3.12"
7674
- "3.13"
7775
- "3.14"
@@ -91,8 +89,6 @@ jobs:
9189
exclude:
9290
# macOS tests are slower and congested
9391
# only run macOS tests on latest stable Python version
94-
- os: macos-latest
95-
python-version: "3.11"
9692
- os: macos-latest
9793
python-version: "3.12"
9894
- os: macos-latest

.mergify.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ pull_request_rules:
2929
- "-draft"
3030

3131
# Unit tests
32-
- check-success=unit (3.11, 1.75, ubuntu-latest)
33-
- check-success=unit (3.11, 1.75, macos-latest)
3432
- check-success=unit (3.12, 1.75, ubuntu-latest)
3533
- check-success=unit (3.12, 1.75, macos-latest)
3634
- check-success=unit (3.13, 1.75, ubuntu-latest)
@@ -42,13 +40,6 @@ pull_request_rules:
4240
- check-success=mypy
4341

4442
# E2E test suites (consolidated from individual tests)
45-
# Python 3.11 - Ubuntu only (macOS excluded)
46-
- check-success=e2e (3.11, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
47-
- check-success=e2e (3.11, 1.75, ci_bootstrap_suite, ubuntu-latest)
48-
- check-success=e2e (3.11, 1.75, ci_build_suite, ubuntu-latest)
49-
- check-success=e2e (3.11, 1.75, ci_config_suite, ubuntu-latest)
50-
- check-success=e2e (3.11, 1.75, ci_specialized_suite, ubuntu-latest)
51-
- check-success=e2e (3.11, 1.75, ci_workflow_suite, ubuntu-latest)
5243
# Python 3.12 - Ubuntu only (macOS excluded)
5344
- check-success=e2e (3.12, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
5445
- check-success=e2e (3.12, 1.75, ci_bootstrap_suite, ubuntu-latest)

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2
33
build:
44
os: ubuntu-22.04
55
tools:
6-
python: "3.11"
6+
python: "3.12"
77

88
sphinx:
99
configuration: docs/conf.py

docs/example/Containerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ENV APP_ROOT=/opt/app-root \
1818
PATH=/opt/app-root/src/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
1919

2020
# Python, pip, and virtual env settings
21-
ARG PYTHON_VERSION=3.11
21+
ARG PYTHON_VERSION=3.12
2222
ENV PYTHON_VERSION=${PYTHON_VERSION} \
2323
PYTHON=python${PYTHON_VERSION} \
2424
PIP_NO_CACHE_DIR=off \

e2e/flit_core_override/pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@ classifiers = [
1616
"Programming Language :: Python",
1717
"Programming Language :: Python :: 3",
1818
"Programming Language :: Python :: 3 :: Only",
19-
"Programming Language :: Python :: 3.11",
2019
"Programming Language :: Python :: 3.12",
2120
"Programming Language :: Python :: Implementation :: CPython",
2221
"Topic :: Utilities",
2322
]
2423

25-
requires-python = ">=3.11"
24+
requires-python = ">=3.12"
2625

2726
dependencies = []
2827

e2e/fromager_hooks/pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@ classifiers = [
1616
"Programming Language :: Python",
1717
"Programming Language :: Python :: 3",
1818
"Programming Language :: Python :: 3 :: Only",
19-
"Programming Language :: Python :: 3.11",
2019
"Programming Language :: Python :: 3.12",
2120
"Programming Language :: Python :: Implementation :: CPython",
2221
"Topic :: Utilities",
2322
]
2423

25-
requires-python = ">=3.11"
24+
requires-python = ">=3.12"
2625

2726
dependencies = []
2827

e2e/stevedore_override/pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@ classifiers = [
1616
"Programming Language :: Python",
1717
"Programming Language :: Python :: 3",
1818
"Programming Language :: Python :: 3 :: Only",
19-
"Programming Language :: Python :: 3.11",
2019
"Programming Language :: Python :: 3.12",
2120
"Programming Language :: Python :: Implementation :: CPython",
2221
"Topic :: Utilities",
2322
]
2423

25-
requires-python = ">=3.11"
24+
requires-python = ">=3.12"
2625

2726
dependencies = []
2827

pyproject.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@ classifiers = [
2121
"Programming Language :: Python",
2222
"Programming Language :: Python :: 3",
2323
"Programming Language :: Python :: 3 :: Only",
24-
"Programming Language :: Python :: 3.11",
2524
"Programming Language :: Python :: 3.12",
2625
"Programming Language :: Python :: 3.13",
2726
"Programming Language :: Python :: 3.14",
2827
"Programming Language :: Python :: Implementation :: CPython",
2928
"Topic :: Utilities",
3029
]
3130

32-
requires-python = ">=3.11"
31+
requires-python = ">=3.12"
3332

3433
dependencies = [
3534
"click>=8.1.7",
@@ -154,7 +153,7 @@ source = "vcs"
154153
packages = ["src/fromager"]
155154

156155
[tool.ruff]
157-
target-version = "py311"
156+
target-version = "py312"
158157
# same as black's default line length
159158
line-length = 88
160159
exclude = [

0 commit comments

Comments
 (0)