diff --git a/.github/workflows/publish-test.yml b/.github/workflows/publish-test.yml index 12e650b..299c773 100644 --- a/.github/workflows/publish-test.yml +++ b/.github/workflows/publish-test.yml @@ -56,4 +56,10 @@ jobs: - name: Publish to TestPyPI (Trusted Publishing) uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: https://test.pypi.org/legacy/ \ No newline at end of file + repository-url: https://test.pypi.org/legacy/ + # TestPyPI rejects re-uploads of the same wheel hash with + # HTTP 400 "File already exists". `skip-existing` makes + # re-runs of the same SHA a no-op (matching twine's + # --skip-existing behaviour). Production PyPI cannot + # overwrite anyway, so this flag is harmless there too. + skip-existing: true \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 20b1e9d..9402dac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,14 @@ build-backend = "hatchling.build" [project] name = "nullrun" -version = "0.11.0" +# Version bump: 0.11.0 → 0.12.0 in `feat(sdk)` (server-minted +# execution_id default + capability probe). The previous commit +# updated `src/nullrun/__version__.py` but missed this field, so +# `python -m build` was producing a wheel named `nullrun-0.11.0-*` +# that collided with the 0.11.0 artifact already on TestPyPI +# (causing the publish-test workflow to fail with HTTP 400 +# "File already exists"). +version = "0.12.0" # Long form used by PyPI page meta-description and search snippets. # Kept under the 200-char preview threshold so the full line is visible # without an "expand" click. Keywords are matched against likely search