Skip to content

fix(publish): uv pip install + bump 0.1.0a3 — v0.1.0a2 run died on missing pip#5

Merged
qxbyte merged 1 commit into
mainfrom
fix/publish-yml-uv-pip
May 31, 2026
Merged

fix(publish): uv pip install + bump 0.1.0a3 — v0.1.0a2 run died on missing pip#5
qxbyte merged 1 commit into
mainfrom
fix/publish-yml-uv-pip

Conversation

@qxbyte
Copy link
Copy Markdown
Owner

@qxbyte qxbyte commented May 31, 2026

Repro

`git push origin v0.1.0a2` fired `publish-to-pypi` (run `26715540392`). All 15 publish jobs failed on:

```
Run uv venv --python ... /tmp/build-env
/tmp/build-env/bin/pip install build twine
##[error]Process completed with exit code 127.
```

Cause

Same bug PR #2 + PR #3 fixed for `bench.yml`: `uv venv` does not bootstrap `pip` into the venv. So `/tmp/build-env/bin/pip` doesn't exist. I missed mirroring the fix into `publish.yml` at the time.

Fix

```yaml

  • name: Create isolated build venv
    run: |
    uv venv --python ${{ env.BUILD_PYTHON_VERSION }} /tmp/build-env
  • /tmp/build-env/bin/pip install build twine
  • uv pip install --python /tmp/build-env/bin/python build twine
    ```

Why bump 0.1.0a3 (not re-tag a2)

Re-tagging `v0.1.0a2` at the new commit:

  • requires `git push --delete origin v0.1.0a2` (mild risk — protected branches generally don't lock tags, but it's still a forced operation)
  • introduces `skip-existing` ambiguity if any upload in the failed run actually slipped through (I checked: none did, but bumping a3 is just cleaner)

So bump everyone to `0.1.0a3` and we get a fresh, clean run.

State after the failed run

  • Nothing was uploaded to TestPyPI. Per-job logs show all 15 died before the `Build` step, well before the `Publish to TestPyPI` step.
  • The 15 TestPyPI Trusted Publishers configured today have never been exercised — we still don't know whether the environment names / OIDC config are correct. This PR's tag will be the first real test.

Test plan

  • 6 required test matrix checks pass
  • Merge + tag `v0.1.0a3`
  • Watch `publish-to-pypi` run:
    • `determine-target` outputs `target=testpypi`
    • All 15 publish jobs reach the `Publish to TestPyPI` step
    • All 15 OIDC exchanges succeed
    • TestPyPI shows `0.1.0a3` on all 15 project pages

🤖 Generated with Claude Code

…mp to 0.1.0a3

v0.1.0a2 tag fired the workflow but all 15 publish jobs died on:

  Run uv venv --python ... /tmp/build-env
      /tmp/build-env/bin/pip install build twine
  Process completed with exit code 127.

Exact same bug PRs #2 and #3 fixed for bench.yml: `uv venv` does not
bootstrap pip into the venv, so `/tmp/build-env/bin/pip` does not
exist. Fix: switch to
  uv pip install --python /tmp/build-env/bin/python build twine

The build/twine step itself + the OIDC publish step never ran, so
TestPyPI is untouched and we have no idea yet whether the 15 Trusted
Publishers are wired correctly. Need another tag to re-test.

Bumping all 15 packages to 0.1.0a3 because tag v0.1.0a2 is already
on a known-broken commit; re-tagging at the same name is brittle and
runs into `skip-existing` ambiguity in the off chance any file did
get uploaded.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pronto-qxbyte
Copy link
Copy Markdown

pronto-qxbyte Bot commented May 31, 2026

PRonto 评审

PR: #5 fix(publish): uv pip install + bump 0.1.0a3
作者: @qxbyte
分支: fix/publish-yml-uv-pip -> main

概览

修复CI发布流程中uv venv未自动安装pip的问题,并统一升级插件版本。

问题清单

  • ✅ 未发现明显问题

建议改进

【严重度】

  • 🔴 P0:阻塞,必须修复才能合并
  • 🟡 P1:建议,强烈建议修复
  • 🟢 P2:提示,可选优化

本评审由 PRonto 经 MiMo 生成

@qxbyte qxbyte merged commit 8bb2cb4 into main May 31, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant