Síntoma
La 0.8.0 se cortó bien (tag v0.8.0 + GitHub Release, PRs #129/#130 mergeados), pero publish-pypi.yml NO corrió → la 0.8.0 no llegó a PyPI. La única corrida de publish-pypi es el workflow_dispatch manual de la 0.7.0.
Causa raíz
publish-pypi.yml usa on: release: published. El Release lo crea release-please con el GITHUB_TOKEN por defecto, y GitHub NO dispara nuevos workflows desde eventos generados por el GITHUB_TOKEN (regla anti-recursión). El evento ocurre pero no enciende el workflow. Gotcha conocido de release-please + Trusted Publishing.
Workaround (cada release, hasta el fix)
workflow_dispatch manual de publish-pypi.yml desde main (donde pyproject ya tiene la versión nueva). Disparar desde dev publicaría la versión vieja.
Fix permanente (elegir uno)
- (a, recomendado) Mover el job de publish dentro del workflow de release-please, gateado por su output
release_created (corre en el MISMO run; no depende del evento release). Es el patrón estándar.
- (b) Darle a release-please un PAT / GitHub App token (no el
GITHUB_TOKEN) para que el Release que crea sí dispare on: release workflows.
Prioridad
Media — cada release necesita el dispatch manual hasta arreglarlo. No bloquea (el workaround publica).
Síntoma
La 0.8.0 se cortó bien (tag
v0.8.0+ GitHub Release, PRs #129/#130 mergeados), peropublish-pypi.ymlNO corrió → la 0.8.0 no llegó a PyPI. La única corrida de publish-pypi es elworkflow_dispatchmanual de la 0.7.0.Causa raíz
publish-pypi.ymlusaon: release: published. El Release lo crea release-please con elGITHUB_TOKENpor defecto, y GitHub NO dispara nuevos workflows desde eventos generados por elGITHUB_TOKEN(regla anti-recursión). El evento ocurre pero no enciende el workflow. Gotcha conocido de release-please + Trusted Publishing.Workaround (cada release, hasta el fix)
workflow_dispatchmanual depublish-pypi.ymldesdemain(dondepyprojectya tiene la versión nueva). Disparar desdedevpublicaría la versión vieja.Fix permanente (elegir uno)
release_created(corre en el MISMO run; no depende del eventorelease). Es el patrón estándar.GITHUB_TOKEN) para que el Release que crea sí dispareon: releaseworkflows.Prioridad
Media — cada release necesita el dispatch manual hasta arreglarlo. No bloquea (el workaround publica).