Skip to content

Commit 6c2c490

Browse files
authored
Drop support for EOL Python 3.8 (#1281)
Also, bump github actions while at it.
1 parent 4c60ae8 commit 6c2c490

File tree

6 files changed

+43
-29
lines changed

6 files changed

+43
-29
lines changed

.github/workflows/release.yml

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,14 @@ jobs:
5050
PIP_DISABLE_PIP_VERSION_CHECK: 1
5151

5252
steps:
53-
- uses: actions/checkout@v4
53+
- uses: actions/checkout@v5
5454
with:
5555
fetch-depth: 50
5656
submodules: true
57+
persist-credentials: false
5758

5859
- name: Set up Python
59-
uses: actions/setup-python@v5
60+
uses: actions/setup-python@v6
6061
with:
6162
python-version: "3.x"
6263

@@ -76,18 +77,20 @@ jobs:
7677
outputs:
7778
include: ${{ steps.set-matrix.outputs.include }}
7879
steps:
79-
- uses: actions/checkout@v4
80-
- uses: actions/setup-python@v5
80+
- uses: actions/checkout@v5
81+
with:
82+
persist-credentials: false
83+
- uses: actions/setup-python@v6
8184
with:
8285
python-version: "3.x"
83-
- run: pip install cibuildwheel==2.21.3
86+
- run: pip install cibuildwheel==3.2.1
8487
- id: set-matrix
8588
run: |
8689
MATRIX_INCLUDE=$(
8790
{
88-
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
89-
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
90-
&& cibuildwheel --print-build-identifiers --platform windows --arch x86,AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-latest"}'
91+
cibuildwheel --print-build-identifiers --platform linux --archs x86_64,aarch64 | grep cp | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
92+
&& cibuildwheel --print-build-identifiers --platform macos --archs x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
93+
&& cibuildwheel --print-build-identifiers --platform windows --archs x86,AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-latest"}'
9194
} | jq -sc
9295
)
9396
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
@@ -110,16 +113,17 @@ jobs:
110113
PIP_DISABLE_PIP_VERSION_CHECK: 1
111114

112115
steps:
113-
- uses: actions/checkout@v4
116+
- uses: actions/checkout@v5
114117
with:
115118
fetch-depth: 50
116119
submodules: true
120+
persist-credentials: false
117121

118122
- name: Set up QEMU
119123
if: runner.os == 'Linux'
120-
uses: docker/setup-qemu-action@v2
124+
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
121125

122-
- uses: pypa/cibuildwheel@7940a4c0e76eb2030e473a5f864f291f63ee879b # v2.21.3
126+
- uses: pypa/cibuildwheel@9c00cb4f6b517705a3794b22395aedc36257242c # v3.2.1
123127
with:
124128
only: ${{ matrix.only }}
125129
env:
@@ -149,13 +153,14 @@ jobs:
149153

150154
steps:
151155
- name: Checkout source
152-
uses: actions/checkout@v4
156+
uses: actions/checkout@v5
153157
with:
154158
fetch-depth: 5
155159
submodules: true
160+
persist-credentials: false
156161

157162
- name: Set up Python
158-
uses: actions/setup-python@v5
163+
uses: actions/setup-python@v6
159164
with:
160165
python-version: "3.x"
161166

@@ -165,11 +170,12 @@ jobs:
165170
make htmldocs
166171
167172
- name: Checkout gh-pages
168-
uses: actions/checkout@v4
173+
uses: actions/checkout@v5
169174
with:
170175
fetch-depth: 5
171176
ref: gh-pages
172177
path: docs/gh-pages
178+
persist-credentials: false
173179

174180
- name: Sync docs
175181
run: |
@@ -200,10 +206,11 @@ jobs:
200206
deployments: write
201207

202208
steps:
203-
- uses: actions/checkout@v4
209+
- uses: actions/checkout@v5
204210
with:
205211
fetch-depth: 5
206212
submodules: false
213+
persist-credentials: false
207214

208215
- uses: actions/download-artifact@v4
209216
with:

.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"]
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: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ description = "An asyncio PostgreSQL driver"
44
authors = [{name = "MagicStack Inc", email = "hello@magic.io"}]
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,15 @@ 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",
2727
"Programming Language :: Python :: Implementation :: CPython",
2828
"Topic :: Database :: Front-Ends",
2929
]
@@ -56,8 +56,7 @@ docs = [
5656

5757
[build-system]
5858
requires = [
59-
"setuptools>=60",
60-
"wheel",
59+
"setuptools>=77.0.3",
6160
"Cython(>=0.29.24,<4.0.0)"
6261
]
6362
build-backend = "setuptools.build_meta"
@@ -74,6 +73,7 @@ include = ["asyncpg", "asyncpg.*"]
7473
[tool.cibuildwheel]
7574
build-frontend = "build"
7675
test-extras = "test"
76+
skip = "cp38-*"
7777

7878
[tool.cibuildwheel.macos]
7979
before-all = ".github/workflows/install-postgres.sh"

setup.py

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

0 commit comments

Comments
 (0)