Skip to content

Commit 9da52c3

Browse files
authored
Deprecated Python 3.6 (#602)
* Cleanup of unsupported python 3.6 * Removed comment and added pypy37 base dependency * fixing typo * Update tox.ini * removal of pypy 3.6 and python 3.6 from action.yml
1 parent 45982dd commit 9da52c3

File tree

4 files changed

+75
-89
lines changed

4 files changed

+75
-89
lines changed

.github/actions/setup-python-matrix/action.yml

-10
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@ description: "Sets up all versions of python required for matrix testing in this
33
runs:
44
using: "composite"
55
steps:
6-
- uses: actions/setup-python@v3
7-
with:
8-
python-version: "pypy-3.6"
9-
architecture: x64
10-
116
- uses: actions/setup-python@v3
127
with:
138
python-version: "pypy-3.7"
@@ -18,11 +13,6 @@ runs:
1813
python-version: "pypy-2.7"
1914
architecture: x64
2015

21-
- uses: actions/setup-python@v3
22-
with:
23-
python-version: "3.6"
24-
architecture: x64
25-
2616
- uses: actions/setup-python@v3
2717
with:
2818
python-version: "3.7"

.github/workflows/deploy-python.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
uses: pypa/[email protected]
5858
env:
5959
CIBW_PLATFORM: linux
60-
CIBW_BUILD: cp36-manylinux_aarch64 cp37-manylinux_aarch64 cp38-manylinux_aarch64 cp39-manylinux_aarch64 cp310-manylinux_aarch64 cp36-manylinux_x86_64 cp37-manylinux_x86_64 cp38-manylinux_x86_64 cp39-manylinux_x86_64 cp310-manylinux_x86_64
60+
CIBW_BUILD: cp37-manylinux_aarch64 cp38-manylinux_aarch64 cp39-manylinux_aarch64 cp310-manylinux_aarch64 cp37-manylinux_x86_64 cp38-manylinux_x86_64 cp39-manylinux_x86_64 cp310-manylinux_x86_64
6161
CIBW_ARCHS: x86_64 aarch64
6262
CIBW_ENVIRONMENT: "LD_LIBRARY_PATH=/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:/opt/rh/devtoolset-8/root/usr/lib64/dyninst:/opt/rh/devtoolset-8/root/usr/lib/dyninst:/usr/local/lib64:/usr/local/lib"
6363

setup.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121

2222
assert python_version in ((2, 7),) or python_version >= (
2323
3,
24-
6,
25-
), "The New Relic Python agent only supports Python 2.7 and 3.6+."
24+
7,
25+
), "The New Relic Python agent only supports Python 2.7 and 3.7+."
2626

2727
with_setuptools = False
2828

@@ -120,7 +120,6 @@ def build_extension(self, ext):
120120
"Development Status :: 5 - Production/Stable",
121121
"License :: OSI Approved :: Apache Software License",
122122
"Programming Language :: Python :: 2.7",
123-
"Programming Language :: Python :: 3.6",
124123
"Programming Language :: Python :: 3.7",
125124
"Programming Language :: Python :: 3.8",
126125
"Programming Language :: Python :: 3.9",
@@ -151,7 +150,7 @@ def build_extension(self, ext):
151150
zip_safe=False,
152151
classifiers=classifiers,
153152
packages=packages,
154-
python_requires=">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
153+
python_requires=">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*",
155154
package_data={
156155
"newrelic": ["newrelic.ini", "version.txt", "packages/urllib3/LICENSE.txt", "common/cacert.pem"],
157156
},

tox.ini

