Skip to content

Commit 560aa89

Browse files
authored
chore(ci): pin greenlet version to 3.1.0 for 3.8 (#11953)
## Context Failing tests slipped into the 2.19 branch, one of them being [this gevent test failure](https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-py/-/jobs/765798135). This was addressed in a fix PR to the main branch, and was [backported to 2.19](#11920). However, once backporting this fix, [ci_visibility tests on python 3.8 started to fail consistently](https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-py/-/jobs/765777070). After some digging, it turns out that in the backported fix for gevent, the [greenlet dependency was bumped from 3.0.3 to 3.1.1](https://github.com/DataDog/dd-trace-py/pull/11920/files#diff-939f705fbaed2d1386345b41d7c68406808ecbc5609022a59505453df9ba4b63), which according to greenlet documentation, [3.1.0 was the last release to support 3.7 and 3.8](https://greenlet.readthedocs.io/en/latest/changes.html#id2). Looks like pip didn't catch this during the upgrade because the [minimum runtime version is still pinned to 3.7 in greenlet](https://github.com/python-greenlet/greenlet/blob/3.1.1/setup.py#L263). ## Description This PR pins greenlet to 3.1.0 for python<=3.8, and will use latest for 3.9+. The failing ci_visibility tests will pass on 3.8 now. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [ ] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
1 parent c1fedaa commit 560aa89

File tree

4 files changed

+40
-34
lines changed

4 files changed

+40
-34
lines changed

.riot/requirements/1d4e95e.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.13
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1d4e95e.in
6+
#
7+
attrs==24.3.0
8+
coverage[toml]==7.6.10
9+
gevent==24.11.1
10+
greenlet==3.1.1
11+
hypothesis==6.45.0
12+
iniconfig==2.0.0
13+
mock==5.1.0
14+
msgpack==1.1.0
15+
opentracing==2.4.0
16+
packaging==24.2
17+
pluggy==1.5.0
18+
pytest==8.3.4
19+
pytest-cov==6.0.0
20+
pytest-mock==3.14.0
21+
pytest-randomly==3.16.0
22+
sortedcontainers==2.4.0
23+
zope-event==5.0
24+
zope-interface==7.2
25+
26+
# The following packages are considered to be unsafe in a requirements file:
27+
setuptools==75.8.0

.riot/requirements/2d19e52.txt

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

.riot/requirements/27d0ff3.txt renamed to .riot/requirements/6bec1ec.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
# This file is autogenerated by pip-compile with Python 3.8
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/27d0ff3.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/6bec1ec.in
66
#
77
attrs==24.3.0
88
coverage[toml]==7.6.1
99
exceptiongroup==1.2.2
1010
gevent==24.2.1
11-
greenlet==3.1.1
11+
greenlet==3.1.0
1212
hypothesis==6.45.0
1313
importlib-metadata==8.5.0
1414
iniconfig==2.0.0

riotfile.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2943,6 +2943,17 @@ def select_pys(min_version: str = MIN_PYTHON_VERSION, max_version: str = MAX_PYT
29432943
env={
29442944
"DD_AGENT_PORT": "9126",
29452945
},
2946+
venvs=[
2947+
# Python 3.8
2948+
Venv(
2949+
pys=["3.8"],
2950+
pkgs={"greenlet": "==3.1.0"},
2951+
),
2952+
# Python 3.9+
2953+
Venv(
2954+
pys=select_pys(min_version="3.9"),
2955+
),
2956+
],
29462957
),
29472958
Venv(
29482959
name="subprocess",

0 commit comments

Comments
 (0)