📚 ci: automate docs deploy + releases; fix dead badges/links#709
Merged
kris-jusiak merged 2 commits intoJun 1, 2026
Conversation
The website (boost-ext.github.io/sml) is served from the gh-pages branch but nothing regenerated it - the branch has been frozen since 2022-09-07. And cutting a release only bumped the version in source; no tag/Release was ever created (latest published Release is still v1.1.13, although master is v1.2.0). This adds the missing automation and fixes stale doc content: - .github/workflows/docs.yml: build the MkDocs site and publish to gh-pages on doc changes to master (and via manual dispatch). keep_files preserves the /boost classic mirror. - .github/workflows/release.yml: manual dispatch that tags vX.Y.Z from BOOST_SML_VERSION and creates a GitHub Release from the CHANGELOG section (idempotent - no-op if the release already exists). - .mkdocs.yml: build on current MkDocs/Python - drop the os.getenv custom_dir hack and the dead Universal Analytics property (sunset by Google in 2023). - doc/index.md, doc/overview.md: replace dead Travis/AppVeyor badges and compiler links with the GitHub Actions equivalents; use the shields release badge. - Makefile: restore 'make doc'/'make serve' targets (mkdocs).
Collaborator
|
All required permission should be there |
Collaborator
This was referenced Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Two things broke around the v1.2.0 release:
gh-pagesbranch (Pages legacy mode), but no workflow regenerates it — the only workflow isbuild(compile + test).gh-pageshas been frozen since 2022-09-07, so doc changes onmasternever reach the live site.v1.2.0Release/tag exists. Merging the release PR only bumpedBOOST_SML_VERSIONin source. The latest published Release/tag is still v1.1.13 even thoughmasteris1.2.0— tagging + releasing was a manual step that was never automated.While here, several badges/links on the site were dead: the Travis badge (Travis CI shut down for OSS) and the AppVeyor badge both 404, and
doc/overview.mdlinked compilers totravis-ci.org/appveyor.What this PR does
Automation (the actual fix):
.github/workflows/docs.yml— builds the MkDocs site and publishes it togh-pageswhenever docs change onmaster(or via manual dispatch).keep_files: truepreserves the/boostclassic mirror and conference slides..github/workflows/release.yml— manual dispatch that derives the version fromBOOST_SML_VERSION, creates thevX.Y.Ztag and a GitHub Release from the matchingdoc/CHANGELOG.mdsection. Idempotent — a no-op if the release already exists.Modernization & content:
.mkdocs.yml— builds on current MkDocs 1.6 / Python 3.12 (verified). Drops the!!python/object/apply:os.getenvcustom_dirhack and the dead Universal Analytics property (UA-…, sunset by Google in 2023). Output is byte-for-structure identical to the legacy build.doc/index.md,doc/overview.md— replace dead Travis/AppVeyor badges and compiler links with the GitHub Actions equivalents; switch the version badge toshields.io/github/v/release.Makefile— restoremake doc/make serve(the doc targets were dropped when the Makefile was slimmed to a CMake wrapper).The acknowledgements credit is a separate commit so it can be taken or dropped independently of the infra fixes.
Verification
Built locally with MkDocs 1.6.1 on Python 3.12 — clean build, all pages render, badges/credit present. Remaining badges fetched live: build =
passing, issues =143 open, codecov =100%, version =v1.1.13(will flip tov1.2.0once the release workflow runs).contents: write, but the org/repo default can cap it). Without this both workflows fail to push.doc/**+.mkdocs.yml, sodocs.ymlruns on the push and updatesgh-pages(commit bygithub-actions[bot]). Expected, not a surprise.releaseworkflow once (Actions → release → Run workflow). It tagsv1.2.0and publishes the Release from the CHANGELOG.Note
codecovrenders100%but its data is frozen at the last Travis-era upload —build_matrix.ymlhas no coverage step. Left as-is (README keeps it too); worth either adding a coverage upload or dropping the badge in a follow-up.Update — documentation overhaul (additional commits)
Following review of the live site, this PR now also fixes the broken doc content and pages:
Broken links / 404s (
index.md)<page>/index.html, which 404 underuse_directory_urls: false. Repointed to the flatCHANGELOG.html/tutorial.html/examples.html(+ fixed thehsttp://typo). Verified against the built tree (examples.html#hello-worldanchor exists)."Run" buttons → Compiler Explorer
buttons (39 acrossindex/tutorial/user_guide). Each was already paired with a working ▶ Run on Compiler Explorer link, so only the dead button is dropped.utility.js).New examples (present in
example/but undocumented), each with a verified CE link:FAQ — added from open issues (answers grounded in the User Guide API table / v1.2.0 CHANGELOG):
process_event— Using event instance with process_event() #487flush_queue()— Dispatching events in separate thread spawned from action? #583clear_defer— Access to defer_queue #643I left review comments on each of those issues pointing at the answer. Drop any FAQ entry you'd rather not keep.