Parent epic: #246
Goal
Publish a versioned documentation snapshot on every stable GitHub
Release, and update /latest/ to point at the new version.
Tasks
- Add a job (in the existing release workflow or a new one) triggered
on release.published.
- The job:
- Reads the release tag.
- Stamps the version into
conf.py (version, release).
- Builds the docs.
- Publishes to
gh-pages under /vX.Y.Z/.
- Updates
/latest/ to point at the new version (mirror copy or a
redirect — pick the simpler one that still works for direct deep
links).
- Stable releases only — pre-releases and draft releases must not
update /latest/ and should not publish a versioned directory either
(or publish it but skip the /latest/ update — decide and document).
- Must coexist cleanly with the SBOM job already running on the same
event. If both push to gh-pages, serialise them or partition by
path to avoid race conditions.
- Update DEVLOG.md.
Done when
- Cutting a stable release through release-please results in a new
/vX.Y.Z/ directory on gh-pages and an updated /latest/.
- A pre-release / draft release does not update
/latest/.
- The SBOM job and the docs job both succeed on the same release
event without clobbering each other.
Parent epic: #246
Goal
Publish a versioned documentation snapshot on every stable GitHub
Release, and update
/latest/to point at the new version.Tasks
on
release.published.conf.py(version,release).gh-pagesunder/vX.Y.Z/./latest/to point at the new version (mirror copy or aredirect — pick the simpler one that still works for direct deep
links).
update
/latest/and should not publish a versioned directory either(or publish it but skip the
/latest/update — decide and document).event. If both push to
gh-pages, serialise them or partition bypath to avoid race conditions.
Done when
/vX.Y.Z/directory ongh-pagesand an updated/latest/./latest/.event without clobbering each other.