Skip to content

Commit 98666c8

Browse files
committed
.
1 parent b9f2546 commit 98666c8

File tree

4 files changed

+36
-7
lines changed

4 files changed

+36
-7
lines changed

scripts/populate_tox/README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,16 @@ integration_name: {
4444
rule1: [package1, package2, ...],
4545
rule2: [package3, package4, ...],
4646
},
47-
"python": python_version_specifier,
47+
"python": version_specifier,
48+
"ignore": version_specifier,
4849
}
4950
```
5051

52+
When talking about version specifiers, we mean
53+
[version specifiers as defined](https://packaging.python.org/en/latest/specifications/version-specifiers/#id5)
54+
by the Python Packaging Authority. See also the actual implementation
55+
in `[packaging.specifiers](https://packaging.pypa.io/en/stable/specifiers.html)`.
56+
5157
### `package`
5258

5359
The name of the third party package as it's listed on PyPI. The script will
@@ -118,6 +124,22 @@ metadata or the SDK is explicitly not supporting some packages on specific
118124
Python versions (because of, for example, broken context vars), the `python`
119125
key can be used.
120126

127+
### `ignore`
128+
129+
Sometimes there are versions of packages that we explicitly don't want to test.
130+
One example is Starlite, which has two alpha prereleases of version 2.0.0, but
131+
there will never will be a stable 2.0 release, since development on Starlite
132+
has stopped and Starlite 2.0 eventually became Litestar.
133+
134+
The value of the `ignore` key expects a version specifier defining which
135+
versions should not be considered for testing.
136+
137+
```python
138+
"starlite": {
139+
"ignore": ">=2.0",
140+
...
141+
}
142+
```
121143

122144
## How-Tos
123145

scripts/populate_tox/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@
129129
],
130130
},
131131
"python": "<=3.11",
132+
"ignore": "==2.0.0a1,==2.0.0a2", # the project ultimately renamed itself to litestar and these are not relevant as there will never be a stable 2.0 release
132133
},
133134
"statsig": {
134135
"package": "statsig",

scripts/populate_tox/populate_tox.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@ def _prefilter_releases(
130130
f" {integration} doesn't have a minimum version defined in sentry_sdk/integrations/__init__.py. Consider defining one"
131131
)
132132

133+
ignored_versions = set()
134+
if TEST_SUITE_CONFIG[integration].get("ignore") is not None:
135+
ignored_versions = SpecifierSet(
136+
TEST_SUITE_CONFIG[integration]["ignore"], prereleases=True
137+
)
138+
133139
filtered_releases = []
134140
last_prerelease = None
135141

@@ -147,10 +153,11 @@ def _prefilter_releases(
147153
if min_supported and version < min_supported:
148154
continue
149155

150-
if version.is_postrelease:
156+
if version.is_postrelease or version.is_devrelease:
151157
continue
152158

153-
# If we made it here, we want to consider this release.
159+
if version in ignored_versions:
160+
continue
154161

155162
if version.is_prerelease:
156163
if last_prerelease is None or version > last_prerelease:
@@ -173,8 +180,9 @@ def _prefilter_releases(
173180

174181
# Check if the latest prerelease is relevant (i.e., it's for a version higher
175182
# than the last released version); if not, don't consider it
176-
if last_prerelease is not None and last_prerelease > filtered_releases[-1]:
177-
return filtered_releases, last_prerelease
183+
if last_prerelease is not None:
184+
if not filtered_releases or last_prerelease > filtered_releases[-1]:
185+
return filtered_releases, last_prerelease
178186

179187
return filtered_releases, None
180188

tox.ini

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,6 @@ envlist =
246246
{py3.8,py3.9}-spark-v3.2.4
247247
{py3.8,py3.10,py3.11}-spark-v3.4.4
248248
{py3.8,py3.10,py3.11}-spark-v3.5.4
249-
{py3.9,py3.11,py3.12}-spark-v4.0.0.dev2
250249

251250

252251
# ~~~ Web 1 ~~~
@@ -647,7 +646,6 @@ deps =
647646
spark-v3.2.4: pyspark==3.2.4
648647
spark-v3.4.4: pyspark==3.4.4
649648
spark-v3.5.4: pyspark==3.5.4
650-
spark-v4.0.0.dev2: pyspark==4.0.0.dev2
651649

652650

653651
# ~~~ Web 1 ~~~

0 commit comments

Comments
 (0)