Skip to content

Backfill historical release sites and validate documentation links - #433

Merged
helly25 merged 3 commits into
mainfrom
feat/release-site-backfill
Sep 8, 2026
Merged

helly25 merged 3 commits into
mainfrom
feat/release-site-backfill

Conversation

@helly25

@helly25 helly25 commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Publish historical mbo documentation without creating a release or moving an existing tag. Manual publication can supply a configuration from main while all documentation still comes from the original tag. Publishing now rejects missing Markdown mappings and broken links or anchors within the generated snapshot.

AG;DR

  • Add .github/release-notes.md.template and a validated tag renderer to append the versioned website and coverage links to the existing release notes. Two additional tests cover exact tag spelling, normalized coverage paths, prereleases, invalid input, and invocation outside the repository.

  • Add optional config_path to manual Pages dispatch and --config to the builder. The workflow restricts overrides to tracked files inside its main checkout; automatic release publication continues to use the tagged configuration.

  • Retain the exact supplied configuration as release-site.json, with its SHA-256, origin, and original source commit recorded in release.json. Existing snapshots remain unchanged on retries, including when the override changes.

  • Require linked local Markdown pages and directory READMEs to have conversion mappings. Audit generated HTML links, copied assets, and anchors before atomically retaining the snapshot. Coverage and external links remain outside the internal snapshot audit.

  • Reject hidden destination components that the Pages artifact uploader would omit, and map .github/workflows/README.md to the public workflows/index.html destination.

  • Extend mbo's configuration to its 22 Markdown documents, closing the missing reflection/style/contributor-document mappings. This configuration also matches the original 0.15.0 tree.

  • Add regression coverage for backfill provenance, immutable retries, missing historical content, missing mappings, and broken generated links. CI now also builds and validates the actual configured documentation in a disposable runner directory; it never publishes this preview.

Local development verification successfully converted the actual 0.15.0 checkout (7dcc431112fcd57c79d340fb57ef21766f20b76d) using the override, validated its complete generated link graph, and generated the correct latest redirect. Current documentation conversion and focused pre-commit checks also passed. Validation before the release-note addition on pushed commit 27162792d: all 24 regression tests, focused pre-commit checks, and git diff --check passed. A fresh conversion of the actual 0.15.0 checkout using that pushed builder also passed the complete generated-link audit. GitHub CI additionally verifies the current documentation in a disposable preview.

After merge, the normal manual backfill entry point is:

gh workflow run pages.yml --repo mboworks/mbo --ref main \
  -f tag=0.15.0 -f config_path=release-site.json

No release or tag was created or changed. Pre-merge live verification succeeded: the PR generator read the original 0.15.0 checkout, its validated static output was committed to coverage-pages, and the main-branch Pages workflow deployed it. Deployment run completed successfully. All 40 published files checked over HTTP match the generated bytes; the root latest redirect and the 0.15.0 coverage endpoint also passed. The live site is https://mboworks.github.io/mbo/site/tag/0.15.0/. The Pages environment remains restricted to main. The initial deployment was cancelled before its deploy step after discovering the hidden destination; the corrected destination is covered by a regression test. The successful live mbo backfill now provides the reference implementation for the other repositories. Historical tags with a different documentation layout need their own compatible configuration; missing sources never fall back to current content.

Release-note addition validation: all 26 site/template regression tests and focused pre-commit checks passed locally. CI also runs the template tests on the new pushed head. Existing published snapshots and historical release notes are unchanged.

Coordinated rollout: xff #783, carve #119, coderef #113, bashtest #46, bzl #61.

Signed-off-by: helly25 <6420169+helly25@users.noreply.github.com>
Signed-off-by: helly25 <6420169+helly25@users.noreply.github.com>
Signed-off-by: helly25 <6420169+helly25@users.noreply.github.com>
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