Skip to content

feat(docs): teach the docs tooling about dev lines - #25765

Merged
alejoamiras merged 14 commits into
nextfrom
docs-dev-lines-plumbing
Nov 5, 2026
Merged

alejoamiras merged 14 commits into
nextfrom
docs-dev-lines-plumbing

Conversation

@alejoamiras

Copy link
Copy Markdown
Contributor

The docs tooling learns about dev lines: a copy of the dev docs under docs/lines/<line>/ that follows one aztec-node branch with its own pin. This PR adds no line, so the site, CI and Netlify behave as before. The next PR adds the v6 line.

Stacked on #25734.

  • Adds a fingerprint of what a production build serves, so every PR can show that production is unchanged.
  • The aztec-node pin tool fetches, pins and provisions a line on its own, with its own contracts package, and refuses a tag from another major.
  • Pages in a line take their code snippets, versions and links from that line.
  • A page that quotes the other line's examples or contracts fails the build.
  • A line's examples build outside the repository, and its references are checked against its own code. Main's examples build as before.

Tests:

  • New unit tests cover each of these.
  • The script tests pass without installed packages.
  • The production fingerprint is identical before and after.
  • The line tooling passes against a temporary v6 copy.

Without COMMIT_TAG (previews, local builds) the legacy macros resolved to next and latest. aztec-node has no next ref, so 38 source links and the aztec-nr Nargo tags pointed nowhere. They now take the ref docs/aztec-node.json pins. Release cuts set COMMIT_TAG and are unchanged.

Three @aztec-foundation installs used the Labs macro and named the Labs version in every build; they now use #include_foundation_version_without_prefix.
From 2026-11-04 aztec-node carries v7 on main and v6 on a v6 branch, with hand backports. The dev pin moves to the newest nightly of main's major and is checked to be on main; release cuts pin their tag. The release skills now find hand backports in migration-note triage (TBD and Unreleased) and expect adapted backports on both sides of the content check. update-doc-references reports, without editing, v6 PRs the pin lacks; updating-changelog takes a PR's major from its base. networks.md and support.md no longer name a development branch or aztec-node's nonexistent next.
…rry a v7 line

A v6.x release is cut from the dev docs' pages and examples, so it works
only while they are v6 content. The pin check now tests that the recorded
commit is on v6, and update-doc-references gates PRs into main (v7)
instead of PRs into v6.
Prints a sorted hash per page, markdown twin and llms file, the sitemap paths and the search index, so a production build can be diffed against another to show tooling changes leave what docs.aztec.network serves untouched.
…work

check_source_urls requires every docs.aztec.network URL in tracked files to resolve, and the fixture's page does not exist.
A line root docs/lines/<line>/ gets its own pin, checkout and toolchain through --line <line>. It never reads AZTEC_NODE_DIR. It refuses another major's tag offline. It gets its own l1-artifacts from npm, checked against the registry integrity. fetch covers every line except in production, and pin installs a line's l1-artifacts before checking. With no docs/lines/ nothing changes.
A page under docs/lines/<line>/ takes its labs/ snippets, source links, COMMIT_TAG and foundation version from its line's pin and checkout. Its #api_ref_version is the folder of the network on its major, and it fails when no network runs that major. Its links into /developers/ and /operate/ move onto the line's instances. A page that quotes another line's examples or l1-artifacts is refused. The lines are processed into processed-docs/lines/<line>/ outside production.
check_source_urls requires every docs.aztec.network URL in tracked files to resolve.
examples/bootstrap.sh --line <line> builds the line's examples with its own pin. nargo takes the topmost Nargo.toml as its workspace, so the build runs in a copy outside the repository that mirrors docs/. The example scripts read DOCS_ROOT instead of a hardcoded docs/. check_doc_references.sh docs/lines/<line> and update_docs.sh --line <line> check the line's references in the line's own checkout. Main's examples build as before; execute stays main-only.
…ng its state

check_doc_references.sh also recognises an absolute docs/lines/<line>. The staged examples build no longer creates the line's .aztec-node/l1-artifacts before fetch provisions it.
…ngerprint

include_code caches a passed checkout check per pin, not per directory: main's AZTEC_NODE_DIR may name a line's checkout. The production fingerprint keeps <link> tags, so a changed canonical or alternate URL shows. The staged examples build sets its cleanup before copying and refuses a malformed line name. A refused l1-artifacts upgrade keeps the installed package (now tested).
Base automatically changed from worktree-docs-node-branches to next November 5, 2026 19:45
@alejoamiras
alejoamiras merged commit c03bf6c into next Nov 5, 2026
16 checks passed
@alejoamiras
alejoamiras deleted the docs-dev-lines-plumbing branch November 5, 2026 19:58
alejoamiras added a commit that referenced this pull request Nov 6, 2026
Adds the v6 docs line: `docs/lines/v6/` is a copy of the dev docs that
follows aztec-node's `v6` branch with its own pin, so v6 docs can keep
changing after the dev docs move to v7. Previews serve it at
`/developers-v6` and `/operate-v6`. Production builds none of it.

Stacked on #25765.

- The first commit is a pure copy of the dev pages, sidebars, examples
and pin, so it needs no line-by-line review. The second only points the
copy at its own examples and contracts package.
- In previews, every link on a v6 page stays in the v6 line, including
the navbar on desktop and mobile.
- The v6 pages are hidden from search engines, and search, the sitemap
and the AI index files leave them out.
- CI checks the v6 line's references and compiles its examples. They run
against a network only when a v6 release is cut.
- Production never reads the v6 line.

Tests:
- New unit tests for the line pages, links, navbar and search.
- The production fingerprint is identical before and after.
- A full local CI run passes.
- In a local preview build, none of the 291 v6 pages links into the dev
docs.
- A planted error in a v6 example, or a typo on a v6 page, fails only
the v6 checks.
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.

2 participants