Skip to content

Pin Antora, rebuild daily, and fix what the site had been shipping - #9

Open
bbatsov wants to merge 7 commits into
masterfrom
modernize-site-build
Open

bbatsov wants to merge 7 commits into
masterfrom
modernize-site-build

Conversation

@bbatsov

@bbatsov bbatsov commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

The publish workflow installed an unpinned Antora on Node 18 and only ran on pushes here, so the live site was three months behind the docs. It now builds with npm ci on Node 22 from a 3.2.0 lockfile, once a day, and whenever nrepl asks via repository_dispatch (nrepl/nrepl#486 adds the sender).

Also: the GA4 measurement id replaces the Universal Analytics one that stopped counting in 2023, DocSearch is pinned to v3 instead of the floating @alpha tag, broken references now fail the build instead of going live (the 1.6 and 1.7 docs had one each, now built from -antora tags that carry the fix), the tabs extension is wired in for the installation page, and there's a playbook for previewing a local nrepl checkout. Same shape as the docs.cider.mx changes from last week.

The workflow sidestepped the package.json pin with an unpinned
`npm i antora`, so every publish built with whatever was current, on
Node 18, which is past end of life. Move to 3.2.0 with a matching
lockfile, install with `npm ci`, and use Node 22.

The content lives in the nrepl repo, so a push here is rarely what
changes the site; the last deploy was three months old with seventeen
doc commits waiting. A daily scheduled build picks them up, and a
repository_dispatch lets the nrepl repo ask for a rebuild right away.
The playbook still carried the Universal Analytics id, which Google stopped processing in 2023, so the site has been reporting nothing since.
The scripts loaded the floating @Alpha dist tag, and the stylesheet
still carried rules for the DocSearch v2 autocomplete and for a Lunr
search box that was never installed. The header's Home link was
href="#".
Antora only exits non-zero on fatal errors, so the unresolved xref in
the 1.6 and 1.7 docs has been deployed as a dead link for months. A
failure level of warn turns those into a red build instead.

latest_version_segment did nothing: master is unversioned, which Antora
treats as the latest version and publishes without a version segment,
so /nrepl/latest/ was a 404 all along. linkattrs has been on by default
since Asciidoctor 2.
Both releases link to the TLS page with an xref that Antora can't resolve. The v1.6.0-antora and v1.7.0-antora tags carry the fix, the way earlier releases were handled.
The installation page presents its per-build-tool snippets as tabs,
which needs @asciidoctor/tabs on the site. Its stylesheet and script
come straight from the npm package, which means listing the supplemental
UI files one by one instead of pointing at the directory.
The README's Docker example couldn't find the playbook, showed
start_path: docs for a directory called doc, and talked about adding
modules that don't exist. The contributing page in the nrepl repo told
people to edit the production playbook to point at their clone; the new
antora-playbook-local.yml builds ../nrepl as checked out, uncommitted
changes included, so that's no longer necessary. The Makefile listed a
deploy target that doesn't exist.
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