Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use a script to populate parts of tox.ini #3920

Closed
wants to merge 79 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
f54a018
Use a script to populate parts of tox.ini
sentrivana Jan 13, 2025
9c829da
ignore everything for starters
sentrivana Jan 13, 2025
c365900
fix
sentrivana Jan 13, 2025
cb7a0aa
.
sentrivana Jan 13, 2025
51de6a2
add more min versions
sentrivana Jan 13, 2025
33e66b2
.
sentrivana Jan 13, 2025
153bae2
try ariadne
sentrivana Jan 13, 2025
d4d44b1
try aiohttp
sentrivana Jan 13, 2025
fbe73b8
Merge branch 'master' into ivana/populate-tox-step-by-step
sentrivana Jan 13, 2025
6c2edd0
try anthropic
sentrivana Jan 13, 2025
7470a9b
.
sentrivana Jan 13, 2025
16a4ba2
?
sentrivana Jan 13, 2025
ec3d9cb
try arq
sentrivana Jan 13, 2025
04a2ab6
asyncpg
sentrivana Jan 13, 2025
b44f195
rename
sentrivana Jan 14, 2025
a1e7da7
Merge branch 'master' into ivana/populate-tox-step-by-step
sentrivana Jan 14, 2025
8345859
lets see
sentrivana Jan 14, 2025
971d4ab
replicate py versions
sentrivana Jan 14, 2025
fe62214
.
sentrivana Jan 14, 2025
15fa2d2
beam
sentrivana Jan 14, 2025
e0e6b20
bottle
sentrivana Jan 14, 2025
e14f2c4
Merge branch 'master' into ivana/populate-tox-step-by-step
sentrivana Jan 14, 2025
b8d29b3
try boto
sentrivana Jan 14, 2025
c6f1c65
celery
sentrivana Jan 14, 2025
97a7ae7
chalice
sentrivana Jan 16, 2025
875fa6e
clickhouse
sentrivana Jan 16, 2025
7ed6109
dramatiq
sentrivana Jan 16, 2025
5c05100
falcon
sentrivana Jan 16, 2025
267dc07
falcon fix
sentrivana Jan 16, 2025
5cff258
fastapi
sentrivana Jan 16, 2025
e392825
better py version picking
sentrivana Jan 16, 2025
30effcf
Merge branch 'master' into ivana/populate-tox-step-by-step
sentrivana Jan 16, 2025
912c981
celery, flask
sentrivana Jan 16, 2025
7d45cc6
metata lol
sentrivana Jan 16, 2025
6d0ab22
lets try...
sentrivana Jan 16, 2025
f60018e
dramatiq v2
sentrivana Jan 16, 2025
c4dab11
add lower version for dramatiq
sentrivana Jan 16, 2025
1068830
huey
sentrivana Jan 16, 2025
67502e7
huggingface
sentrivana Jan 16, 2025
91ea137
whitespace
sentrivana Jan 16, 2025
fcfb731
gql, langchains
sentrivana Jan 16, 2025
37d0e25
launchdarkly, pyramid
sentrivana Jan 16, 2025
a96e1a4
pymongo
sentrivana Jan 16, 2025
ef0af89
quart, ray
sentrivana Jan 16, 2025
b37519b
try
sentrivana Jan 16, 2025
659d859
starlite, strawberry, redis_py_cluster
sentrivana Jan 16, 2025
f23c8be
unleash, typer
sentrivana Jan 16, 2025
e330704
.
sentrivana Jan 16, 2025
26638a5
fixes, hopefully
sentrivana Jan 16, 2025
bb4c84e
try
sentrivana Jan 16, 2025
beb2271
requests
sentrivana Jan 16, 2025
dca044e
tornado, sqlalchemy
sentrivana Jan 16, 2025
9f2ce18
fix
sentrivana Jan 17, 2025
9c45ece
loguru
sentrivana Jan 17, 2025
dd2a531
sanic, starlette
sentrivana Jan 17, 2025
6927592
try to fix starlette
sentrivana Jan 17, 2025
1ae16bf
graphene, spark
sentrivana Jan 17, 2025
6176ea5
grpc, openfeature, fix graphene
sentrivana Jan 17, 2025
b17e51d
.
sentrivana Jan 17, 2025
6ef2e19
aiohttp, trytond
sentrivana Jan 17, 2025
82b8a60
anthropic
sentrivana Jan 17, 2025
0adedc7
revert anthropic
sentrivana Jan 17, 2025
b0a0772
docs
sentrivana Jan 17, 2025
d7721ad
fail-on-changes
sentrivana Jan 17, 2025
057a1dc
readme
sentrivana Jan 17, 2025
5b9da4b
run split tox too
sentrivana Jan 17, 2025
10f96a7
trying something with httpx
sentrivana Jan 17, 2025
26fcd99
.
sentrivana Jan 17, 2025
ce869ec
.
sentrivana Jan 17, 2025
d9eead4
...
sentrivana Jan 17, 2025
e54e888
....
sentrivana Jan 17, 2025
8b11b74
.....?
sentrivana Jan 17, 2025
feca999
......
sentrivana Jan 17, 2025
975862c
fix path
sentrivana Jan 20, 2025
5524412
path fixes
sentrivana Jan 20, 2025
d6b4257
Merge branch 'master' into ivana/populate-tox-step-by-step
sentrivana Jan 20, 2025
386d4ef
Merge branch 'master' into ivana/populate-tox-step-by-step
sentrivana Jan 20, 2025
0bf2a2b
merge master
sentrivana Jan 20, 2025
64ced2f
readme
sentrivana Jan 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
lets see
sentrivana committed Jan 14, 2025
commit 83458598137d91d0046850b45f4306d013fd17a8
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-ai.yml
Original file line number Diff line number Diff line change
@@ -101,7 +101,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8","3.9","3.11","3.12","3.13"]
python-version: ["3.7","3.8","3.9","3.11","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
Original file line number Diff line number Diff line change
@@ -38,6 +38,19 @@


TEST_SUITE_CONFIG = {
"aiohttp": {
"package": "aiohttp",
"deps": {"*": ["pytest-aiohttp", "pytest-asyncio"]},
"python": ">=3.7",
},
"anthropic": {
"package": "anthropic",
"deps": {
"*": ["pytest-asyncio"],
"<=0.32": ["httpx<0.28.0"],
},
"python": ">=3.7",
},
"ariadne": {
"package": "ariadne",
"deps": {
22 changes: 14 additions & 8 deletions scripts/populate_tox/populate_tox.py
Original file line number Diff line number Diff line change
@@ -9,14 +9,14 @@
from packaging.specifiers import InvalidSpecifier, SpecifierSet
from packaging.version import Version
from pathlib import Path
from typing import Union
from typing import Optional, Union

import requests
from jinja2 import Environment, FileSystemLoader

from sentry_sdk.integrations import _MIN_VERSIONS

from dependencies import TEST_SUITE_CONFIG
from config import TEST_SUITE_CONFIG
from scripts.split_tox_gh_actions.split_tox_gh_actions import GROUPS


@@ -43,8 +43,6 @@
# suites over to this script. Some entries will probably stay forever
# as they don't fit the mold (e.g. common, asgi, which don't have a 3rd party
# pypi package to install in different versions).
"aiohttp",
"anthropic",
"asgi",
"aws_lambda",
"beam",
@@ -134,6 +132,10 @@ def get_supported_releases(integration: str, pypi_data: dict) -> list[Version]:
f" {integration} doesn't have a minimum version. Maybe we should define one?"
)

custom_python_versions = TEST_SUITE_CONFIG[integration].get("python")
if custom_python_versions:
custom_python_versions = SpecifierSet(custom_python_versions)

releases = []

for release, metadata in pypi_data["releases"].items():
@@ -167,7 +169,7 @@ def get_supported_releases(integration: str, pypi_data: dict) -> list[Version]:
if requires_python:
try:
version.python_versions = supported_python_versions(
SpecifierSet(requires_python)
SpecifierSet(requires_python), custom_python_versions
)
except InvalidSpecifier:
continue
@@ -177,7 +179,7 @@ def get_supported_releases(integration: str, pypi_data: dict) -> list[Version]:
# XXX do something with this. no need to fetch every release ever
release_metadata = fetch_release(package, version)
version.python_versions = supported_python_versions(
determine_python_versions(release_metadata)
determine_python_versions(release_metadata), custom_python_versions
)
time.sleep(0.1)

@@ -244,14 +246,18 @@ def pick_releases_to_test(releases: list[Version]) -> list[Version]:
return sorted(filtered_releases)


def supported_python_versions(python_versions: SpecifierSet) -> list[Version]:
def supported_python_versions(
python_versions: SpecifierSet, custom_versions: Optional[SpecifierSet] = None
) -> list[Version]:
"""Get an intersection of python_versions and Python versions supported in the SDK."""
supported = []

curr = MIN_PYTHON_VERSION
while curr <= MAX_PYTHON_VERSION:
if curr in python_versions:
supported.append(curr)
if not custom_versions or curr in custom_versions:
supported.append(curr)

next = [int(v) for v in str(curr).split(".")]
next[1] += 1
curr = Version(".".join(map(str, next)))
33 changes: 33 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -289,6 +289,13 @@ envlist =
# === Integrations - Auto-generated ===
# These come from the populate_tox.py script. Eventually we should move all
# integration tests there.
# ~~~ AI ~~~
{py3.7,py3.12,py3.13}-anthropic-v0.16.0
{py3.7,py3.12,py3.13}-anthropic-v0.25.9
{py3.7,py3.12,py3.13}-anthropic-v0.34.2
{py3.8,py3.12,py3.13}-anthropic-v0.42.0


# ~~~ DBs ~~~
{py3.6,py3.12,py3.13}-asyncpg-v0.23.0
{py3.6,py3.12,py3.13}-asyncpg-v0.25.0
@@ -310,6 +317,13 @@ envlist =
{py3.8,py3.12,py3.13}-arq-v0.26.3


# ~~~ Web 2 ~~~
{py3.7,py3.12,py3.13}-aiohttp-v3.6.3
{py3.7,py3.12,py3.13}-aiohttp-v3.8.6
{py3.8,py3.12,py3.13}-aiohttp-v3.10.9
{py3.9,py3.12,py3.13}-aiohttp-v3.11.11



[testenv]
deps =
@@ -738,6 +752,16 @@ deps =
# === Integrations - Auto-generated ===
# These come from the populate_tox.py script. Eventually we should move all
# integration tests there.
# ~~~ AI ~~~
anthropic-v0.16.0: anthropic==0.16.0
anthropic-v0.25.9: anthropic==0.25.9
anthropic-v0.34.2: anthropic==0.34.2
anthropic-v0.42.0: anthropic==0.42.0
anthropic: pytest-asyncio
anthropic-v0.16.0: httpx<0.28.0
anthropic-v0.25.9: httpx<0.28.0


# ~~~ DBs ~~~
asyncpg-v0.23.0: asyncpg==0.23.0
asyncpg-v0.25.0: asyncpg==0.25.0
@@ -769,6 +793,15 @@ deps =
arq-v0.25.0: pydantic<2


# ~~~ Web 2 ~~~
aiohttp-v3.6.3: aiohttp==3.6.3
aiohttp-v3.8.6: aiohttp==3.8.6
aiohttp-v3.10.9: aiohttp==3.10.9
aiohttp-v3.11.11: aiohttp==3.11.11
aiohttp: pytest-aiohttp
aiohttp: pytest-asyncio



setenv =
PYTHONDONTWRITEBYTECODE=1