Skip to content

Commit 2edca11

Browse files
authored
Add support for Python 3.14 and drop support for Python 3.8 (#6993)
* Add testing for Python 3.14 preview build * Add trove classifier for Python 3.14 * Remove support for Python 3.8
1 parent fec96cd commit 2edca11

File tree

7 files changed

+19
-14
lines changed

7 files changed

+19
-14
lines changed

.github/workflows/run-tests.yml

Lines changed: 5 additions & 5 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.8", "3.9", "3.10", "3.11", "3.12", "3.13", "pypy-3.10", "pypy-3.11"]
15+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev", "pypy-3.10", "pypy-3.11"]
1616
os: [ubuntu-22.04, macOS-latest, windows-latest]
1717
# Pypy-3.11 can't install openssl-sys with rust
1818
# which prevents us from testing in GHA.
@@ -42,10 +42,10 @@ jobs:
4242

4343
steps:
4444
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
45-
- name: 'Set up Python 3.8'
45+
- name: 'Set up Python 3.9'
4646
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
4747
with:
48-
python-version: '3.8'
48+
python-version: '3.9'
4949
- name: Install dependencies
5050
run: |
5151
make
@@ -62,10 +62,10 @@ jobs:
6262

6363
steps:
6464
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
65-
- name: 'Set up Python 3.8'
65+
- name: 'Set up Python 3.9'
6666
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
6767
with:
68-
python-version: '3.8'
68+
python-version: '3.9'
6969
- name: Install dependencies
7070
run: |
7171
make

HISTORY.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ dev
66

77
- \[Short description of non-trivial change.\]
88

9+
**Deprecations**
10+
- Added support for Python 3.14.
11+
- Dropped support for Python 3.8 following its end of support.
12+
913
2.32.4 (2025-06-10)
1014
-------------------
1115

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Requests is available on PyPI:
3333
$ python -m pip install requests
3434
```
3535

36-
Requests officially supports Python 3.8+.
36+
Requests officially supports Python 3.9+.
3737

3838
## Supported Features & Best–Practices
3939

docs/community/faq.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ Chris Adams gave an excellent summary on
5555
Python 3 Support?
5656
-----------------
5757

58-
Yes! Requests officially supports Python 3.8+ and PyPy.
58+
Yes! Requests supports all `officially supported versions of Python <https://devguide.python.org/versions/>`_
59+
and recent releases of PyPy.
5960

6061
Python 2 Support?
6162
-----------------
@@ -64,8 +65,8 @@ No! As of Requests 2.28.0, Requests no longer supports Python 2.7. Users who
6465
have been unable to migrate should pin to `requests<2.28`. Full information
6566
can be found in `psf/requests#6023 <https://github.com/psf/requests/issues/6023>`_.
6667

67-
It is *highly* recommended users migrate to Python 3.8+ now since Python
68-
2.7 is no longer receiving bug fixes or security updates as of January 1, 2020.
68+
It is *highly* recommended users migrate to a supported Python 3.x version now since
69+
Python 2.7 is no longer receiving bug fixes or security updates as of January 1, 2020.
6970

7071
What are "hostname doesn't match" errors?
7172
-----------------------------------------

docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Requests is ready for today's web.
7272
- Chunked Requests
7373
- ``.netrc`` Support
7474

75-
Requests officially supports Python 3.8+, and runs great on PyPy.
75+
Requests officially supports Python 3.9+, and runs great on PyPy.
7676

7777

7878
The User Guide

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from setuptools import setup
77

88
CURRENT_PYTHON = sys.version_info[:2]
9-
REQUIRED_PYTHON = (3, 8)
9+
REQUIRED_PYTHON = (3, 9)
1010

1111
if CURRENT_PYTHON < REQUIRED_PYTHON:
1212
sys.stderr.write(
@@ -69,7 +69,7 @@
6969
package_data={"": ["LICENSE", "NOTICE"]},
7070
package_dir={"": "src"},
7171
include_package_data=True,
72-
python_requires=">=3.8",
72+
python_requires=">=3.9",
7373
install_requires=requires,
7474
license=about["__license__"],
7575
zip_safe=False,
@@ -82,12 +82,12 @@
8282
"Operating System :: OS Independent",
8383
"Programming Language :: Python",
8484
"Programming Language :: Python :: 3",
85-
"Programming Language :: Python :: 3.8",
8685
"Programming Language :: Python :: 3.9",
8786
"Programming Language :: Python :: 3.10",
8887
"Programming Language :: Python :: 3.11",
8988
"Programming Language :: Python :: 3.12",
9089
"Programming Language :: Python :: 3.13",
90+
"Programming Language :: Python :: 3.14",
9191
"Programming Language :: Python :: 3 :: Only",
9292
"Programming Language :: Python :: Implementation :: CPython",
9393
"Programming Language :: Python :: Implementation :: PyPy",

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py{38,39,310,311,312,313}-{default, use_chardet_on_py3}
2+
envlist = py{39,310,311,312,313,314}-{default, use_chardet_on_py3}
33

44
[testenv]
55
deps = -rrequirements-dev.txt

0 commit comments

Comments
 (0)