From 8db5e8ccbb13deaef917285aa9aa7bb208484286 Mon Sep 17 00:00:00 2001 From: James He Date: Wed, 17 Dec 2025 15:28:55 -0700 Subject: [PATCH] Reduce tox matrix from 480 to 6 combinations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplified tox test matrix to focus on essential combinations: - Test latest versions across all Python versions (3.8-3.11) - Test oldest supported versions on Python 3.8 - Test pydantic v1/v2 compatibility on Python 3.11 This reduces CI runtime while maintaining coverage of critical dependency combinations and compatibility scenarios. Previous: 4 Python × 2 websockets × 2 pyaudio × 5 httpx × 7 pydantic = 480 combinations New: 6 targeted combinations --- tox.ini | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/tox.ini b/tox.ini index 3bfddd2..8ef9795 100644 --- a/tox.ini +++ b/tox.ini @@ -1,27 +1,33 @@ [tox] -envlist = py{38,39,310,311}-websockets{latest,11.0}-pyaudio{latest,0.2}-httpx{latest,0.24,0.23,0.22,0.21}-pydantic{latest,2,1.10,1.9,1.8,1.7}-typing-extensions +envlist = + # Test latest versions across all Python versions + py{38,39,310,311}-latest + # Test oldest supported versions + py38-oldest + # Test pydantic v1/v2 compatibility + py311-pydantic1 [testenv] deps = - # library dependencies - websocketslatest: websockets - websockets11.0: websockets>=11.0.0,<12.0.0 - httpxlatest: httpx - httpx0.24: httpx>=0.24.0,<0.25.0 - httpx0.23: httpx>=0.23.0,<0.24.0 - httpx0.22: httpx>=0.22.0,<0.23.0 - httpx0.21: httpx>=0.21.0,<0.22.0 - pydanticlatest: pydantic - pydantic2: pydantic>=2 - pydantic1.10: pydantic>=1.10.0,<1.11.0,!=1.10.7 - pydantic1.9: pydantic>=1.9.0,<1.10.0 - pydantic1.8: pydantic>=1.8.0,<1.9.0 - pydantic1.7: pydantic>=1.7.0,<1.8.0 - typing-extensions: typing-extensions>=3.7 - # extra dependencies - pyaudiolatest: pyaudio - pyaudio0.2: pyaudio>=0.2.13,<0.3.0 - # test dependencies + # Latest versions (default) + latest: websockets + latest: httpx + latest: pydantic + latest: pyaudio + latest: typing-extensions>=3.7 + # Oldest supported versions + oldest: websockets>=11.0.0,<12.0.0 + oldest: httpx>=0.21.0,<0.22.0 + oldest: pydantic>=1.7.0,<1.8.0 + oldest: pyaudio>=0.2.13,<0.3.0 + oldest: typing-extensions>=3.7 + # Pydantic v1 for compatibility testing + pydantic1: websockets + pydantic1: httpx + pydantic1: pydantic>=1.10.0,<2.0.0,!=1.10.7 + pydantic1: pyaudio + pydantic1: typing-extensions>=3.7 + # Test dependencies pytest pytest-httpx pytest-xdist