From 452d7fc0a1d013ca48927d3029fd6ec1cf50adf0 Mon Sep 17 00:00:00 2001 From: funkpower Date: Fri, 18 Sep 2026 14:04:25 -0400 Subject: [PATCH] call twine by absolute path; PATH does not cross a step boundary The zig fix worked: both manylinux_2_17 wheels and the sdist built. Then the Publish step died with 'twine: not found', because the PATH the build step exported for zig's sake belongs to that step's shell and not the next one, and the same commit had changed twine to a bare name on the strength of it. Only the two commands in the build step, where the export actually applies, are bare now. --- .forgejo/workflows/release.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml index 151500a..1a23ecb 100644 --- a/.forgejo/workflows/release.yml +++ b/.forgejo/workflows/release.yml @@ -70,8 +70,10 @@ jobs: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} run: | - twine check --strict dist/* + # By absolute path: each step gets its own shell, so the PATH the + # build step exported for zig's sake does not reach this one. + /tmp/venv/bin/twine check --strict dist/* # --skip-existing so a retry after a partial upload finishes the job # instead of dying on the first file. A version cannot be reused, # so a half-published release would otherwise burn it. - twine upload --non-interactive --skip-existing dist/* + /tmp/venv/bin/twine upload --non-interactive --skip-existing dist/*