Skip to content

Fix the Common Lisp docs build for the control package - #298

Open
tony wants to merge 1 commit into
mainfrom
fix/lisp-control-reference
Open

tony wants to merge 1 commit into
mainfrom
fix/lisp-control-reference

Conversation

@tony

@tony tony commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fix the Common Lisp docs build, which stops at 8245169 on Common Lisp declaration has no native reference: libtmux.control:await-request.
  • Map libtmux.control to docs/control-api.md in the Lisp package table of scripts/stage-port-docs.mjs.
  • Add a test that every public Lisp package maps to a reference file holding its declarations' anchors.

Cause

The Lisp branch of stagedPortGuides maps each package to its native reference file through a fixed table. libtmux-lisp documents libtmux.control in docs/control-api.md (anchors such as await-request-function), but the table had no row for it. Docs CI passed because the committed site/src/data/api/lisp.json predates that package; the port's build regenerates the model at the port's head, so only libtmux-lisp's docs runs saw it: run 42755820881 at 13449ad and run 42756204772 at a893752.

Changes

  • scripts/stage-port-docs.mjs: the table becomes the exported LISP_REFERENCE_FILES, with the libtmux.control row. libtmux-lisp's tools/documentation.lisp lists six public packages at 13449ad; this was the only one missing.
  • site/test/stage-port-docs.test.ts: reads the package list from the CI checkout of libtmux-lisp (LIBTMUX_DOCS_CHECKOUT_LISP), and asserts each package maps to a file with declaration anchors and each model symbol's anchor exists in its mapped file. It runs against the checkout at the model revision, so it catches a new package when that revision moves.

Test plan

  • The new test fails without the libtmux.control row (checkout at 13449ad) and passes with it
  • stage-port-docs.mjs --from-source --port lisp against libtmux-lisp 13449ad with a regenerated model: the error before, 15 guides from lisp after
  • oxlint on both files
  • Full CI
  • A libtmux-lisp docs run pinned to this change

why: Staging the Common Lisp guides at libtmux-lisp 13449ad failed with
"Common Lisp declaration has no native reference:
libtmux.control:await-request". The package-to-file table had no entry for
libtmux.control, which documents itself in docs/control-api.md. Docs CI
passed because the committed lisp.json model predates that package; only the
port build, which regenerates the model at the port head, saw it.

what:
- Add libtmux.control -> docs/control-api.md to the table, now exported as
  LISP_REFERENCE_FILES. It was the only public package missing; the other
  five match the packages in the port's documentation artifact list.
- Add a stage-port-docs test that reads the package list from the lisp
  checkout (LIBTMUX_DOCS_CHECKOUT_LISP) and requires each package to map to
  a reference file with declaration anchors, and each committed-model
  declaration to find its anchor in that file.

This branch has not been deployed

No deployments
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