Skip to content

Commit 5b096c0

Browse files
Merge pull request #963 from python-wheel-build/cleanup/drop-python-3.11-support
chore: drop Python 3.11 support
2 parents cc3515d + 365a96f commit 5b096c0

14 files changed

Lines changed: 24 additions & 45 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

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Fromager thrives on practical, well-tested contributions. This guide summarizes
2222

2323
### Prerequisites
2424

25-
- Python 3.11 or newer
25+
- Python 3.12 or newer
2626
- `hatch` for environment and task management
2727

2828
```bash
@@ -99,7 +99,7 @@ The pre-commit hook prevents commits that would fail some CI quality checks, sav
9999
### Type Annotations
100100

101101
- Every function (including tests) must annotate all parameters and return values.
102-
- Use modern `X | None` syntax instead of `Optional[X]` (requires Python 3.11+).
102+
- Use modern `X | None` syntax instead of `Optional[X]` (PEP 604).
103103
- Prefer precise collection types (`list[str]`, `dict[str, int]`, etc.).
104104

105105
```python

docs/example/Containerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ RUN dnf install -y --nodocs \
1212
patch rust cargo \
1313
&& dnf clean all
1414

15-
# /opt/app-root structure (same as s2i-core and ubi9/python-311)
15+
# /opt/app-root structure (same as s2i-core and ubi9/python-312)
1616
ENV APP_ROOT=/opt/app-root \
1717
HOME=/opt/app-root/src \
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 \

docs/quickstart.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This guide gets you from zero to your first wheel build in under 5 minutes.
66
Prerequisites
77
-------------
88

9-
You'll need Python 3.11 or later and network access to download packages from PyPI.
9+
You'll need Python 3.12 or later and network access to download packages from PyPI.
1010

1111
Installation
1212
------------

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

0 commit comments

Comments
 (0)