From 5e63d6225d9fb0ae0cfebe252749508d6f0a07c2 Mon Sep 17 00:00:00 2001 From: Zoran Simic Date: Wed, 18 Mar 2026 14:16:34 -0700 Subject: [PATCH 1/3] Updated requirements constraints --- requirements.txt | 10 +++++----- tests/conftest.py | 8 ++------ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/requirements.txt b/requirements.txt index bbb8259..81dffc3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -click~=8.0 -pyyaml~=6.0 -requests<3.0 -runez~=5.5 -urllib3~=1.26 +click<9 +pyyaml<7 +requests<3 +runez<6 +urllib3<3 diff --git a/tests/conftest.py b/tests/conftest.py index 5b0a396..c366aee 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,19 +1,15 @@ import runez -from runez.conftest import cli, logged, temp_folder +from runez.conftest import cli, ClickRunner, logged, temp_folder # noqa: F401, fixtures from runez.http import GlobalHttpCalls from portable_python.cli import main GlobalHttpCalls.forbid() -# These are fixtures, satisfying linters with an assert -assert logged -assert temp_folder - # Ensure common logging setup is done throughout all tests (even tests not invoking cli) runez.log.setup(debug=True, console_format="%(levelname)s %(message)s", locations=None) -cli.default_main = main +ClickRunner.default_main = main def dummy_tarball(folders, basename, content=None): From 67ebf5366b6dfc41e59bc3e3a469136bd940e807 Mon Sep 17 00:00:00 2001 From: Zoran Simic Date: Wed, 18 Mar 2026 14:27:12 -0700 Subject: [PATCH 2/3] Modernized GH actions, use uv --- .github/workflows/release.yml | 13 +++++------ .github/workflows/tests.yml | 42 +++++++++++++++++++++++++---------- README.rst | 4 ++-- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index acad4b9..6a8b68f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,14 +14,13 @@ jobs: id-token: write # mandatory for trusted publishing steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: - python-version: "3.11" - - - run: pip install -U pip setuptools wheel tox - - run: tox -e py,docs,style - - run: python setup.py sdist bdist_wheel + python-version: "3.14" + - uses: astral-sh/setup-uv@v7 + - run: uvx --with tox-uv tox -e py,docs,style + - run: uv build - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3780d2d..bb36bd7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,36 +6,54 @@ on: pull_request: branches: [ main ] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: test: - + name: Test py${{ matrix.python-version }} runs-on: ubuntu-latest strategy: + fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - - run: pip install -U pip tox - - run: tox -e py - - uses: codecov/codecov-action@v3 + - uses: astral-sh/setup-uv@v7 + - run: uvx --with tox-uv tox -e py + + - uses: coverallsapp/github-action@v2 + with: + file: .tox/test-reports/coverage.xml + flag-name: python-${{ matrix.python-version }} + parallel: true + + coveralls-finish: + name: Finish Coveralls + needs: [test] + runs-on: ubuntu-latest + steps: + - name: Finish parallel build + uses: coverallsapp/github-action@v2 with: - files: .tox/test-reports/coverage.xml + parallel-finished: true linters: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: - python-version: "3.11" + python-version: "3.14" - - run: pip install -U pip tox - - run: tox -e docs,style + - uses: astral-sh/setup-uv@v7 + - run: uvx --with tox-uv tox -e docs,style diff --git a/README.rst b/README.rst index f174ee9..fb2677c 100644 --- a/README.rst +++ b/README.rst @@ -9,8 +9,8 @@ Portable python binaries :target: https://github.com/codrsquad/portable-python/actions :alt: Tested with Github Actions -.. image:: https://codecov.io/gh/codrsquad/portable-python/branch/main/graph/badge.svg - :target: https://codecov.io/gh/codrsquad/portable-python +.. image:: https://coveralls.io/repos/github/codrsquad/portable-python/badge.svg?branch=main + :target: https://coveralls.io/github/codrsquad/portable-python?branch=main :alt: Test coverage .. image:: https://img.shields.io/pypi/pyversions/portable-python.svg From 4f0ced128c3870023900b09d48f2ccf759f743a2 Mon Sep 17 00:00:00 2001 From: Zoran Simic Date: Wed, 18 Mar 2026 14:35:21 -0700 Subject: [PATCH 3/3] Explicitly bring in setuptools for docs target --- setup.py | 2 +- tox.ini | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b9d38d4..7726114 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="portable-python", - setup_requires="setupmeta", + setup_requires=["setupmeta"], versioning="dev", author="Zoran Simic zoran@simicweb.com", keywords="python, portable, binary", diff --git a/tox.ini b/tox.ini index 63f2887..abe4337 100644 --- a/tox.ini +++ b/tox.ini @@ -30,10 +30,13 @@ deps = ruff commands = ruff check --fix ruff format +# Old check-manifest + readme-renderer, see if there's better out there nowadays [testenv:docs] skip_install = True deps = check-manifest readme-renderer + pip + setuptools commands = check-manifest python setup.py check --strict --restructuredtext