From 600513040aa4c750a82db5abfaaf435189c26fc1 Mon Sep 17 00:00:00 2001 From: David Ford Date: Sat, 25 Jul 2026 23:39:39 -0400 Subject: [PATCH] **fix** restore CI tox install and drop Poetry from tox runs requirements-ci.txt was committed empty so pip installed nothing; regenerate hashes, run tox via python -m, and execute tests without a Poetry binary. Co-authored-by: Cursor --- .github/requirements-ci.txt | 70 ++++++++++++++++++++ .github/workflows/main.yml | 11 ++- .github/workflows/update-ci-requirements.yml | 7 +- tox.ini | 22 ++---- 4 files changed, 89 insertions(+), 21 deletions(-) diff --git a/.github/requirements-ci.txt b/.github/requirements-ci.txt index e69de29..468deba 100644 --- a/.github/requirements-ci.txt +++ b/.github/requirements-ci.txt @@ -0,0 +1,70 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --allow-unsafe --generate-hashes --output-file=.github/requirements-ci.txt .github/requirements-ci.in +# +cachetools==7.1.6 \ + --hash=sha256:2c12e255780330af28b91bb7fb96cce4c766f04e38396b9a24510190a5827096 \ + --hash=sha256:c7a79e7f30ba9943c1cefd08cc36f006aaae086e017af9166f1d59d6170c47e1 + # via tox +colorama==0.4.6 \ + --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ + --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + # via tox +distlib==0.4.3 \ + --hash=sha256:4b0ce306c966eb73bc3a7b6abad017c556dadd92c44701562cd528ac7fde4d5b \ + --hash=sha256:f152097224a0ae24be5a0f6bae1b9359af82133bce63f98a95f86cae1aede9ed + # via virtualenv +filelock==3.32.0 \ + --hash=sha256:7be2ad23a14607ccc71808e68fe30848aeace7058ace17852f68e2a68e310402 \ + --hash=sha256:d396bea984af47333ef05e50eae7eff88c84256de6112aea0ec48a233c064fe3 + # via + # python-discovery + # tox + # virtualenv +packaging==26.2 \ + --hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e \ + --hash=sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661 + # via + # pyproject-api + # tox +platformdirs==4.11.0 \ + --hash=sha256:0555d18370482847566ffabcaa53ad7c6c1c29f195989ae1ed634a05f76ea1e0 \ + --hash=sha256:360ccded2b7fce0af0ff80cc8f5942a1c5d99b0e856033acb030bfc634709e74 + # via + # python-discovery + # tox + # virtualenv +pluggy==1.6.0 \ + --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ + --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 + # via tox +pyproject-api==1.11.0 \ + --hash=sha256:860060c8832dce983b5eec6f41c4c43eb3ec06ff7332387a63acdf5ca27b68d8 \ + --hash=sha256:b8807d85a293e6c9f133e6575946fed45f1d42b22d58c780b33aa2421a799549 + # via tox +python-discovery==1.5.0 \ + --hash=sha256:3e014c6327154d3dda27939a9a0dc9c5c000439f1906d3f303b48f984bd2ecef \ + --hash=sha256:70c4fc61b4e7404e44f01d6fc44a715c4d685ca6cea83d295922f05891877c98 + # via + # tox + # virtualenv +tomli-w==1.2.0 \ + --hash=sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90 \ + --hash=sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021 + # via tox +tox==4.58.0 \ + --hash=sha256:ab0b126a04dd56bc18e6d216386db09335247f2289b54cf534deb5c4ae3a8d2e \ + --hash=sha256:dcae21f5f015f3a67658e35644cce0d1aa0dedcd06f3927f95d84e1717f6cea5 + # via + # -r .github/requirements-ci.in + # tox-gh-actions +tox-gh-actions==3.5.0 \ + --hash=sha256:070790114c92f4c94337047515ca5e077ceb269a5cb9366e0a0b3440a024eca1 \ + --hash=sha256:cc8e148c4513042e5019973e5672594c3df241b035e7fb550f6f778588110051 + # via -r .github/requirements-ci.in +virtualenv==21.7.0 \ + --hash=sha256:7f9519b9432ff11b6e1a3e94061664efc2ff99ea21780e3cf4f6bd0a5da8b37c \ + --hash=sha256:a8370c1c5530fbabf955e40b8fbbc68a431648b10f9433faa587db30a06e51dd + # via tox diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bf99762..c0062d2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,15 +11,20 @@ jobs: contents: read strategy: matrix: - python-version: ["3.12", "3.13", "3.14"] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0 + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: ${{ matrix.python-version }} + - name: Install dependencies - run: python -m pip install --require-hashes -r .github/requirements-ci.txt + run: | + python -m pip install --require-hashes -r .github/requirements-ci.txt + python -m tox --version + - name: Tox test - run: tox -vv + run: python -m tox -vv diff --git a/.github/workflows/update-ci-requirements.yml b/.github/workflows/update-ci-requirements.yml index 2c87008..1be2c0d 100644 --- a/.github/workflows/update-ci-requirements.yml +++ b/.github/workflows/update-ci-requirements.yml @@ -27,7 +27,7 @@ jobs: python-version: "3.12" - name: Install pip-tools - run: python -m pip install 'pip-tools==7.5.1' + run: python -m pip install 'pip==25.0.1' 'pip-tools==7.6.0' - name: Sync tox pin from poetry.lock and compile hashes run: | @@ -55,6 +55,11 @@ jobs: --output-file=.github/requirements-ci.txt \ .github/requirements-ci.in + if [[ ! -s .github/requirements-ci.txt ]]; then + echo "requirements-ci.txt is empty after compile" >&2 + exit 1 + fi + - name: Commit updates uses: stefanzweifel/git-auto-commit-action@4a55954c782fc1ea30b9056cd3e7a2b40ca8887d # v7.2.0 with: diff --git a/tox.ini b/tox.ini index 1196ef0..f5fcaa9 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,10 @@ [tox] -envlist = py{312,313,314} +envlist = py{311,312,313,314} isolated_build = true [gh-actions] python = + 3.11: py311 3.12: py312 3.13: py313 3.14: py314 @@ -14,22 +15,9 @@ deps = pytest-cov pylint mypy -allowlist_externals = - poetry -# changedir = {toxinidir} -commands_pre = - poetry env use {envpython} - poetry install --with test commands = - #pytest tests/ -v --cov=pam --cov-report=term-missing --cov-report=html --cov-fail-under=85 - #pylint python-pam/pam --fail-under=8.0 - #mypy -p python-pam - poetry run pytest {posargs} - poetry run mypy -p python-pam - poetry run pylint python-pam/pam --fail-under=8.0 -extrax = - test + pytest {posargs} + mypy -p python-pam + pylint python-pam/pam --fail-under=8.0 passenv = PYTEST_* -setenv = - VIRTUAL_ENV = {envdir}