Skip to content

Commit

Permalink
chore(ci): pin greenlet version to 3.1.0 for 3.8 [backport 2.19] (#…
Browse files Browse the repository at this point in the history
…11956)

Backport 560aa89 from #11953 to 2.19.

## 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
- [x] 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)

Co-authored-by: erikayasuda <[email protected]>
  • Loading branch information
github-actions[bot] and erikayasuda authored Jan 15, 2025
1 parent befc80b commit 8fc7d4e
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 34 deletions.
27 changes: 27 additions & 0 deletions .riot/requirements/1d4e95e.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1d4e95e.in
#
attrs==24.3.0
coverage[toml]==7.6.10
gevent==24.11.1
greenlet==3.1.1
hypothesis==6.45.0
iniconfig==2.0.0
mock==5.1.0
msgpack==1.1.0
opentracing==2.4.0
packaging==24.2
pluggy==1.5.0
pytest==8.3.4
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-randomly==3.16.0
sortedcontainers==2.4.0
zope-event==5.0
zope-interface==7.2

# The following packages are considered to be unsafe in a requirements file:
setuptools==75.8.0
32 changes: 0 additions & 32 deletions .riot/requirements/2d19e52.txt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
# pip-compile --allow-unsafe --no-annotate .riot/requirements/27d0ff3.in
# pip-compile --allow-unsafe --no-annotate .riot/requirements/6bec1ec.in
#
attrs==24.3.0
coverage[toml]==7.6.1
exceptiongroup==1.2.2
gevent==24.2.1
greenlet==3.1.1
greenlet==3.1.0
hypothesis==6.45.0
importlib-metadata==8.5.0
iniconfig==2.0.0
Expand Down
11 changes: 11 additions & 0 deletions riotfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -2871,6 +2871,17 @@ def select_pys(min_version: str = MIN_PYTHON_VERSION, max_version: str = MAX_PYT
env={
"DD_AGENT_PORT": "9126",
},
venvs=[
# Python 3.8
Venv(
pys=["3.8"],
pkgs={"greenlet": "==3.1.0"},
),
# Python 3.9+
Venv(
pys=select_pys(min_version="3.9"),
),
],
),
Venv(
name="subprocess",
Expand Down

0 comments on commit 8fc7d4e

Please sign in to comment.