TODO: Fix pal-e-docs-mcp PyPI publish pipeline failure
Problem
The
publish step in forgejo_admin/pal-e-docs-mcp Woodpecker pipeline fails on every push to main. Clone and lint pass. Publish exits with code 1.What We Know
- Clone fix (PR #15) works — internal Forgejo URL resolves from pipeline pods
- Lint step passes
- PyPI URL was changed from
from_secretto hardcoded internal URL in PR #17 - Internal Forgejo PyPI endpoint responds correctly (405 on GET, allows POST) — verified via curl from cluster
- Package version is
0.1.0— never changes between builds - Woodpecker log streaming is broken (empty newlines) — cannot read actual error output
What We Don't Know
- The actual error message from twine — logs are empty due to Woodpecker 3.13.0 log streaming bug
- Could be: DNS resolution failure in the publish container (different from clone container)
- Could be: version conflict (0.1.0 already published, twine rejects duplicate)
- Could be: auth failure (secrets not injected properly after URL change)
- Could be: something else entirely
Impact
Low — pal-e-docs-mcp runs locally from source via
uv run. The published PyPI package is not consumed by anything in production. But the pipeline should work.To Investigate
- Fix Woodpecker log streaming so we can actually read errors (may require Woodpecker DB cleanup or version upgrade)
- Or: add
set -x/ verbose output to the publish commands to force output to stdout before the log stream - Or: run a test pod in the woodpecker namespace that exactly replicates the publish step (python:3.12-slim, pip install build twine, build, upload)
- Check if version 0.1.0 is already in the Forgejo PyPI registry
- Consider adding auto-version-bump (e.g. using git SHA or date) to avoid conflicts
Related
todo-woodpecker-tls-clone-fix— same TLS root cause, clone portion fixed- Forgejo issues: pal-e-docs-mcp #14 (clone fix, merged), #16 (PyPI URL fix, merged)