diff --git a/.github/workflows/test-integrations-flags.yml b/.github/workflows/test-integrations-flags.yml index f56e1a082a..ad344762ae 100644 --- a/.github/workflows/test-integrations-flags.yml +++ b/.github/workflows/test-integrations-flags.yml @@ -22,74 +22,6 @@ env: CACHED_BUILD_PATHS: | ${{ github.workspace }}/dist-serverless jobs: - test-flags-latest: - name: Flags (latest) - timeout-minutes: 30 - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - python-version: ["3.8","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-20.04] - steps: - - uses: actions/checkout@v4.2.2 - - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: Setup Test Env - run: | - pip install "coverage[toml]" tox - - name: Erase coverage - run: | - coverage erase - - name: Test launchdarkly latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-launchdarkly-latest" - - name: Test openfeature latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-openfeature-latest" - - name: Test statsig latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-statsig-latest" - - name: Test unleash latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-unleash-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.3.1 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: coverage.xml - # make sure no plugins alter our coverage reports - plugin: 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-flags-pinned: name: Flags (pinned) timeout-minutes: 30 @@ -97,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8","3.12","3.13"] + python-version: ["3.7","3.8","3.9","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 diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 8cdd36c05d..402ecf7a82 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -23,10 +23,25 @@ "py3.6": ["aiocontextvars"], }, }, + "launchdarkly": { + "package": "launchdarkly-server-sdk", + }, + "openfeature": { + "package": "openfeature-sdk", + }, + "statsig": { + "package": "statsig", + "deps": { + "*": ["typing_extensions"], + }, + }, "strawberry": { "package": "strawberry-graphql[fastapi,flask]", "deps": { "*": ["httpx"], }, }, + "unleash": { + "package": "UnleashClient", + }, } diff --git a/scripts/populate_tox/populate_tox.py b/scripts/populate_tox/populate_tox.py index fe6d9d216a..b8969b8987 100644 --- a/scripts/populate_tox/populate_tox.py +++ b/scripts/populate_tox/populate_tox.py @@ -77,12 +77,10 @@ "huggingface_hub", "langchain", "langchain_notiktoken", - "launchdarkly", "litestar", "loguru", "openai", "openai_notiktoken", - "openfeature", "pure_eval", "pymongo", "pyramid", @@ -96,12 +94,10 @@ "spark", "starlette", "starlite", - "statsig", "sqlalchemy", "tornado", "trytond", "typer", - "unleash", } diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 5d8a931aec..8086411f7b 100644 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -163,10 +163,6 @@ envlist = {py3.9,py3.11,py3.12}-langchain-latest {py3.9,py3.11,py3.12}-langchain-notiktoken - # LaunchDarkly - {py3.8,py3.12,py3.13}-launchdarkly-v9.8.0 - {py3.8,py3.12,py3.13}-launchdarkly-latest - # Litestar {py3.8,py3.11}-litestar-v{2.0} {py3.8,py3.11,py3.12}-litestar-v{2.6} @@ -184,10 +180,6 @@ envlist = {py3.9,py3.11,py3.12}-openai-latest {py3.9,py3.11,py3.12}-openai-notiktoken - # OpenFeature - {py3.8,py3.12,py3.13}-openfeature-v0.7 - {py3.8,py3.12,py3.13}-openfeature-latest - # OpenTelemetry (OTel) {py3.7,py3.9,py3.12,py3.13}-opentelemetry @@ -259,10 +251,6 @@ envlist = {py3.8,py3.11}-starlite-v{1.48,1.51} # 1.51.14 is the last starlite version; the project continues as litestar - # Statsig - {py3.8,py3.12,py3.13}-statsig-v0.55.3 - {py3.8,py3.12,py3.13}-statsig-latest - # SQL Alchemy {py3.6,py3.9}-sqlalchemy-v{1.2,1.4} {py3.7,py3.11}-sqlalchemy-v{2.0} @@ -284,10 +272,6 @@ envlist = {py3.7,py3.12,py3.13}-typer-v{0.15} {py3.7,py3.12,py3.13}-typer-latest - # Unleash - {py3.8,py3.12,py3.13}-unleash-v6.0.1 - {py3.8,py3.12,py3.13}-unleash-latest - # === Integrations - Auto-generated === # These come from the populate_tox.py script. Eventually we should move all # integration tests there. @@ -557,18 +541,6 @@ deps = openai-latest: tiktoken~=0.6.0 openai-notiktoken: openai - # OpenFeature - openfeature-v0.7: openfeature-sdk~=0.7.1 - openfeature-latest: openfeature-sdk - - # LaunchDarkly - launchdarkly-v9.8.0: launchdarkly-server-sdk~=9.8.0 - launchdarkly-latest: launchdarkly-server-sdk - - # Unleash - unleash-v6.0.1: UnleashClient~=6.0.1 - unleash-latest: UnleashClient - # OpenTelemetry (OTel) opentelemetry: opentelemetry-distro @@ -693,11 +665,6 @@ deps = starlite-v{1.48}: starlite~=1.48.0 starlite-v{1.51}: starlite~=1.51.0 - # Statsig - statsig: typing_extensions - statsig-v0.55.3: statsig~=0.55.3 - statsig-latest: statsig - # SQLAlchemy sqlalchemy-v1.2: sqlalchemy~=1.2.0 sqlalchemy-v1.4: sqlalchemy~=1.4.0 diff --git a/tox.ini b/tox.ini index 4fb410568d..b8d1e6a74e 100644 --- a/tox.ini +++ b/tox.ini @@ -163,10 +163,6 @@ envlist = {py3.9,py3.11,py3.12}-langchain-latest {py3.9,py3.11,py3.12}-langchain-notiktoken - # LaunchDarkly - {py3.8,py3.12,py3.13}-launchdarkly-v9.8.0 - {py3.8,py3.12,py3.13}-launchdarkly-latest - # Litestar {py3.8,py3.11}-litestar-v{2.0} {py3.8,py3.11,py3.12}-litestar-v{2.6} @@ -184,10 +180,6 @@ envlist = {py3.9,py3.11,py3.12}-openai-latest {py3.9,py3.11,py3.12}-openai-notiktoken - # OpenFeature - {py3.8,py3.12,py3.13}-openfeature-v0.7 - {py3.8,py3.12,py3.13}-openfeature-latest - # OpenTelemetry (OTel) {py3.7,py3.9,py3.12,py3.13}-opentelemetry @@ -259,10 +251,6 @@ envlist = {py3.8,py3.11}-starlite-v{1.48,1.51} # 1.51.14 is the last starlite version; the project continues as litestar - # Statsig - {py3.8,py3.12,py3.13}-statsig-v0.55.3 - {py3.8,py3.12,py3.13}-statsig-latest - # SQL Alchemy {py3.6,py3.9}-sqlalchemy-v{1.2,1.4} {py3.7,py3.11}-sqlalchemy-v{2.0} @@ -284,14 +272,24 @@ envlist = {py3.7,py3.12,py3.13}-typer-v{0.15} {py3.7,py3.12,py3.13}-typer-latest - # Unleash - {py3.8,py3.12,py3.13}-unleash-v6.0.1 - {py3.8,py3.12,py3.13}-unleash-latest - # === Integrations - Auto-generated === # These come from the populate_tox.py script. Eventually we should move all # integration tests there. + # ~~~ Flags ~~~ + {py3.8,py3.12,py3.13}-launchdarkly-v9.8.1 + {py3.8,py3.12,py3.13}-launchdarkly-v9.9.0 + + {py3.8,py3.12,py3.13}-openfeature-v0.7.5 + {py3.9,py3.12,py3.13}-openfeature-v0.8.0 + + {py3.7,py3.12,py3.13}-statsig-v0.55.3 + {py3.7,py3.12,py3.13}-statsig-v0.56.0 + + {py3.8,py3.12,py3.13}-unleash-v6.0.1 + {py3.8,py3.12,py3.13}-unleash-v6.1.0 + + # ~~~ GraphQL ~~~ {py3.8,py3.10,py3.11}-ariadne-v0.20.1 {py3.8,py3.11,py3.12}-ariadne-v0.22 @@ -307,7 +305,7 @@ envlist = {py3.8,py3.10,py3.11}-strawberry-v0.209.8 {py3.8,py3.11,py3.12}-strawberry-v0.226.2 {py3.8,py3.11,py3.12}-strawberry-v0.243.1 - {py3.9,py3.12,py3.13}-strawberry-v0.260.0 + {py3.9,py3.12,py3.13}-strawberry-v0.260.1 @@ -565,18 +563,6 @@ deps = openai-latest: tiktoken~=0.6.0 openai-notiktoken: openai - # OpenFeature - openfeature-v0.7: openfeature-sdk~=0.7.1 - openfeature-latest: openfeature-sdk - - # LaunchDarkly - launchdarkly-v9.8.0: launchdarkly-server-sdk~=9.8.0 - launchdarkly-latest: launchdarkly-server-sdk - - # Unleash - unleash-v6.0.1: UnleashClient~=6.0.1 - unleash-latest: UnleashClient - # OpenTelemetry (OTel) opentelemetry: opentelemetry-distro @@ -701,11 +687,6 @@ deps = starlite-v{1.48}: starlite~=1.48.0 starlite-v{1.51}: starlite~=1.51.0 - # Statsig - statsig: typing_extensions - statsig-v0.55.3: statsig~=0.55.3 - statsig-latest: statsig - # SQLAlchemy sqlalchemy-v1.2: sqlalchemy~=1.2.0 sqlalchemy-v1.4: sqlalchemy~=1.4.0 @@ -737,6 +718,21 @@ deps = # These come from the populate_tox.py script. Eventually we should move all # integration tests there. + # ~~~ Flags ~~~ + launchdarkly-v9.8.1: launchdarkly-server-sdk==9.8.1 + launchdarkly-v9.9.0: launchdarkly-server-sdk==9.9.0 + + openfeature-v0.7.5: openfeature-sdk==0.7.5 + openfeature-v0.8.0: openfeature-sdk==0.8.0 + + statsig-v0.55.3: statsig==0.55.3 + statsig-v0.56.0: statsig==0.56.0 + statsig: typing_extensions + + unleash-v6.0.1: UnleashClient==6.0.1 + unleash-v6.1.0: UnleashClient==6.1.0 + + # ~~~ GraphQL ~~~ ariadne-v0.20.1: ariadne==0.20.1 ariadne-v0.22: ariadne==0.22 @@ -760,7 +756,7 @@ deps = strawberry-v0.209.8: strawberry-graphql[fastapi,flask]==0.209.8 strawberry-v0.226.2: strawberry-graphql[fastapi,flask]==0.226.2 strawberry-v0.243.1: strawberry-graphql[fastapi,flask]==0.243.1 - strawberry-v0.260.0: strawberry-graphql[fastapi,flask]==0.260.0 + strawberry-v0.260.1: strawberry-graphql[fastapi,flask]==0.260.1 strawberry: httpx