From bcdedf2a8afa09803e93e5e18a6f35f522ae56d0 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 18 Sep 2025 12:59:25 +0200 Subject: [PATCH 01/10] tests: Move rq under toxgen --- .github/workflows/test-integrations-tasks.yml | 94 ------------------- scripts/populate_tox/config.py | 10 ++ scripts/populate_tox/populate_tox.py | 1 - scripts/populate_tox/tox.jinja | 25 ----- tox.ini | 41 +++----- 5 files changed, 25 insertions(+), 146 deletions(-) diff --git a/.github/workflows/test-integrations-tasks.yml b/.github/workflows/test-integrations-tasks.yml index d84789b767..f4c3632261 100644 --- a/.github/workflows/test-integrations-tasks.yml +++ b/.github/workflows/test-integrations-tasks.yml @@ -22,100 +22,6 @@ env: CACHED_BUILD_PATHS: | ${{ github.workspace }}/dist-serverless jobs: - test-tasks-latest: - name: Tasks (latest) - timeout-minutes: 30 - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - python-version: ["3.7","3.12","3.13"] - # python3.6 reached EOL and is no longer being supported on - # new versions of hosted runners on Github Actions - # ubuntu-20.04 is the last version that supported python3.6 - # see https://github.com/actions/setup-python/issues/544#issuecomment-1332535877 - os: [ubuntu-22.04] - # Use Docker container only for Python 3.6 - container: ${{ matrix.python-version == '3.6' && 'python:3.6' || null }} - steps: - - uses: actions/checkout@v5.0.0 - - uses: actions/setup-python@v6 - if: ${{ matrix.python-version != '3.6' }} - with: - python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - - name: Install Java - uses: actions/setup-java@v5 - with: - distribution: 'temurin' - java-version: '21' - - name: Setup Test Env - run: | - pip install "coverage[toml]" tox - - name: Erase coverage - run: | - coverage erase - - name: Test arq latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-arq-latest" - - name: Test beam latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-beam-latest" - - name: Test celery latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-celery-latest" - - name: Test dramatiq latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-dramatiq-latest" - - name: Test huey latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-huey-latest" - - name: Test ray latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-ray-latest" - - name: Test rq latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-rq-latest" - - name: Test spark latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-spark-latest" - - name: Generate coverage XML (Python 3.6) - if: ${{ !cancelled() && matrix.python-version == '3.6' }} - run: | - export COVERAGE_RCFILE=.coveragerc36 - coverage combine .coverage-sentry-* - coverage xml --ignore-errors - - name: Generate coverage XML - if: ${{ !cancelled() && matrix.python-version != '3.6' }} - run: | - coverage combine .coverage-sentry-* - coverage xml - - name: Upload coverage to Codecov - if: ${{ !cancelled() }} - uses: codecov/codecov-action@v5.5.1 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: coverage.xml - # make sure no plugins alter our coverage reports - plugins: noop - verbose: true - - name: Upload test results to Codecov - if: ${{ !cancelled() }} - uses: codecov/test-results-action@v1 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: .junitxml - verbose: true test-tasks-pinned: name: Tasks (pinned) timeout-minutes: 30 diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index cf8b9ae9dc..19fa916cd1 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -283,6 +283,16 @@ "requests": { "package": "requests", }, + "rq": { + "package": "rq", + "deps": { + # https://github.com/jamesls/fakeredis/issues/245 + "*": ["fakeredis<2.28.0"], + "<=0.6": ["fakeredis<1.0", "redis<3.2.2"], + "<=1.10": ["fakeredis>=1.0,<1.7.4"], + "py3.6,py3.7": ["fakeredis!=2.26.0"], + }, + }, "sanic": { "package": "sanic", "deps": { diff --git a/scripts/populate_tox/populate_tox.py b/scripts/populate_tox/populate_tox.py index afcef05438..5f4d1ce245 100644 --- a/scripts/populate_tox/populate_tox.py +++ b/scripts/populate_tox/populate_tox.py @@ -71,7 +71,6 @@ # of these from the IGNORE list "redis", "requests", - "rq", } diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 40980197ab..deefee903a 100755 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -63,13 +63,6 @@ envlist = # Requests {py3.6,py3.8,py3.12,py3.13}-requests - # RQ (Redis Queue) - {py3.6}-rq-v{0.6} - {py3.6,py3.9}-rq-v{0.13,1.0} - {py3.6,py3.11}-rq-v{1.5,1.10} - {py3.7,py3.11,py3.12}-rq-v{1.15,1.16} - {py3.7,py3.12,py3.13}-rq-latest - # === Integrations - Auto-generated === # These come from the populate_tox.py script. Eventually we should move all # integration tests there. @@ -150,24 +143,6 @@ deps = # Requests requests: requests>=2.0 - # RQ (Redis Queue) - # https://github.com/jamesls/fakeredis/issues/245 - rq-v{0.6}: fakeredis<1.0 - rq-v{0.6}: redis<3.2.2 - rq-v{0.13,1.0,1.5,1.10}: fakeredis>=1.0,<1.7.4 - rq-v{1.15,1.16}: fakeredis<2.28.0 - {py3.6,py3.7}-rq-v{1.15,1.16}: fakeredis!=2.26.0 # https://github.com/cunla/fakeredis-py/issues/341 - rq-latest: fakeredis<2.28.0 - {py3.6,py3.7}-rq-latest: fakeredis!=2.26.0 # https://github.com/cunla/fakeredis-py/issues/341 - rq-v0.6: rq~=0.6.0 - rq-v0.13: rq~=0.13.0 - rq-v1.0: rq~=1.0.0 - rq-v1.5: rq~=1.5.0 - rq-v1.10: rq~=1.10.0 - rq-v1.15: rq~=1.15.0 - rq-v1.16: rq~=1.16.0 - rq-latest: rq - # === Integrations - Auto-generated === # These come from the populate_tox.py script. Eventually we should move all # integration tests there. diff --git a/tox.ini b/tox.ini index b646228b7f..6465617eb0 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-18T10:42:56.677852+00:00 +# Last generated: 2025-09-18T10:59:06.031327+00:00 [tox] requires = @@ -63,13 +63,6 @@ envlist = # Requests {py3.6,py3.8,py3.12,py3.13}-requests - # RQ (Redis Queue) - {py3.6}-rq-v{0.6} - {py3.6,py3.9}-rq-v{0.13,1.0} - {py3.6,py3.11}-rq-v{1.5,1.10} - {py3.7,py3.11,py3.12}-rq-v{1.15,1.16} - {py3.7,py3.12,py3.13}-rq-latest - # === Integrations - Auto-generated === # These come from the populate_tox.py script. Eventually we should move all # integration tests there. @@ -230,6 +223,11 @@ envlist = {py3.9,py3.10}-ray-v2.7.2 {py3.9,py3.12,py3.13}-ray-v2.49.1 + {py3.6}-rq-v0.8.2 + {py3.6,py3.7}-rq-v0.13.0 + {py3.7,py3.11,py3.12}-rq-v1.16.2 + {py3.9,py3.12,py3.13}-rq-v2.6.0 + {py3.8,py3.9}-spark-v3.0.3 {py3.8,py3.10,py3.11}-spark-v3.5.6 {py3.9,py3.12,py3.13}-spark-v4.0.1 @@ -386,24 +384,6 @@ deps = # Requests requests: requests>=2.0 - # RQ (Redis Queue) - # https://github.com/jamesls/fakeredis/issues/245 - rq-v{0.6}: fakeredis<1.0 - rq-v{0.6}: redis<3.2.2 - rq-v{0.13,1.0,1.5,1.10}: fakeredis>=1.0,<1.7.4 - rq-v{1.15,1.16}: fakeredis<2.28.0 - {py3.6,py3.7}-rq-v{1.15,1.16}: fakeredis!=2.26.0 # https://github.com/cunla/fakeredis-py/issues/341 - rq-latest: fakeredis<2.28.0 - {py3.6,py3.7}-rq-latest: fakeredis!=2.26.0 # https://github.com/cunla/fakeredis-py/issues/341 - rq-v0.6: rq~=0.6.0 - rq-v0.13: rq~=0.13.0 - rq-v1.0: rq~=1.0.0 - rq-v1.5: rq~=1.5.0 - rq-v1.10: rq~=1.10.0 - rq-v1.15: rq~=1.15.0 - rq-v1.16: rq~=1.16.0 - rq-latest: rq - # === Integrations - Auto-generated === # These come from the populate_tox.py script. Eventually we should move all # integration tests there. @@ -616,6 +596,15 @@ deps = ray-v2.7.2: ray==2.7.2 ray-v2.49.1: ray==2.49.1 + rq-v0.8.2: rq==0.8.2 + rq-v0.13.0: rq==0.13.0 + rq-v1.16.2: rq==1.16.2 + rq-v2.6.0: rq==2.6.0 + rq: fakeredis<2.28.0 + rq-v0.8.2: fakeredis>=1.0,<1.7.4 + rq-v0.13.0: fakeredis>=1.0,<1.7.4 + {py3.6,py3.7}-rq: fakeredis!=2.26.0 + spark-v3.0.3: pyspark==3.0.3 spark-v3.5.6: pyspark==3.5.6 spark-v4.0.1: pyspark==4.0.1 From 4d39d8ed5b1cea36688324de7e65787aa228df31 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 18 Sep 2025 13:50:52 +0200 Subject: [PATCH 02/10] . --- scripts/populate_tox/config.py | 5 +++-- tox.ini | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 19fa916cd1..da05e635e0 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -287,9 +287,10 @@ "package": "rq", "deps": { # https://github.com/jamesls/fakeredis/issues/245 + # https://github.com/cunla/fakeredis-py/issues/341 "*": ["fakeredis<2.28.0"], - "<=0.6": ["fakeredis<1.0", "redis<3.2.2"], - "<=1.10": ["fakeredis>=1.0,<1.7.4"], + "<0.9": ["fakeredis<1.0", "redis<3.2.2"], + ">=1.10": ["fakeredis>=1.0,<1.7.4"], "py3.6,py3.7": ["fakeredis!=2.26.0"], }, }, diff --git a/tox.ini b/tox.ini index 6465617eb0..89f06dfcb0 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-18T10:59:06.031327+00:00 +# Last generated: 2025-09-18T11:40:38.663102+00:00 [tox] requires = @@ -601,8 +601,10 @@ deps = rq-v1.16.2: rq==1.16.2 rq-v2.6.0: rq==2.6.0 rq: fakeredis<2.28.0 - rq-v0.8.2: fakeredis>=1.0,<1.7.4 - rq-v0.13.0: fakeredis>=1.0,<1.7.4 + rq-v0.8.2: fakeredis<1.0 + rq-v0.8.2: redis<3.2.2 + rq-v1.16.2: fakeredis>=1.0,<1.7.4 + rq-v2.6.0: fakeredis>=1.0,<1.7.4 {py3.6,py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 From a535ab829d4e2d72578320914fbc2e75f5c68a11 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 18 Sep 2025 13:56:41 +0200 Subject: [PATCH 03/10] restrict to py37+ --- scripts/populate_tox/config.py | 3 ++- tox.ini | 12 +++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index da05e635e0..f8db03141a 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -291,8 +291,9 @@ "*": ["fakeredis<2.28.0"], "<0.9": ["fakeredis<1.0", "redis<3.2.2"], ">=1.10": ["fakeredis>=1.0,<1.7.4"], - "py3.6,py3.7": ["fakeredis!=2.26.0"], + "py3.7": ["fakeredis!=2.26.0"], }, + "python": ">=3.7", }, "sanic": { "package": "sanic", diff --git a/tox.ini b/tox.ini index 89f06dfcb0..91ca10e596 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-18T11:40:38.663102+00:00 +# Last generated: 2025-09-18T11:56:26.571384+00:00 [tox] requires = @@ -223,8 +223,8 @@ envlist = {py3.9,py3.10}-ray-v2.7.2 {py3.9,py3.12,py3.13}-ray-v2.49.1 - {py3.6}-rq-v0.8.2 - {py3.6,py3.7}-rq-v0.13.0 + {py3.7}-rq-v0.12.0 + {py3.7}-rq-v0.13.0 {py3.7,py3.11,py3.12}-rq-v1.16.2 {py3.9,py3.12,py3.13}-rq-v2.6.0 @@ -596,16 +596,14 @@ deps = ray-v2.7.2: ray==2.7.2 ray-v2.49.1: ray==2.49.1 - rq-v0.8.2: rq==0.8.2 + rq-v0.12.0: rq==0.12.0 rq-v0.13.0: rq==0.13.0 rq-v1.16.2: rq==1.16.2 rq-v2.6.0: rq==2.6.0 rq: fakeredis<2.28.0 - rq-v0.8.2: fakeredis<1.0 - rq-v0.8.2: redis<3.2.2 rq-v1.16.2: fakeredis>=1.0,<1.7.4 rq-v2.6.0: fakeredis>=1.0,<1.7.4 - {py3.6,py3.7}-rq: fakeredis!=2.26.0 + {py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 spark-v3.5.6: pyspark==3.5.6 From 2c1e267c3542fd8987a2057a0d7bb863dea39cd7 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 18 Sep 2025 15:29:08 +0200 Subject: [PATCH 04/10] . --- scripts/populate_tox/config.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index f8db03141a..da05e635e0 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -291,9 +291,8 @@ "*": ["fakeredis<2.28.0"], "<0.9": ["fakeredis<1.0", "redis<3.2.2"], ">=1.10": ["fakeredis>=1.0,<1.7.4"], - "py3.7": ["fakeredis!=2.26.0"], + "py3.6,py3.7": ["fakeredis!=2.26.0"], }, - "python": ">=3.7", }, "sanic": { "package": "sanic", From 78c548747524961b0bd5fc12405612dac4f54459 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 18 Sep 2025 15:32:22 +0200 Subject: [PATCH 05/10] . --- tox.ini | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tox.ini b/tox.ini index 91ca10e596..f6a45f286d 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-18T11:56:26.571384+00:00 +# Last generated: 2025-09-18T13:30:59.158316+00:00 [tox] requires = @@ -223,8 +223,8 @@ envlist = {py3.9,py3.10}-ray-v2.7.2 {py3.9,py3.12,py3.13}-ray-v2.49.1 - {py3.7}-rq-v0.12.0 - {py3.7}-rq-v0.13.0 + {py3.6}-rq-v0.8.2 + {py3.6,py3.7}-rq-v0.13.0 {py3.7,py3.11,py3.12}-rq-v1.16.2 {py3.9,py3.12,py3.13}-rq-v2.6.0 @@ -596,14 +596,16 @@ deps = ray-v2.7.2: ray==2.7.2 ray-v2.49.1: ray==2.49.1 - rq-v0.12.0: rq==0.12.0 + rq-v0.8.2: rq==0.8.2 rq-v0.13.0: rq==0.13.0 rq-v1.16.2: rq==1.16.2 rq-v2.6.0: rq==2.6.0 rq: fakeredis<2.28.0 + rq-v0.8.2: fakeredis<1.0 + rq-v0.8.2: redis<3.2.2 rq-v1.16.2: fakeredis>=1.0,<1.7.4 rq-v2.6.0: fakeredis>=1.0,<1.7.4 - {py3.7}-rq: fakeredis!=2.26.0 + {py3.6,py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 spark-v3.5.6: pyspark==3.5.6 From e8d362351d06bcb4094f6d0b2cbf681f96480a71 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 18 Sep 2025 16:14:07 +0200 Subject: [PATCH 06/10] . --- scripts/populate_tox/config.py | 4 ++-- tox.ini | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index da05e635e0..95d22988c4 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -289,8 +289,8 @@ # https://github.com/jamesls/fakeredis/issues/245 # https://github.com/cunla/fakeredis-py/issues/341 "*": ["fakeredis<2.28.0"], - "<0.9": ["fakeredis<1.0", "redis<3.2.2"], - ">=1.10": ["fakeredis>=1.0,<1.7.4"], + "<0.7": ["fakeredis<1.0", "redis<3.2.2"], + ">=0.7,<1.11": ["fakeredis>=1.0,<1.7.4"], "py3.6,py3.7": ["fakeredis!=2.26.0"], }, }, diff --git a/tox.ini b/tox.ini index f6a45f286d..b7ea769e55 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-18T13:30:59.158316+00:00 +# Last generated: 2025-09-18T14:11:30.938046+00:00 [tox] requires = @@ -601,10 +601,8 @@ deps = rq-v1.16.2: rq==1.16.2 rq-v2.6.0: rq==2.6.0 rq: fakeredis<2.28.0 - rq-v0.8.2: fakeredis<1.0 - rq-v0.8.2: redis<3.2.2 - rq-v1.16.2: fakeredis>=1.0,<1.7.4 - rq-v2.6.0: fakeredis>=1.0,<1.7.4 + rq-v0.8.2: fakeredis>=1.0,<1.7.4 + rq-v0.13.0: fakeredis>=1.0,<1.7.4 {py3.6,py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 From f32df6da386d5529f2679b5c1da8a434edf6d01c Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 18 Sep 2025 17:33:36 +0200 Subject: [PATCH 07/10] . --- scripts/populate_tox/config.py | 3 ++- tox.ini | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 95d22988c4..4f2790792e 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -291,8 +291,9 @@ "*": ["fakeredis<2.28.0"], "<0.7": ["fakeredis<1.0", "redis<3.2.2"], ">=0.7,<1.11": ["fakeredis>=1.0,<1.7.4"], - "py3.6,py3.7": ["fakeredis!=2.26.0"], + "py3.7": ["fakeredis!=2.26.0"], }, + "python": ">=3.7", }, "sanic": { "package": "sanic", diff --git a/tox.ini b/tox.ini index b7ea769e55..7164150a13 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-18T14:11:30.938046+00:00 +# Last generated: 2025-09-18T15:33:18.721032+00:00 [tox] requires = @@ -223,8 +223,8 @@ envlist = {py3.9,py3.10}-ray-v2.7.2 {py3.9,py3.12,py3.13}-ray-v2.49.1 - {py3.6}-rq-v0.8.2 - {py3.6,py3.7}-rq-v0.13.0 + {py3.7}-rq-v0.12.0 + {py3.7}-rq-v0.13.0 {py3.7,py3.11,py3.12}-rq-v1.16.2 {py3.9,py3.12,py3.13}-rq-v2.6.0 @@ -596,14 +596,14 @@ deps = ray-v2.7.2: ray==2.7.2 ray-v2.49.1: ray==2.49.1 - rq-v0.8.2: rq==0.8.2 + rq-v0.12.0: rq==0.12.0 rq-v0.13.0: rq==0.13.0 rq-v1.16.2: rq==1.16.2 rq-v2.6.0: rq==2.6.0 rq: fakeredis<2.28.0 - rq-v0.8.2: fakeredis>=1.0,<1.7.4 + rq-v0.12.0: fakeredis>=1.0,<1.7.4 rq-v0.13.0: fakeredis>=1.0,<1.7.4 - {py3.6,py3.7}-rq: fakeredis!=2.26.0 + {py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 spark-v3.5.6: pyspark==3.5.6 From 60db8c2aa0419073338c62e5642914d3c27f9864 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Fri, 19 Sep 2025 11:09:31 +0200 Subject: [PATCH 08/10] trying smth --- scripts/populate_tox/config.py | 7 +++---- tox.ini | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 4f2790792e..058989d1df 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -289,11 +289,10 @@ # https://github.com/jamesls/fakeredis/issues/245 # https://github.com/cunla/fakeredis-py/issues/341 "*": ["fakeredis<2.28.0"], - "<0.7": ["fakeredis<1.0", "redis<3.2.2"], - ">=0.7,<1.11": ["fakeredis>=1.0,<1.7.4"], - "py3.7": ["fakeredis!=2.26.0"], + "<0.9": ["fakeredis<1.0", "redis<3.2.2"], + # ">=0.7,<1.11": ["fakeredis>=1.0,<1.7.4"], + "py3.6,py3.7": ["fakeredis!=2.26.0"], }, - "python": ">=3.7", }, "sanic": { "package": "sanic", diff --git a/tox.ini b/tox.ini index 7164150a13..c1ca118a7e 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-18T15:33:18.721032+00:00 +# Last generated: 2025-09-19T09:07:09.328841+00:00 [tox] requires = @@ -102,7 +102,7 @@ envlist = {py3.10,py3.11,py3.12}-openai_agents-v0.0.19 {py3.10,py3.12,py3.13}-openai_agents-v0.1.0 {py3.10,py3.12,py3.13}-openai_agents-v0.2.11 - {py3.10,py3.12,py3.13}-openai_agents-v0.3.0 + {py3.10,py3.12,py3.13}-openai_agents-v0.3.1 {py3.8,py3.10,py3.11}-huggingface_hub-v0.24.7 {py3.8,py3.12,py3.13}-huggingface_hub-v0.28.1 @@ -114,7 +114,7 @@ envlist = {py3.6,py3.7}-boto3-v1.12.49 {py3.6,py3.9,py3.10}-boto3-v1.20.54 {py3.7,py3.11,py3.12}-boto3-v1.28.85 - {py3.9,py3.12,py3.13}-boto3-v1.40.33 + {py3.9,py3.12,py3.13}-boto3-v1.40.34 {py3.6,py3.7,py3.8}-chalice-v1.16.0 {py3.6,py3.7,py3.8}-chalice-v1.21.9 @@ -223,8 +223,8 @@ envlist = {py3.9,py3.10}-ray-v2.7.2 {py3.9,py3.12,py3.13}-ray-v2.49.1 - {py3.7}-rq-v0.12.0 - {py3.7}-rq-v0.13.0 + {py3.6}-rq-v0.8.2 + {py3.6,py3.7}-rq-v0.13.0 {py3.7,py3.11,py3.12}-rq-v1.16.2 {py3.9,py3.12,py3.13}-rq-v2.6.0 @@ -440,7 +440,7 @@ deps = openai_agents-v0.0.19: openai-agents==0.0.19 openai_agents-v0.1.0: openai-agents==0.1.0 openai_agents-v0.2.11: openai-agents==0.2.11 - openai_agents-v0.3.0: openai-agents==0.3.0 + openai_agents-v0.3.1: openai-agents==0.3.1 openai_agents: pytest-asyncio huggingface_hub-v0.24.7: huggingface_hub==0.24.7 @@ -454,7 +454,7 @@ deps = boto3-v1.12.49: boto3==1.12.49 boto3-v1.20.54: boto3==1.20.54 boto3-v1.28.85: boto3==1.28.85 - boto3-v1.40.33: boto3==1.40.33 + boto3-v1.40.34: boto3==1.40.34 {py3.7,py3.8}-boto3: urllib3<2.0.0 chalice-v1.16.0: chalice==1.16.0 @@ -596,14 +596,14 @@ deps = ray-v2.7.2: ray==2.7.2 ray-v2.49.1: ray==2.49.1 - rq-v0.12.0: rq==0.12.0 + rq-v0.8.2: rq==0.8.2 rq-v0.13.0: rq==0.13.0 rq-v1.16.2: rq==1.16.2 rq-v2.6.0: rq==2.6.0 rq: fakeredis<2.28.0 - rq-v0.12.0: fakeredis>=1.0,<1.7.4 - rq-v0.13.0: fakeredis>=1.0,<1.7.4 - {py3.7}-rq: fakeredis!=2.26.0 + rq-v0.8.2: fakeredis<1.0 + rq-v0.8.2: redis<3.2.2 + {py3.6,py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 spark-v3.5.6: pyspark==3.5.6 From 9e1abcff8a6c27428378bce92febdb9889267af7 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Fri, 19 Sep 2025 12:37:31 +0200 Subject: [PATCH 09/10] should be it??? --- scripts/populate_tox/config.py | 2 +- tox.ini | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 058989d1df..99add761c3 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -290,7 +290,7 @@ # https://github.com/cunla/fakeredis-py/issues/341 "*": ["fakeredis<2.28.0"], "<0.9": ["fakeredis<1.0", "redis<3.2.2"], - # ">=0.7,<1.11": ["fakeredis>=1.0,<1.7.4"], + ">=0.9,<0.14": ["fakeredis>=1.0,<1.7.4"], "py3.6,py3.7": ["fakeredis!=2.26.0"], }, }, diff --git a/tox.ini b/tox.ini index c1ca118a7e..c7880f6110 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-19T09:07:09.328841+00:00 +# Last generated: 2025-09-19T10:37:11.055880+00:00 [tox] requires = @@ -603,6 +603,7 @@ deps = rq: fakeredis<2.28.0 rq-v0.8.2: fakeredis<1.0 rq-v0.8.2: redis<3.2.2 + rq-v0.13.0: fakeredis>=1.0,<1.7.4 {py3.6,py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 From ecd8e25a4b9d3abdd1ba24224f2407eb15b0af7e Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Fri, 19 Sep 2025 13:35:04 +0200 Subject: [PATCH 10/10] tests: Move redis under toxgen (#4824) Moved redis under toxgen, effectively moving the whole DBs group away from the old system. Ref https://github.com/getsentry/sentry-python/issues/4506 - Please add tests to validate your changes, and lint your code using `tox -e linters`. - Add GH Issue ID _&_ Linear ID (if applicable) - PR title should use [conventional commit](https://develop.sentry.dev/engineering-practices/commit-messages/#type) style (`feat:`, `fix:`, `ref:`, `meta:`) - For external contributors: [CONTRIBUTING.md](https://github.com/getsentry/sentry-python/blob/master/CONTRIBUTING.md), [Sentry SDK development docs](https://develop.sentry.dev/sdk/), [Discord community](https://discord.gg/Ww9hbqr) --- .github/workflows/test-integrations-dbs.yml | 99 --------------------- scripts/populate_tox/config.py | 9 ++ scripts/populate_tox/populate_tox.py | 1 - scripts/populate_tox/tox.jinja | 17 ---- tox.ini | 38 ++++---- 5 files changed, 29 insertions(+), 135 deletions(-) diff --git a/.github/workflows/test-integrations-dbs.yml b/.github/workflows/test-integrations-dbs.yml index efa9f8db39..d5edba3105 100644 --- a/.github/workflows/test-integrations-dbs.yml +++ b/.github/workflows/test-integrations-dbs.yml @@ -22,105 +22,6 @@ env: CACHED_BUILD_PATHS: | ${{ github.workspace }}/dist-serverless jobs: - test-dbs-latest: - name: DBs (latest) - timeout-minutes: 30 - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - python-version: ["3.7","3.12","3.13"] - # python3.6 reached EOL and is no longer being supported on - # new versions of hosted runners on Github Actions - # ubuntu-20.04 is the last version that supported python3.6 - # see https://github.com/actions/setup-python/issues/544#issuecomment-1332535877 - os: [ubuntu-22.04] - services: - postgres: - image: postgres - env: - POSTGRES_PASSWORD: sentry - # Set health checks to wait until postgres has started - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - # Maps tcp port 5432 on service container to the host - ports: - - 5432:5432 - env: - SENTRY_PYTHON_TEST_POSTGRES_HOST: ${{ matrix.python-version == '3.6' && 'postgres' || 'localhost' }} - SENTRY_PYTHON_TEST_POSTGRES_USER: postgres - SENTRY_PYTHON_TEST_POSTGRES_PASSWORD: sentry - # Use Docker container only for Python 3.6 - container: ${{ matrix.python-version == '3.6' && 'python:3.6' || null }} - steps: - - uses: actions/checkout@v5.0.0 - - uses: actions/setup-python@v6 - if: ${{ matrix.python-version != '3.6' }} - with: - python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: "Setup ClickHouse Server" - uses: getsentry/action-clickhouse-in-ci@v1.6 - - name: Setup Test Env - run: | - pip install "coverage[toml]" tox - - name: Erase coverage - run: | - coverage erase - - name: Test asyncpg latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-asyncpg-latest" - - name: Test clickhouse_driver latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-clickhouse_driver-latest" - - name: Test pymongo latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-pymongo-latest" - - name: Test redis latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-redis-latest" - - name: Test redis_py_cluster_legacy latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-redis_py_cluster_legacy-latest" - - name: Test sqlalchemy latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-sqlalchemy-latest" - - name: Generate coverage XML (Python 3.6) - if: ${{ !cancelled() && matrix.python-version == '3.6' }} - run: | - export COVERAGE_RCFILE=.coveragerc36 - coverage combine .coverage-sentry-* - coverage xml --ignore-errors - - name: Generate coverage XML - if: ${{ !cancelled() && matrix.python-version != '3.6' }} - run: | - coverage combine .coverage-sentry-* - coverage xml - - name: Upload coverage to Codecov - if: ${{ !cancelled() }} - uses: codecov/codecov-action@v5.5.1 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: coverage.xml - # make sure no plugins alter our coverage reports - plugins: noop - verbose: true - - name: Upload test results to Codecov - if: ${{ !cancelled() }} - uses: codecov/test-results-action@v1 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: .junitxml - verbose: true test-dbs-pinned: name: DBs (pinned) timeout-minutes: 30 diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 99add761c3..7d6a519b6b 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -277,6 +277,15 @@ "python": ">=3.9", "num_versions": 2, }, + "redis": { + "package": "redis", + "deps": { + "*": ["fakeredis!=1.7.4", "pytest<8.0.0"], + ">=4.0,<5.0": ["fakeredis<2.31.0"], + "py3.6,py3.7,py3.8": ["fakeredis<2.26.0"], + "py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13": ["pytest-asyncio"], + }, + }, "redis_py_cluster_legacy": { "package": "redis-py-cluster", }, diff --git a/scripts/populate_tox/populate_tox.py b/scripts/populate_tox/populate_tox.py index 5f4d1ce245..1ca9319c2e 100644 --- a/scripts/populate_tox/populate_tox.py +++ b/scripts/populate_tox/populate_tox.py @@ -69,7 +69,6 @@ "potel", # Integrations that can be migrated -- we should eventually remove all # of these from the IGNORE list - "redis", "requests", } diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index deefee903a..6931b64cfc 100755 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -54,12 +54,6 @@ envlist = # OpenTelemetry Experimental (POTel) {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-potel - # Redis - {py3.6,py3.8}-redis-v{3} - {py3.7,py3.8,py3.11}-redis-v{4} - {py3.7,py3.11,py3.12}-redis-v{5} - {py3.7,py3.12,py3.13}-redis-latest - # Requests {py3.6,py3.8,py3.12,py3.13}-requests @@ -129,17 +123,6 @@ deps = # OpenTelemetry Experimental (POTel) potel: -e .[opentelemetry-experimental] - # Redis - redis: fakeredis!=1.7.4 - redis: pytest<8.0.0 - {py3.6,py3.7,py3.8}-redis: fakeredis<2.26.0 - {py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-redis: pytest-asyncio - redis-v3: redis~=3.0 - redis-v4: redis~=4.0 - redis-v4: fakeredis<2.31.0 - redis-v5: redis~=5.0 - redis-latest: redis - # Requests requests: requests>=2.0 diff --git a/tox.ini b/tox.ini index c7880f6110..62165740bc 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-19T10:37:11.055880+00:00 +# Last generated: 2025-09-19T11:34:58.332922+00:00 [tox] requires = @@ -54,12 +54,6 @@ envlist = # OpenTelemetry Experimental (POTel) {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-potel - # Redis - {py3.6,py3.8}-redis-v{3} - {py3.7,py3.8,py3.11}-redis-v{4} - {py3.7,py3.11,py3.12}-redis-v{5} - {py3.7,py3.12,py3.13}-redis-latest - # Requests {py3.6,py3.8,py3.12,py3.13}-requests @@ -134,6 +128,13 @@ envlist = {py3.6,py3.10,py3.11}-pymongo-v3.13.0 {py3.9,py3.12,py3.13}-pymongo-v4.15.1 + {py3.6}-redis-v2.10.6 + {py3.6,py3.7,py3.8}-redis-v3.5.3 + {py3.7,py3.10,py3.11}-redis-v4.6.0 + {py3.8,py3.11,py3.12}-redis-v5.3.1 + {py3.9,py3.12,py3.13}-redis-v6.4.0 + {py3.9,py3.12,py3.13}-redis-v7.0.0b1 + {py3.6}-redis_py_cluster_legacy-v1.3.6 {py3.6,py3.7,py3.8}-redis_py_cluster_legacy-v2.1.3 @@ -370,17 +371,6 @@ deps = # OpenTelemetry Experimental (POTel) potel: -e .[opentelemetry-experimental] - # Redis - redis: fakeredis!=1.7.4 - redis: pytest<8.0.0 - {py3.6,py3.7,py3.8}-redis: fakeredis<2.26.0 - {py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-redis: pytest-asyncio - redis-v3: redis~=3.0 - redis-v4: redis~=4.0 - redis-v4: fakeredis<2.31.0 - redis-v5: redis~=5.0 - redis-latest: redis - # Requests requests: requests>=2.0 @@ -478,6 +468,18 @@ deps = pymongo-v4.15.1: pymongo==4.15.1 pymongo: mockupdb + redis-v2.10.6: redis==2.10.6 + redis-v3.5.3: redis==3.5.3 + redis-v4.6.0: redis==4.6.0 + redis-v5.3.1: redis==5.3.1 + redis-v6.4.0: redis==6.4.0 + redis-v7.0.0b1: redis==7.0.0b1 + redis: fakeredis!=1.7.4 + redis: pytest<8.0.0 + redis-v4.6.0: fakeredis<2.31.0 + {py3.6,py3.7,py3.8}-redis: fakeredis<2.26.0 + {py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-redis: pytest-asyncio + redis_py_cluster_legacy-v1.3.6: redis-py-cluster==1.3.6 redis_py_cluster_legacy-v2.1.3: redis-py-cluster==2.1.3