Skip to content

Commit 66b21e8

Browse files
committed
Add Python 3.14 support, drop EOL 3.8
1 parent b4d2892 commit 66b21e8

File tree

5 files changed

+23
-16
lines changed

5 files changed

+23
-16
lines changed

.github/workflows/tests.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
# job.
1818
strategy:
1919
matrix:
20-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
20+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
2121
os: [ubuntu-latest, macos-latest, windows-latest]
2222
loop: [asyncio, uvloop]
2323
exclude:
@@ -27,6 +27,8 @@ jobs:
2727

2828
runs-on: ${{ matrix.os }}
2929

30+
permissions: {}
31+
3032
defaults:
3133
run:
3234
shell: bash
@@ -35,10 +37,11 @@ jobs:
3537
PIP_DISABLE_PIP_VERSION_CHECK: 1
3638

3739
steps:
38-
- uses: actions/checkout@v4
40+
- uses: actions/checkout@v5
3941
with:
4042
fetch-depth: 50
4143
submodules: true
44+
persist-credentials: false
4245

4346
- name: Check if release PR.
4447
uses: edgedb/action-release/validate-pr@master
@@ -56,7 +59,7 @@ jobs:
5659
brew install postgresql
5760
5861
- name: Set up Python ${{ matrix.python-version }}
59-
uses: actions/setup-python@v5
62+
uses: actions/setup-python@v6
6063
if: "!steps.release.outputs.is_release"
6164
with:
6265
python-version: ${{ matrix.python-version }}
@@ -86,14 +89,17 @@ jobs:
8689

8790
runs-on: ubuntu-latest
8891

92+
permissions: {}
93+
8994
env:
9095
PIP_DISABLE_PIP_VERSION_CHECK: 1
9196

9297
steps:
93-
- uses: actions/checkout@v4
98+
- uses: actions/checkout@v5
9499
with:
95100
fetch-depth: 50
96101
submodules: true
102+
persist-credentials: false
97103

98104
- name: Check if release PR.
99105
uses: edgedb/action-release/validate-pr@master
@@ -117,7 +123,7 @@ jobs:
117123
>> "${GITHUB_ENV}"
118124
119125
- name: Set up Python ${{ matrix.python-version }}
120-
uses: actions/setup-python@v5
126+
uses: actions/setup-python@v6
121127
if: "!steps.release.outputs.is_release"
122128
with:
123129
python-version: "3.x"
@@ -142,6 +148,7 @@ jobs:
142148
name: "Regression Tests"
143149
needs: [test-platforms, test-postgres]
144150
runs-on: ubuntu-latest
151+
permissions: {}
145152

146153
steps:
147154
- run: echo OK

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ of PostgreSQL server binary protocol for use with Python's ``asyncio``
1313
framework. You can read more about asyncpg in an introductory
1414
`blog post <http://magic.io/blog/asyncpg-1m-rows-from-postgres-to-python/>`_.
1515

16-
asyncpg requires Python 3.8 or later and is supported for PostgreSQL
16+
asyncpg requires Python 3.9 or later and is supported for PostgreSQL
1717
versions 9.5 to 17. Other PostgreSQL versions or other databases
1818
implementing the PostgreSQL protocol *may* work, but are not being
1919
actively tested.

docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ PostgreSQL and Python/asyncio. asyncpg is an efficient, clean implementation
1515
of PostgreSQL server binary protocol for use with Python's ``asyncio``
1616
framework.
1717

18-
**asyncpg** requires Python 3.8 or later and is supported for PostgreSQL
18+
**asyncpg** requires Python 3.9 or later and is supported for PostgreSQL
1919
versions 9.5 to 17. Other PostgreSQL versions or other databases implementing
2020
the PostgreSQL protocol *may* work, but are not being actively tested.
2121

pyproject.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ description = "An asyncio PostgreSQL driver"
44
authors = [{name = "MagicStack Inc", email = "[email protected]"}]
55
requires-python = '>=3.8.0'
66
readme = "README.rst"
7-
license = {text = "Apache License, Version 2.0"}
7+
license = "Apache-2.0"
8+
license-files = ["LICENSE"]
89
dynamic = ["version"]
910
keywords = [
1011
"database",
@@ -14,16 +15,16 @@ classifiers = [
1415
"Development Status :: 5 - Production/Stable",
1516
"Framework :: AsyncIO",
1617
"Intended Audience :: Developers",
17-
"License :: OSI Approved :: Apache Software License",
1818
"Operating System :: POSIX",
1919
"Operating System :: MacOS :: MacOS X",
2020
"Operating System :: Microsoft :: Windows",
2121
"Programming Language :: Python :: 3 :: Only",
22-
"Programming Language :: Python :: 3.8",
2322
"Programming Language :: Python :: 3.9",
2423
"Programming Language :: Python :: 3.10",
2524
"Programming Language :: Python :: 3.11",
2625
"Programming Language :: Python :: 3.12",
26+
"Programming Language :: Python :: 3.13",
27+
"Programming Language :: Python :: 3.14",
2728
"Programming Language :: Python :: Implementation :: CPython",
2829
"Topic :: Database :: Front-Ends",
2930
]
@@ -56,9 +57,8 @@ docs = [
5657

5758
[build-system]
5859
requires = [
59-
"setuptools>=60",
60-
"wheel",
61-
"Cython(>=0.29.24,<4.0.0)"
60+
"setuptools>=77.0.3",
61+
"Cython(>=3.1.0,<4.0.0)"
6262
]
6363
build-backend = "setuptools.build_meta"
6464

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import sys
99

10-
if sys.version_info < (3, 8):
11-
raise RuntimeError('asyncpg requires Python 3.8 or greater')
10+
if sys.version_info < (3, 9):
11+
raise RuntimeError('asyncpg requires Python 3.9 or greater')
1212

1313
import os
1414
import os.path
@@ -25,7 +25,7 @@
2525
from setuptools.command import build_ext as setuptools_build_ext
2626

2727

28-
CYTHON_DEPENDENCY = 'Cython(>=0.29.24,<4.0.0)'
28+
CYTHON_DEPENDENCY = 'Cython(>=3.1.0,<4.0.0)'
2929

3030
CFLAGS = ['-O2']
3131
LDFLAGS = []

0 commit comments

Comments
 (0)