+71-74
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
; framework_aiohttp-aiohttp01: aiohttp<2
1717
; framework_aiohttp-aiohttp0202: aiohttp<2.3
1818
; 3. Python version required. Uses the standard tox definitions. (https://tox.readthedocs.io/en/latest/config.html#tox-environments)
19-
; Examples: py27,py36,py37,py38,py39,pypy,pypy37
19+
; Examples: py27,py37,py38,py39,pypy,pypy37
2020
; 4. Library and version (Optional). Used when testing multiple versions of the library, and may be omitted when only testing a single version.
2121
; Versions should be specified with 2 digits per version number, so <3 becomes 02 and <3.5 becomes 0304. latest and master are also acceptable versions.
2222
; Examples: uvicorn03, CherryPy0302, uvicornlatest
@@ -42,112 +42,109 @@
4242
[tox]
4343
setupdir = {toxinidir}
4444
envlist =
45-
python-adapter_cheroot-{py27,py36,py37,py38,py39,py310},
46-
python-adapter_gevent-{py27,py36,py37,py38,py310},
47-
python-adapter_gunicorn-{py36}-aiohttp1-gunicorn{19,latest},
48-
python-adapter_gunicorn-{py36,py37,py38,py39,py310}-aiohttp3-gunicornlatest,
49-
python-adapter_uvicorn-{py36,py37}-uvicorn03,
50-
; Temporarily testing py36 on the uvicorn version preceeding v0.15
51-
python-adapter_uvicorn-{py36}-uvicorn014
45+
python-adapter_cheroot-{py27,py37,py38,py39,py310},
46+
python-adapter_gevent-{py27,py37,py38,py310},
47+
python-adapter_gunicorn-{py37,py38,py39,py310}-aiohttp3-gunicornlatest,
48+
python-adapter_uvicorn-py37-uvicorn03,
5249
python-adapter_uvicorn-{py37,py38,py39,py310}-uvicornlatest,
53-
python-agent_features-{py27,py36,py37,py38,py39,py310}-{with,without}_extensions,
50+
python-agent_features-{py27,py37,py38,py39,py310}-{with,without}_extensions,
5451
python-agent_features-{pypy,pypy37}-without_extensions,
5552
python-agent_streaming-py27-grpc0125-{with,without}_extensions,
56-
python-agent_streaming-{py36,py37,py38,py39,py310}-{with,without}_extensions,
57-
python-agent_unittests-{py27,py36,py37,py38,py39,py310}-{with,without}_extensions,
53+
python-agent_streaming-{py37,py38,py39,py310}-{with,without}_extensions,
54+
python-agent_unittests-{py27,py37,py38,py39,py310}-{with,without}_extensions,
5855
python-agent_unittests-{pypy,pypy37}-without_extensions,
59-
python-application_celery-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
56+
python-application_celery-{py27,py37,py38,py39,py310,pypy,pypy37},
6057
gearman-application_gearman-{py27,pypy},
6158
python-component_djangorestframework-py27-djangorestframework0300,
62-
python-component_djangorestframework-{py36,py37,py38,py39,py310}-djangorestframeworklatest,
63-
python-component_flask_rest-{py27,py36,py37,py38,py39,pypy,pypy37},
64-
python-component_graphqlserver-{py36,py37,py38,py39,py310},
59+
python-component_djangorestframework-{py37,py38,py39,py310}-djangorestframeworklatest,
60+
python-component_flask_rest-{py27,py37,py38,py39,pypy,pypy37},
61+
python-component_graphqlserver-{py37,py38,py39,py310},
6562
python-component_tastypie-{py27,pypy}-tastypie0143,
66-
python-component_tastypie-{py36,py37,py38,py39,pypy37}-tastypie{0143,latest},
67-
python-coroutines_asyncio-{py36,py37,py38,py39,py310,pypy37},
68-
python-cross_agent-{py27,py36,py37,py38,py39,py310}-{with,without}_extensions,
63+
python-component_tastypie-{py37,py38,py39,pypy37}-tastypie{0143,latest},
64+
python-coroutines_asyncio-{py37,py38,py39,py310,pypy37},
65+
python-cross_agent-{py27,py37,py38,py39,py310}-{with,without}_extensions,
6966
python-cross_agent-pypy-without_extensions,
70-
postgres-datastore_asyncpg-{py36,py37,py38,py39,py310},
71-
memcached-datastore_bmemcached-{pypy,py27,py36,py37,py38,py39,py310}-memcached030,
72-
elasticsearchserver01-datastore_pyelasticsearch-{py27,py36,pypy},
67+
postgres-datastore_asyncpg-{py37,py38,py39,py310},
68+
memcached-datastore_bmemcached-{pypy,py27,py37,py38,py39,py310}-memcached030,
69+
elasticsearchserver01-datastore_pyelasticsearch-{py27,pypy},
7370
elasticsearchserver01-datastore_elasticsearch-py27-elasticsearch{00,01,02,05},
74-
elasticsearchserver07-datastore_elasticsearch-{py27,py36,py37,py38,py39,py310,pypy,pypy37}-elasticsearch{07},
75-
memcached-datastore_memcache-{py27,py36,py37,py38,py39,py310,pypy,pypy37}-memcached01,
71+
elasticsearchserver07-datastore_elasticsearch-{py27,py37,py38,py39,py310,pypy,pypy37}-elasticsearch{07},
72+
memcached-datastore_memcache-{py27,py37,py38,py39,py310,pypy,pypy37}-memcached01,
7673
mysql-datastore_mysql-mysql080023-py27,
7774
mysql-datastore_mysql-mysqllatest-{py37,py38,py39,py310},
78-
postgres-datastore_postgresql-{py36,py37,py38,py39},
79-
postgres-datastore_psycopg2-{py27,py36,py37,py38,py39,py310}-psycopg20208,
80-
postgres-datastore_psycopg2cffi-{py27,py36,pypy}-psycopg2cffi{0207,0208},
75+
postgres-datastore_postgresql-{py37,py38,py39},
76+
postgres-datastore_psycopg2-{py27,py37,py38,py39,py310}-psycopg20208,
77+
postgres-datastore_psycopg2cffi-{py27,pypy}-psycopg2cffi{0207,0208},
8178
postgres-datastore_psycopg2cffi-{py37,py38,py39,py310}-psycopg2cffi0208,
82-
memcached-datastore_pylibmc-{py27,py36,py37},
83-
memcached-datastore_pymemcache-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
84-
mongodb-datastore_pymongo-{py27,py36,py37,py38,py39,py310,pypy}-pymongo{03},
79+
memcached-datastore_pylibmc-{py27,py37},
80+
memcached-datastore_pymemcache-{py27,py37,py38,py39,py310,pypy,pypy37},
81+
mongodb-datastore_pymongo-{py27,py37,py38,py39,py310,pypy}-pymongo{03},
8582
mongodb-datastore_pymongo-{py37,py38,py39,py310,pypy,pypy37}-pymongo04,
86-
mysql-datastore_pymysql-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
87-
solr-datastore_pysolr-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
88-
redis-datastore_redis-{py27,py36,py37,py38,pypy,pypy37}-redis03,
89-
redis-datastore_redis-{py36,py37,py38,py39,py310,pypy37}-redis{0400,latest},
90-
redis-datastore_aioredis-{py36,py37,py38,py39,py310,pypy37}-aioredislatest,
83+
mysql-datastore_pymysql-{py27,py37,py38,py39,py310,pypy,pypy37},
84+
solr-datastore_pysolr-{py27,py37,py38,py39,py310,pypy,pypy37},
85+
redis-datastore_redis-{py27,py37,py38,pypy,pypy37}-redis03,
86+
redis-datastore_redis-{py37,py38,py39,py310,pypy37}-redis{0400,latest},
87+
redis-datastore_aioredis-{py37,py38,py39,py310,pypy37}-aioredislatest,
9188
redis-datastore_aioredis-py39-aioredis01,
92-
redis-datastore_aredis-{py36,py37,py38,py39,pypy37}-aredislatest,
89+
redis-datastore_aredis-{py37,py38,py39,pypy37}-aredislatest,
9390
solr-datastore_solrpy-{py27,pypy}-solrpy{00,01},
94-
python-datastore_sqlite-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
91+
python-datastore_sqlite-{py27,py37,py38,py39,py310,pypy,pypy37},
9592
memcached-datastore_umemcache-{py27,pypy},
96-
python-external_boto3-{py27,py36,py37,py38,py39,py310}-boto01,
97-
python-external_botocore-{py27,py36,py37,py38,py39,py310},
93+
python-external_boto3-{py27,py37,py38,py39,py310}-boto01,
94+
python-external_botocore-{py27,py37,py38,py39,py310},
9895
python-external_feedparser-py27-feedparser{05,06},
99-
python-external_http-{py27,py36,py37,py38,py39,py310,pypy},
100-
python-external_httplib-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
101-
python-external_httplib2-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
102-
python-external_httpx-{py36,py37,py38,py39,py310},
103-
python-external_requests-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
96+
python-external_http-{py27,py37,py38,py39,py310,pypy},
97+
python-external_httplib-{py27,py37,py38,py39,py310,pypy,pypy37},
98+
python-external_httplib2-{py27,py37,py38,py39,py310,pypy,pypy37},
99+
python-external_httpx-{py37,py38,py39,py310},
100+
python-external_requests-{py27,py37,py38,py39,py310,pypy,pypy37},
104101
python-external_urllib3-{py27,py37,pypy}-urllib3{0109},
105-
python-external_urllib3-{py27,py36,py37,py38,py39,py310,pypy,pypy37}-urllib3latest,
106-
python-framework_aiohttp-{py36,py37,py38,py39,py310,pypy37}-aiohttp03,
107-
python-framework_ariadne-{py36,py37,py38,py39,py310}-ariadnelatest,
102+
python-external_urllib3-{py27,py37,py38,py39,py310,pypy,pypy37}-urllib3latest,
103+
python-framework_aiohttp-{py37,py38,py39,py310,pypy37}-aiohttp03,
104+
python-framework_ariadne-{py37,py38,py39,py310}-ariadnelatest,
108105
python-framework_ariadne-py37-ariadne{0011,0012,0013},
109106
python-framework_bottle-py27-bottle{0008,0009,0010},
110-
python-framework_bottle-{py27,py36,py37,py38,py39,pypy37}-bottle{0011,0012},
107+
python-framework_bottle-{py27,py37,py38,py39,pypy37}-bottle{0011,0012},
111108
python-framework_bottle-py310-bottle0012,
112109
python-framework_bottle-pypy-bottle{0008,0009,0010,0011,0012},
113-
python-framework_cherrypy-{py36,py37,py38,py39,py310,pypy37}-CherryPy18,
114-
python-framework_cherrypy-{py36,py37}-CherryPy0302,
110+
python-framework_cherrypy-{py37,py38,py39,py310,pypy37}-CherryPy18,
111+
python-framework_cherrypy-{py37}-CherryPy0302,
115112
python-framework_cherrypy-pypy37-CherryPy0303,
116113
python-framework_django-{pypy,py27}-Django0103,
117114
python-framework_django-{pypy,py27,py37}-Django0108,
118115
python-framework_django-{py39}-Django{0200,0201,0202,0300,0301,latest},
119-
python-framework_django-{py36,py37,py38,py39,py310}-Django0302,
120-
python-framework_falcon-{py27,py36,py37,py38,py39,pypy,pypy37}-falcon0103,
121-
python-framework_falcon-{py36,py37,py38,py39,py310,pypy37}-falcon{0200,master},
122-
python-framework_fastapi-{py36,py37,py38,py39,py310},
116+
python-framework_django-{py37,py38,py39,py310}-Django0302,
117+
python-framework_falcon-{py27,py37,py38,py39,pypy,pypy37}-falcon0103,
118+
python-framework_falcon-{py37,py38,py39,py310,pypy37}-falcon{0200,master},
119+
python-framework_fastapi-{py37,py38,py39,py310},
123120
python-framework_flask-{pypy,py27}-flask0012,
124-
python-framework_flask-{pypy,py27,py36,py37,py38,py39,py310,pypy37}-flask0101,
121+
python-framework_flask-{pypy,py27,py37,py38,py39,py310,pypy37}-flask0101,
125122
; temporarily disabling flaskmaster tests
126123
python-framework_flask-{py37,py38,py39,py310,pypy37}-flask{latest},
127-
python-framework_graphene-{py36,py37,py38,py39,py310}-graphenelatest,
128-
python-framework_graphene-{py27,py36,py37,py38,py39,pypy,pypy37}-graphene{0200,0201},
124+
python-framework_graphene-{py37,py38,py39,py310}-graphenelatest,
125+
python-framework_graphene-{py27,py37,py38,py39,pypy,pypy37}-graphene{0200,0201},
129126
python-framework_graphene-py310-graphene0201,
130-
python-framework_graphql-{py27,py36,py37,py38,py39,py310,pypy,pypy37}-graphql02,
131-
python-framework_graphql-{py36,py37,py38,py39,py310,pypy37}-graphql03,
127+
python-framework_graphql-{py27,py37,py38,py39,py310,pypy,pypy37}-graphql02,
128+
python-framework_graphql-{py37,py38,py39,py310,pypy37}-graphql03,
132129
python-framework_graphql-py37-graphql{0202,0203,0300,0301,0302,master},
133-
grpc-framework_grpc-{py27,py36}-grpc0125,
134-
grpc-framework_grpc-{py36,py37,py38,py39,py310}-grpclatest,
130+
grpc-framework_grpc-{py27}-grpc0125,
131+
grpc-framework_grpc-{py37,py38,py39,py310}-grpclatest,
135132
python-framework_pyramid-{pypy,py27,py38}-Pyramid0104,
136-
python-framework_pyramid-{pypy,py27,pypy37,py36,py37,py38,py39,py310}-Pyramid0110-cornice,
133+
python-framework_pyramid-{pypy,py27,pypy37,py37,py38,py39,py310}-Pyramid0110-cornice,
137134
python-framework_pyramid-{py37,py38,py39,py310,pypy37}-Pyramidmaster,
138135
python-framework_sanic-{py38,pypy37}-sanic{190301,1906,1812,1912,200904,210300},
139-
python-framework_sanic-{py36,py37,py38,py310,pypy37}-saniclatest,
140-
python-framework_starlette-{py36,py310,pypy37}-starlette{0014,0015,0019},
141-
python-framework_starlette-{py36,py37,py38,py39,py310,pypy37}-starlettelatest,
136+
python-framework_sanic-{py37,py38,py310,pypy37}-saniclatest,
137+
python-framework_starlette-{py310,pypy37}-starlette{0014,0015,0019},
138+
python-framework_starlette-{py37,py38,py39,py310,pypy37}-starlettelatest,
142139
python-framework_strawberry-{py37,py38,py39,py310}-strawberrylatest,
143-
python-logger_logging-{py27,py36,py37,py38,py39,py310,pypy,pypy37},
144-
python-logger_loguru-{py36,py37,py38,py39,py310,pypy37}-logurulatest,
140+
python-logger_logging-{py27,py37,py38,py39,py310,pypy,pypy37},
141+
python-logger_loguru-{py37,py38,py39,py310,pypy37}-logurulatest,
145142
python-logger_loguru-py39-loguru{06,05,04,03},
146-
libcurl-framework_tornado-{py36,py37,py38,py39,py310,pypy37}-tornado0600,
143+
libcurl-framework_tornado-{py37,py38,py39,py310,pypy37}-tornado0600,
147144
libcurl-framework_tornado-{py37,py38,py39,py310}-tornadomaster,
148-
rabbitmq-messagebroker_pika-{py27,py36,py37,py38,py39,pypy,pypy37}-pika0.13,
149-
rabbitmq-messagebroker_pika-{py36,py37,py38,py39,py310,pypy37}-pikalatest,
150-
python-template_mako-{py27,py36,py37,py38,py39,py310}
145+
rabbitmq-messagebroker_pika-{py27,py37,py38,py39,pypy,pypy37}-pika0.13,
146+
rabbitmq-messagebroker_pika-{py37,py38,py39,py310,pypy37}-pikalatest,
147+
python-template_mako-{py27,py37,py38,py39,py310}
151148

152149
[pytest]
153150
usefixtures =
@@ -158,7 +155,7 @@ usefixtures =
158155
[testenv]
159156
deps =
160157
# Base Dependencies
161-
{py36,py37,py38,py39,py310,pypy37}: pytest==6.2.5
158+
{py37,py38,py39,py310,pypy37}: pytest==6.2.5
162159
{py27,pypy}: pytest==4.6.11
163160
iniconfig
164161
pytest-cov
@@ -196,10 +193,10 @@ deps =
196193
component_graphqlserver: jinja2<3.1
197194
component_tastypie-tastypie0143: django-tastypie<0.14.4
198195
component_tastypie-{py27,pypy}-tastypie0143: django<1.12
199-
component_tastypie-{py36,py37,py38,py39,py310,pypy37}-tastypie0143: django<3.0.1
196+
component_tastypie-{py37,py38,py39,py310,pypy37}-tastypie0143: django<3.0.1
200197
component_tastypie-tastypielatest: django-tastypie
201198
component_tastypie-tastypielatest: django<4.1
202-
coroutines_asyncio-{py36,py37,py38,py39,py310}: uvloop
199+
coroutines_asyncio-{py37,py38,py39,py310}: uvloop
203200
cross_agent: mock==1.0.1
204201
cross_agent: requests
205202
datastore_asyncpg: asyncpg
@@ -240,7 +237,7 @@ deps =
240237
external_boto3-boto01: moto<2.0
241238
external_boto3-py27: rsa<4.7.1
242239
external_botocore: botocore
243-
external_botocore-{py36,py37,py38,py39,py310}: moto[awslambda,ec2,iam]<3.0
240+
external_botocore-{py37,py38,py39,py310}: moto[awslambda,ec2,iam]<3.0
244241
external_botocore-py27: rsa<4.7.1
245242
external_botocore-py27: moto[awslambda,ec2,iam]<2.0
246243
external_feedparser-feedparser05: feedparser<6

0 commit comments

Comments
 (0)