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 cf8b9ae9dc..87f181c6e3 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 afcef05438..5a44baec24 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", "rq", } diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 40980197ab..f8112b7ff5 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 @@ -136,17 +130,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 b646228b7f..9e864dd76d 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-19T10:59:45.339459+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 @@ -109,7 +103,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 @@ -121,7 +115,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 @@ -141,6 +135,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 @@ -372,17 +373,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 @@ -460,7 +450,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 @@ -474,7 +464,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 @@ -498,6 +488,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