From 5457f20f08b40e613d57ff12beeb124f722834a4 Mon Sep 17 00:00:00 2001 From: Munir Abdinur Date: Thu, 3 Nov 2022 10:02:50 -0400 Subject: [PATCH 1/3] ci(gevent): pin greenlet for legacy gevent versions (#4437) Earlier versions of gevent (v1.1, v1.2, v1.3, v1.4, v20.9) only specify a minimum greenlet version. greenlet v2.0 updated its ABI to support py3.11 and is only compatible with gevent>=22.10.2.. This change updates gevent and opentracer tests to install greenlet<2 if gevent<=20.9 is used. Co-authored-by: Brett Langdon (cherry picked from commit b85fca25ee49b6fc794300fa458f20168b879bc8) # Conflicts: # tox.ini --- tox.ini | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 4f6b500b605..c853a281e05 100644 --- a/tox.ini +++ b/tox.ini @@ -31,11 +31,20 @@ envlist = dogpile_contrib-py{27,35}-dogpilecache{06,07,08,09} dogpile_contrib-py{36,37,38,39,310}-dogpilecache{06,07,08,09,10,} futures_contrib-py27-futures{30,31,32,} +<<<<<<< HEAD futures_contrib-py{35,36,37,38,39,310} gevent_contrib-py27-gevent{11,12,13}-sslmodules gevent_contrib-py{35,36}-gevent{11,12,13}-sslmodules3-sslmodules gevent_contrib-py{37,38}-gevent{13,14}-sslmodules3-sslmodules gevent_contrib-py{39}-gevent{209,2012,211}-sslmodules3-sslmodules +======= + futures_contrib-py{35,36,37,38,39,310,311} + gevent_contrib-py27-gevent{11,12,13}-greenlet1-sslmodules + gevent_contrib-py{35,36}-gevent{11,12,13}-greenlet1-sslmodules3-sslmodules + gevent_contrib-py{37,38}-gevent{13,14}-greenlet1-sslmodules3-sslmodules + gevent_contrib-py{39}-gevent209-greenlet1-sslmodules3-sslmodules + gevent_contrib-py{39}-gevent{2012,211}-sslmodules3-sslmodules +>>>>>>> b85fca25 (ci(gevent): pin greenlet for legacy gevent versions (#4437)) gevent_contrib-py{310}-gevent{218}-sslmodules3-sslmodules kombu_contrib-py{27,35,36}-kombu{40,41,42,43,44,45,46,} # Kombu >= 4.2 only supports Python 3.7+ @@ -60,23 +69,34 @@ envlist = tornado_contrib-py27-tornado{44,45}-futures{30,31,32,} vertica_contrib-py{27,35,36,37,38,39}-vertica{060,070} # Opentracer +<<<<<<< HEAD py{27,35,36,37,38,39,310}-opentracer py{35,36,37,38,39,310}-opentracer_asyncio py{35,36,37,38,39,310}-opentracer_tornado-tornado{44,45,50,60,} py{27,35,36}-opentracer_gevent-gevent{11,12} py{37,38}-opentracer_gevent-gevent{13,14} py{39,310}-opentracer_gevent-gevent{209,2012,211} +======= + py{27,35,36,37,38,39,310,311}-opentracer + py{35,36,37,38,39,310,311}-opentracer_asyncio + py{35,36,37,38,39,310,311}-opentracer_tornado-tornado{44,45,50,60,} + py{27,35,36}-opentracer_gevent-gevent{11,12}-greenlet1 + py{37,38}-opentracer_gevent-gevent{13,14}-greenlet1 + py{39}-opentracer_gevent-gevent209-greenlet1 + py{39}-opentracer_gevent-gevent{2012,211}-greenlet1 + py{310,311}-opentracer_gevent-gevent{228} +>>>>>>> b85fca25 (ci(gevent): pin greenlet for legacy gevent versions (#4437)) isolated_build = true requires = virtualenv<=20.2.1 -[testenv:gevent_contrib-py{37,38}-gevent{13,14}-sslmodules3-sslmodules] +[testenv:gevent_contrib-py{37,38}-gevent{13,14}-greenlet1-sslmodules3-sslmodules] # Wheels for gevent segfault pretty easily install_command=python -m pip install --no-binary=gevent {opts} {packages} usedevelop = true -[testenv:py{37,38}-opentracer_gevent-gevent{13,14}] +[testenv:py{37,38}-opentracer_gevent-gevent{13,14}-greenlet1] # Wheels for gevent segfault pretty easily install_command=python -m pip install --no-binary=gevent {opts} {packages} usedevelop = true @@ -122,8 +142,12 @@ deps = py310-profile-minreqs: protobuf==3.8.0 profile-minreqs: tenacity==5.0.1 profile-!minreqs-gevent: gevent + # gevent==1.1 requires greenlet<2 py27-profile-minreqs-gevent: gevent==1.1.0 + py27-profile-minreqs-gevent: greenlet<2 + # gevent==1.4 requires greenlet<2 py{35,36,37,38}-profile-minreqs-gevent: gevent==1.4.0 + py{35,36,37,38}-profile-minreqs-gevent: greenlet<2 py39-profile-minreqs-gevent: gevent==20.6.1; sys_platform != 'win32' py39-profile-minreqs-gevent: gevent==21.1.2; sys_platform == 'win32' py39-profile-minreqs-gevent: greenlet==0.4.16; sys_platform != 'win32' @@ -165,6 +189,13 @@ deps = gevent2012: gevent>=20.12,<20.13 gevent211: gevent>=21.1,<21.2 gevent218: gevent>=21.8,<21.9 +<<<<<<< HEAD +======= + gevent228: gevent>=22.8,<22.10 + # Note - gevent<20.12 does not set a maximum supported version. + # To test with gevent<20.12 we need to manually install greenlet<2. + greenlet1: greenlet>=1,<2 +>>>>>>> b85fca25 (ci(gevent): pin greenlet for legacy gevent versions (#4437)) # kombu using deprecated shims removed in importlib-metadata 5.0 kombu{40,41,42,43,44,45,46,}: importlib_metadata<5.0; python_version<'3.8' kombu: kombu From ac93bf365e0e065fb1547f4f5413a448f9a8f478 Mon Sep 17 00:00:00 2001 From: Munir Abdinur Date: Thu, 3 Nov 2022 15:14:28 -0400 Subject: [PATCH 2/3] fix conflicts --- tox.ini | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/tox.ini b/tox.ini index c853a281e05..c631d41c20a 100644 --- a/tox.ini +++ b/tox.ini @@ -31,20 +31,11 @@ envlist = dogpile_contrib-py{27,35}-dogpilecache{06,07,08,09} dogpile_contrib-py{36,37,38,39,310}-dogpilecache{06,07,08,09,10,} futures_contrib-py27-futures{30,31,32,} -<<<<<<< HEAD futures_contrib-py{35,36,37,38,39,310} - gevent_contrib-py27-gevent{11,12,13}-sslmodules - gevent_contrib-py{35,36}-gevent{11,12,13}-sslmodules3-sslmodules - gevent_contrib-py{37,38}-gevent{13,14}-sslmodules3-sslmodules - gevent_contrib-py{39}-gevent{209,2012,211}-sslmodules3-sslmodules -======= - futures_contrib-py{35,36,37,38,39,310,311} gevent_contrib-py27-gevent{11,12,13}-greenlet1-sslmodules gevent_contrib-py{35,36}-gevent{11,12,13}-greenlet1-sslmodules3-sslmodules gevent_contrib-py{37,38}-gevent{13,14}-greenlet1-sslmodules3-sslmodules - gevent_contrib-py{39}-gevent209-greenlet1-sslmodules3-sslmodules - gevent_contrib-py{39}-gevent{2012,211}-sslmodules3-sslmodules ->>>>>>> b85fca25 (ci(gevent): pin greenlet for legacy gevent versions (#4437)) + gevent_contrib-py{39}-gevent{209,2012,211}-sslmodules3-sslmodules gevent_contrib-py{310}-gevent{218}-sslmodules3-sslmodules kombu_contrib-py{27,35,36}-kombu{40,41,42,43,44,45,46,} # Kombu >= 4.2 only supports Python 3.7+ @@ -69,23 +60,12 @@ envlist = tornado_contrib-py27-tornado{44,45}-futures{30,31,32,} vertica_contrib-py{27,35,36,37,38,39}-vertica{060,070} # Opentracer -<<<<<<< HEAD py{27,35,36,37,38,39,310}-opentracer py{35,36,37,38,39,310}-opentracer_asyncio py{35,36,37,38,39,310}-opentracer_tornado-tornado{44,45,50,60,} - py{27,35,36}-opentracer_gevent-gevent{11,12} - py{37,38}-opentracer_gevent-gevent{13,14} - py{39,310}-opentracer_gevent-gevent{209,2012,211} -======= - py{27,35,36,37,38,39,310,311}-opentracer - py{35,36,37,38,39,310,311}-opentracer_asyncio - py{35,36,37,38,39,310,311}-opentracer_tornado-tornado{44,45,50,60,} py{27,35,36}-opentracer_gevent-gevent{11,12}-greenlet1 py{37,38}-opentracer_gevent-gevent{13,14}-greenlet1 - py{39}-opentracer_gevent-gevent209-greenlet1 - py{39}-opentracer_gevent-gevent{2012,211}-greenlet1 - py{310,311}-opentracer_gevent-gevent{228} ->>>>>>> b85fca25 (ci(gevent): pin greenlet for legacy gevent versions (#4437)) + py{39,310}-opentracer_gevent-gevent{209,2012,211}-greenlet1 isolated_build = true @@ -189,13 +169,9 @@ deps = gevent2012: gevent>=20.12,<20.13 gevent211: gevent>=21.1,<21.2 gevent218: gevent>=21.8,<21.9 -<<<<<<< HEAD -======= - gevent228: gevent>=22.8,<22.10 # Note - gevent<20.12 does not set a maximum supported version. # To test with gevent<20.12 we need to manually install greenlet<2. greenlet1: greenlet>=1,<2 ->>>>>>> b85fca25 (ci(gevent): pin greenlet for legacy gevent versions (#4437)) # kombu using deprecated shims removed in importlib-metadata 5.0 kombu{40,41,42,43,44,45,46,}: importlib_metadata<5.0; python_version<'3.8' kombu: kombu From efb87cc17aae1f61cde11daf2372585a13b177de Mon Sep 17 00:00:00 2001 From: Munir Abdinur Date: Thu, 3 Nov 2022 15:15:20 -0400 Subject: [PATCH 3/3] Update tox.ini --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index c631d41c20a..d807f9088b4 100644 --- a/tox.ini +++ b/tox.ini @@ -35,7 +35,7 @@ envlist = gevent_contrib-py27-gevent{11,12,13}-greenlet1-sslmodules gevent_contrib-py{35,36}-gevent{11,12,13}-greenlet1-sslmodules3-sslmodules gevent_contrib-py{37,38}-gevent{13,14}-greenlet1-sslmodules3-sslmodules - gevent_contrib-py{39}-gevent{209,2012,211}-sslmodules3-sslmodules + gevent_contrib-py{39}-gevent{209,2012,211}-greenlet1 -sslmodules3-sslmodules gevent_contrib-py{310}-gevent{218}-sslmodules3-sslmodules kombu_contrib-py{27,35,36}-kombu{40,41,42,43,44,45,46,} # Kombu >= 4.2 only supports Python 3.7+