Summary
The core package release workflow publishes artifacts to PyPI but does not create a GitHub Release. The production docs promotion workflow waits for both PyPI and a GitHub Release, so the two workflows do not currently form a complete release path.
Verified on main at d505ef5789d8b18e23fd838300b039932dc399ce.
Evidence
.github/workflows/release.yml builds, verifies, uploads artifacts, and publishes to PyPI.
- It has no
gh release create, release action, or equivalent GitHub Release job.
.github/workflows/deploy-docs-stg.yml polls gh release view "$VERSION" and the PyPI JSON API for up to 30 minutes.
- That workflow refuses production promotion if either object is absent.
- Its comments state that
release.yml owns the GitHub Release, but the implementation does not.
Actual behavior
A normal v* tag can publish the package while docs promotion waits for a GitHub Release that no workflow creates.
Expected behavior
The automated and documented release path has a clear owner for creating the GitHub Release before production docs promotion checks it.
Acceptance criteria
Summary
The core package release workflow publishes artifacts to PyPI but does not create a GitHub Release. The production docs promotion workflow waits for both PyPI and a GitHub Release, so the two workflows do not currently form a complete release path.
Verified on
mainatd505ef5789d8b18e23fd838300b039932dc399ce.Evidence
.github/workflows/release.ymlbuilds, verifies, uploads artifacts, and publishes to PyPI.gh release create, release action, or equivalent GitHub Release job..github/workflows/deploy-docs-stg.ymlpollsgh release view "$VERSION"and the PyPI JSON API for up to 30 minutes.release.ymlowns the GitHub Release, but the implementation does not.Actual behavior
A normal
v*tag can publish the package while docs promotion waits for a GitHub Release that no workflow creates.Expected behavior
The automated and documented release path has a clear owner for creating the GitHub Release before production docs promotion checks it.
Acceptance criteria
dry_run=truedispatches never create a GitHub Release.