Skip to content

Commit 84bd5d1

Browse files
committed
less majors
1 parent 2785101 commit 84bd5d1

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

scripts/populate_tox/populate_tox.py

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,9 @@ def pick_releases_to_test(
262262
) -> list[Version]:
263263
"""Pick a handful of releases to test from a sorted list of supported releases."""
264264
# If the package has majors (or major-like releases, even if they don't do
265-
# semver), we want to make sure we're testing them all. If not, we just pick
266-
# the oldest, the newest, and a couple in between.
265+
# semver), we want to make sure we're testing them all (unless there's too
266+
# many). If not, we just pick the oldest, the newest, and a couple
267+
# in between.
267268
#
268269
# If there is a relevant prerelease, also test that in addition to the above.
269270
has_majors = len(set([v.major for v in releases])) > 1
@@ -283,12 +284,27 @@ def pick_releases_to_test(
283284
if release > releases_by_major[release.major][1]:
284285
releases_by_major[release.major][1] = release
285286

286-
for i, (min_version, max_version) in enumerate(releases_by_major.values()):
287-
filtered_releases.add(max_version)
288-
if i == len(releases_by_major) - 1:
289-
# If this is the latest major release, also check the lowest
290-
# version of this version
291-
filtered_releases.add(min_version)
287+
if len(releases_by_major) > 5:
288+
# This framework has a lot of majors. Pick a selection.
289+
releases = sorted(
290+
[max_version for (_, max_version) in releases_by_major.values()]
291+
)
292+
filtered_releases = {
293+
releases[0], # oldest version supported
294+
releases[len(releases) // 3],
295+
releases[
296+
len(releases) // 3 * 2
297+
], # two releases in between, roughly evenly spaced
298+
releases[-1], # latest
299+
}
300+
301+
else:
302+
for i, (min_version, max_version) in enumerate(releases_by_major.values()):
303+
filtered_releases.add(max_version)
304+
if i == len(releases_by_major) - 1:
305+
# If this is the latest major release, also check the lowest
306+
# version of this version
307+
filtered_releases.add(min_version)
292308

293309
else:
294310
filtered_releases = {

tox.ini

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# The file (and all resulting CI YAMLs) then need to be regenerated via
1111
# "scripts/generate-test-files.sh".
1212
#
13-
# Last generated: 2025-09-05T11:30:53.329365+00:00
13+
# Last generated: 2025-09-05T12:16:06.031542+00:00
1414

1515
[tox]
1616
requires =
@@ -297,13 +297,8 @@ envlist =
297297
{py3.6,py3.10,py3.11}-pyramid-v2.0.2
298298

299299
{py3.6}-sanic-v0.8.3
300-
{py3.6,py3.7}-sanic-v18.12.0
301-
{py3.6,py3.7}-sanic-v19.12.5
302300
{py3.6,py3.8,py3.9}-sanic-v20.12.7
303-
{py3.7,py3.9,py3.10}-sanic-v21.12.2
304-
{py3.7,py3.10,py3.11}-sanic-v22.12.0
305301
{py3.8,py3.10,py3.11}-sanic-v23.12.2
306-
{py3.8,py3.10,py3.11}-sanic-v24.12.0
307302
{py3.9,py3.12,py3.13}-sanic-v25.3.0
308303

309304
{py3.8,py3.10,py3.11}-starlite-v1.48.1
@@ -767,23 +762,14 @@ deps =
767762
pyramid: werkzeug<2.1.0
768763

769764
sanic-v0.8.3: sanic==0.8.3
770-
sanic-v18.12.0: sanic==18.12.0
771-
sanic-v19.12.5: sanic==19.12.5
772765
sanic-v20.12.7: sanic==20.12.7
773-
sanic-v21.12.2: sanic==21.12.2
774-
sanic-v22.12.0: sanic==22.12.0
775766
sanic-v23.12.2: sanic==23.12.2
776-
sanic-v24.12.0: sanic==24.12.0
777767
sanic-v25.3.0: sanic==25.3.0
778768
sanic: websockets<11.0
779769
sanic: aiohttp
780770
sanic: sanic_testing
781771
sanic-v0.8.3: sanic_testing<22.9
782-
sanic-v18.12.0: sanic_testing<22.9
783-
sanic-v19.12.5: sanic_testing<22.9
784772
sanic-v20.12.7: sanic_testing<22.9
785-
sanic-v21.12.2: sanic_testing<22.9
786-
sanic-v22.12.0: sanic_testing<22.9
787773
{py3.6}-sanic: aiocontextvars==0.2.1
788774
{py3.8}-sanic: tracerite<1.1.2
789775

0 commit comments

Comments
 (0)