From 045281a28bfa2ab688d8121c4ce857467cfc03de Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Tue, 3 Nov 2026 15:06:36 -0600 Subject: [PATCH 1/3] Pin CI to 3.14 where needed Some tools don't support 3.15 yet, so replace '3.x' as appropriate. --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 480f1feed..45c8650e7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,7 +40,8 @@ jobs: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - python-version: "3.x" + # mddj does not yet support 3.15; use 3.14 for now + python-version: "3.14" - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 - parallel: From d3b389c44f9d17a41f8fe81b02eb2c763a7549bd Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Tue, 3 Nov 2026 16:51:35 -0600 Subject: [PATCH 2/3] Fix tox ci label targets --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 14facade0..54b29f2d0 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ skip_missing_interpreters = true minversion = 4.0.0 labels = - ci = py, py-notoml, py-tomli-format, py-json5, py-pyjson5 + ci = py, py-format, py-json5, py-pyjson5 [testenv] description = "run tests with pytest" From 0e02e2894a77e589f2f41553640a82f31650c69e Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Wed, 4 Nov 2026 11:18:11 -0600 Subject: [PATCH 3/3] Improve CI verbosity and fix tox var expansion - add debug printing output to the collation script - tox no longer expands variables in command-line posargs (treated as a bugfix), so we need to rearrange where we put `{envname}` for expansion --- .github/workflows/build.yaml | 2 +- scripts/aggregate-pytest-reports.py | 4 ++++ tox.ini | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 45c8650e7..6ddbbbf29 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -83,7 +83,7 @@ jobs: - name: test run: | - tox run -m ci -- --junitxml pytest.{envname}.xml + tox run -m ci tox run -e cov_combine,cov_report - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 diff --git a/scripts/aggregate-pytest-reports.py b/scripts/aggregate-pytest-reports.py index 7a8cf63b9..db872884d 100644 --- a/scripts/aggregate-pytest-reports.py +++ b/scripts/aggregate-pytest-reports.py @@ -25,13 +25,17 @@ def main(): nodename = f"{classname.replace('.', '/')}.py::{name}" if skip_node is not None: if "skipped" not in tests_by_name[nodename]: + print(f"found first skip of {nodename} in {filename}") tests_by_name[nodename]["skipped"] = True else: + print(f"found first run of {nodename} in {filename}") tests_by_name[nodename]["skipped"] = False else: if skip_node is not None: skipped_module_counts[name] += 1 + print("-- tally results") + skipped_modules = { modname for modname, count in skipped_module_counts.items() diff --git a/tox.ini b/tox.ini index 54b29f2d0..21f6674da 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ skip_missing_interpreters = true minversion = 4.0.0 labels = - ci = py, py-format, py-json5, py-pyjson5 + ci = py-ci, py-format-ci, py-json5-ci, py-pyjson5-ci [testenv] description = "run tests with pytest" @@ -31,7 +31,8 @@ deps = pyjson5: pyjson5 format: jsonschema[format] commands = - coverage run -m pytest {posargs:--junitxml={envdir}/pytest.xml} + !ci: coverage run -m pytest {posargs:--junitxml={envdir}/pytest.xml} + ci: coverage run -m pytest -v --junitxml pytest.{envname}.xml depends = cov_clean [testenv:cov_clean]