Skip to content

Commit b99c027

Browse files
authored
Python 3.11 support, and matrix cleanup (#1680)
* clean up CI excludes * removed some excludes that now work thanks to package updates * removed some versions that are excluded for all python versions we run * add Python 3.11 to the matrix * add some excludes for Python 3.11, fix setup.cfg, Makefile * add more excludes
1 parent 837105c commit b99c027

14 files changed

+60
-108
lines changed

.ci/.jenkins_exclude.yml

Lines changed: 49 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ exclude:
2727
FRAMEWORK: celery-4-django-2.0
2828
- PYTHON_VERSION: python-3.10
2929
FRAMEWORK: celery-4-django-1.11
30+
- PYTHON_VERSION: python-3.11 # cannot import name 'formatargspec' from 'inspect'
31+
FRAMEWORK: celery-4-flask-1.0
32+
- PYTHON_VERSION: python-3.11 # https://github.com/celery/billiard/issues/377
33+
FRAMEWORK: celery-5-flask-2
34+
- PYTHON_VERSION: python-3.11 # https://github.com/celery/billiard/issues/377
35+
FRAMEWORK: celery-5-django-3
36+
- PYTHON_VERSION: python-3.11 # https://github.com/celery/billiard/issues/377
37+
FRAMEWORK: celery-5-django-4
3038
- PYTHON_VERSION: python-3.10
3139
FRAMEWORK: graphene-2
3240
- PYTHON_VERSION: python-3.10
@@ -37,118 +45,64 @@ exclude:
3745
FRAMEWORK: cassandra-3.4
3846
- PYTHON_VERSION: python-3.10
3947
FRAMEWORK: pymongo-3.5
40-
# requests
41-
- PYTHON_VERSION: python-3.6
42-
FRAMEWORK: requests-1.2
43-
- PYTHON_VERSION: python-3.7
44-
FRAMEWORK: requests-1.2
45-
- PYTHON_VERSION: python-3.8
46-
FRAMEWORK: requests-1.2
47-
- PYTHON_VERSION: python-3.9
48-
FRAMEWORK: requests-1.2
49-
- PYTHON_VERSION: python-3.10
50-
FRAMEWORK: requests-1.2
51-
- PYTHON_VERSION: pypy-3
52-
FRAMEWORK: requests-1.2
48+
- PYTHON_VERSION: python-3.11
49+
FRAMEWORK: django-1.11
50+
- PYTHON_VERSION: python-3.11
51+
FRAMEWORK: django-2.0
52+
- PYTHON_VERSION: python-3.11
53+
FRAMEWORK: django-2.1
54+
- PYTHON_VERSION: python-3.11
55+
FRAMEWORK: celery-4-django-2.0
56+
- PYTHON_VERSION: python-3.11
57+
FRAMEWORK: celery-4-django-1.11
58+
- PYTHON_VERSION: python-3.11
59+
FRAMEWORK: graphene-2
60+
- PYTHON_VERSION: python-3.11
61+
FRAMEWORK: aiohttp-3.0
62+
- PYTHON_VERSION: python-3.11
63+
FRAMEWORK: aiohttp-4.0
64+
- PYTHON_VERSION: python-3.11
65+
FRAMEWORK: cassandra-3.4
66+
- PYTHON_VERSION: python-3.11
67+
FRAMEWORK: pymongo-3.5
5368
# pymongo
54-
- PYTHON_VERSION: python-3.6
55-
FRAMEWORK: pymongo-3.0
56-
- PYTHON_VERSION: python-3.7
57-
FRAMEWORK: pymongo-3.0
58-
- PYTHON_VERSION: python-3.8
59-
FRAMEWORK: pymongo-3.0
60-
- PYTHON_VERSION: python-3.9
61-
FRAMEWORK: pymongo-3.0
6269
- PYTHON_VERSION: python-3.10
63-
FRAMEWORK: pymongo-3.0
64-
- PYTHON_VERSION: python-3.6
65-
FRAMEWORK: pymongo-3.1
66-
- PYTHON_VERSION: python-3.7
6770
FRAMEWORK: pymongo-3.1
68-
- PYTHON_VERSION: python-3.8
69-
FRAMEWORK: pymongo-3.1
70-
- PYTHON_VERSION: python-3.9
71+
- PYTHON_VERSION: python-3.11
7172
FRAMEWORK: pymongo-3.1
7273
- PYTHON_VERSION: python-3.10
73-
FRAMEWORK: pymongo-3.1
74-
- PYTHON_VERSION: python-3.6
75-
FRAMEWORK: pymongo-3.2
76-
- PYTHON_VERSION: python-3.7
77-
FRAMEWORK: pymongo-3.2
78-
- PYTHON_VERSION: python-3.8
7974
FRAMEWORK: pymongo-3.2
80-
- PYTHON_VERSION: python-3.9
75+
- PYTHON_VERSION: python-3.11
8176
FRAMEWORK: pymongo-3.2
8277
- PYTHON_VERSION: python-3.10
83-
FRAMEWORK: pymongo-3.2
84-
- PYTHON_VERSION: python-3.6
8578
FRAMEWORK: pymongo-3.3
86-
- PYTHON_VERSION: python-3.7
79+
- PYTHON_VERSION: python-3.11
8780
FRAMEWORK: pymongo-3.3
88-
- PYTHON_VERSION: python-3.8
89-
FRAMEWORK: pymongo-3.3
90-
- PYTHON_VERSION: python-3.9
91-
FRAMEWORK: pymongo-3.3
92-
- PYTHON_VERSION: python-3.10
93-
FRAMEWORK: pymongo-3.3
94-
- PYTHON_VERSION: python-3.6
95-
FRAMEWORK: pymongo-3.4
96-
- PYTHON_VERSION: python-3.7
97-
FRAMEWORK: pymongo-3.4
9881
- PYTHON_VERSION: python-3.8
9982
FRAMEWORK: pymongo-3.4
10083
- PYTHON_VERSION: python-3.9
10184
FRAMEWORK: pymongo-3.4
10285
- PYTHON_VERSION: python-3.10
10386
FRAMEWORK: pymongo-3.4
87+
- PYTHON_VERSION: python-3.11
88+
FRAMEWORK: pymongo-3.4
10489
- PYTHON_VERSION: pypy-3
10590
FRAMEWORK: pymongo-3.0
106-
# python-memcached
107-
- PYTHON_VERSION: python-3.6
108-
FRAMEWORK: memcached-1.51
109-
- PYTHON_VERSION: python-3.7
110-
FRAMEWORK: memcached-1.51
111-
- PYTHON_VERSION: python-3.8
112-
FRAMEWORK: memcached-1.51
113-
- PYTHON_VERSION: python-3.9
114-
FRAMEWORK: memcached-1.51
115-
- PYTHON_VERSION: python-3.10
116-
FRAMEWORK: memcached-1.51
117-
- PYTHON_VERSION: pypy-3
118-
FRAMEWORK: memcached-1.51
11991
# pymssql
12092
- PYTHON_VERSION: pypy-3 # currently fails with error on pypy3
12193
FRAMEWORK: pymssql-newest
122-
- PYTHON_VERSION: python-3.6 # currently fails with error on python 3.6 due to cython issues
123-
FRAMEWORK: pymssql-newest
124-
- PYTHON_VERSION: python-3.7 # currently fails with error on python 3.7 due to cython issues
125-
FRAMEWORK: pymssql-newest
126-
- PYTHON_VERSION: python-3.8 # currently fails with error on python 3.8 due to cython issues
127-
FRAMEWORK: pymssql-newest
128-
- PYTHON_VERSION: python-3.9 # currently fails with error on python 3.8 due to cython issues
129-
FRAMEWORK: pymssql-newest
130-
- PYTHON_VERSION: python-3.10 # currently fails with error on python 3.8 due to cython issues
131-
FRAMEWORK: pymssql-newest
13294
# pyodbc
13395
- PYTHON_VERSION: pypy-3
13496
FRAMEWORK: pyodbc-newest
13597
# boto3
136-
- PYTHON_VERSION: python-3.6
137-
FRAMEWORK: boto3-1.0
138-
- PYTHON_VERSION: python-3.7
139-
FRAMEWORK: boto3-1.0
140-
- PYTHON_VERSION: python-3.8
141-
FRAMEWORK: boto3-1.0
142-
- PYTHON_VERSION: python-3.9
143-
FRAMEWORK: boto3-1.0
144-
- PYTHON_VERSION: python-3.10
145-
FRAMEWORK: boto3-1.0
146-
- PYTHON_VERSION: pypy-3
147-
FRAMEWORK: boto3-1.0
14898
- PYTHON_VERSION: python-3.10
14999
FRAMEWORK: boto3-1.5
150100
- PYTHON_VERSION: python-3.10
151101
FRAMEWORK: boto3-1.6
102+
- PYTHON_VERSION: python-3.11
103+
FRAMEWORK: boto3-1.5
104+
- PYTHON_VERSION: python-3.11
105+
FRAMEWORK: boto3-1.6
152106
# aiohttp client, only supported in Python 3.7+
153107
- PYTHON_VERSION: pypy-3
154108
FRAMEWORK: aiohttp-3.0
@@ -199,22 +153,16 @@ exclude:
199153
FRAMEWORK: sanic-20.12
200154
- PYTHON_VERSION: python-3.6
201155
FRAMEWORK: sanic-newest
202-
- PYTHON_VERSION: python-3.10 # install of uvloop 0.14 fails: https://github.com/MagicStack/uvloop/issues/356
203-
FRAMEWORK: sanic-20.12
204156
- PYTHON_VERSION: pypy-3
205157
# aioredis
206158
FRAMEWORK: aioredis-newest
207159
- PYTHON_VERSION: python-3.6
208160
FRAMEWORK: aioredis-newest
209-
- PYTHON_VERSION: python-3.10 # getting "loop argument must agree with lock" error
210-
FRAMEWORK: aioredis-newest
211161
# aiomysql
212162
- PYTHON_VERSION: pypy-3
213163
FRAMEWORK: aiomysql-newest
214164
- PYTHON_VERSION: python-3.6
215165
FRAMEWORK: aiomysql-newest
216-
- PYTHON_VERSION: python-3.10 # getting "loop argument must agree with lock" error
217-
FRAMEWORK: aiomysql-newest
218166
# aiobotocore
219167
- PYTHON_VERSION: pypy-3
220168
FRAMEWORK: aiobotocore-newest
@@ -223,3 +171,15 @@ exclude:
223171
# mysql-connector-python
224172
- PYTHON_VERSION: python-3.6
225173
FRAMEWORK: mysql_connector-newest
174+
# twisted
175+
- PYTHON_VERSION: python-3.11
176+
FRAMEWORK: twisted-18
177+
- PYTHON_VERSION: python-3.11
178+
FRAMEWORK: twisted-17
179+
- PYTHON_VERSION: python-3.11
180+
FRAMEWORK: twisted-16
181+
- PYTHON_VERSION: python-3.11
182+
FRAMEWORK: twisted-15
183+
# pylibmc
184+
- PYTHON_VERSION: python-3.11
185+
FRAMEWORK: pylibmc-1.4

.ci/.jenkins_framework.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ FRAMEWORK:
1313
- jinja2-3
1414
- opentelemetry-newest
1515
- opentracing-newest
16-
- twisted-18
16+
- twisted-newest
1717
- celery-4-flask-1.0
1818
- celery-4-django-2.0
1919
- celery-5-flask-2

.ci/.jenkins_framework_full.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,15 @@ FRAMEWORK:
2828
- opentelemetry-newest
2929
- opentracing-newest
3030
- opentracing-2.0
31+
- twisted-newest
3132
- twisted-18
3233
- twisted-17
3334
- twisted-16
3435
- twisted-15
3536
- requests-newest
36-
- boto3-1.0
3737
- boto3-1.5
3838
- boto3-1.6
3939
- boto3-newest
40-
- pymongo-3.0
4140
- pymongo-3.1
4241
- pymongo-3.2
4342
- pymongo-3.3
@@ -49,7 +48,6 @@ FRAMEWORK:
4948
- redis-newest
5049
- psycopg2-newest
5150
- pymssql-newest
52-
- memcached-1.51
5351
- memcached-newest
5452
- pylibmc-1.4
5553
- pylibmc-newest

.ci/.jenkins_python.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
PYTHON_VERSION:
22
- python-3.6
3-
- python-3.10
3+
- python-3.11

.ci/.jenkins_python_full.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ PYTHON_VERSION:
44
- python-3.8
55
- python-3.9
66
- python-3.10
7+
- python-3.11
78
# - pypy-3 # excluded due to build issues with SQLite/Django

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ test:
1111
# delete any __pycache__ folders to avoid hard-to-debug caching issues
1212
find . -name __pycache__ -type d -exec rm -r {} +
1313
# pypy3 should be added to the first `if` once it supports py3.7
14-
if [[ "$$PYTHON_VERSION" =~ ^(3.7|3.8|3.9|3.10|nightly)$$ ]] ; then \
14+
if [[ "$$PYTHON_VERSION" =~ ^(3.7|3.8|3.9|3.10|3.11|nightly)$$ ]] ; then \
1515
echo "Python 3.7+, with asyncio"; \
1616
py.test -v $(PYTEST_ARGS) --showlocals $(PYTEST_MARKER) $(PYTEST_JUNIT); \
1717
else \

setup.cfg

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ classifiers =
2020
Programming Language :: Python :: 3.8
2121
Programming Language :: Python :: 3.9
2222
Programming Language :: Python :: 3.10
23+
Programming Language :: Python :: 3.11
2324
Programming Language :: Python :: Implementation :: CPython
2425
Programming Language :: Python :: Implementation :: PyPy
2526
License :: OSI Approved :: BSD License
@@ -164,16 +165,14 @@ markers =
164165

165166
[isort]
166167
line_length=120
167-
skip=wrapt,setup.py,build,src,elasticapm/__init__.py
168+
skip=setup.py,build,src,elasticapm/__init__.py
168169
multi_line_output=3
169170
include_trailing_comma=true
170171

171172
[coverage:run]
172173
include =
173174
elasticapm/*
174175
tests/*
175-
omit =
176-
elasticapm/utils/wrapt/*
177176

178177
[coverage:paths]
179178
source =

tests/instrumentation/pymssql_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def test_pymssql_select(instrument, pymssql_connection, elasticapm_client):
9090
assert span["context"]["destination"] == {
9191
"address": "mssql",
9292
"port": default_ports["mssql"],
93-
"service": {"name": "", "resource": "mssql", "type": ""},
93+
"service": {"name": "", "resource": "mssql/tempdb", "type": ""},
9494
}
9595
assert span["context"]["service"]["target"]["type"] == "mssql"
9696
assert span["context"]["service"]["target"]["name"] == "tempdb"

tests/requirements/reqs-base.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jsonschema==3.2.0 ; python_version == '3.6'
1111
jsonschema==4.0.1 ; python_version > '3.6'
1212

1313

14-
py==1.10.0
14+
py==1.11.0
1515
more-itertools==8.10.0
1616
pluggy==1.0.0
1717
atomicwrites==1.4.0

tests/requirements/reqs-memcached-1.51.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)