Skip to content

Docs(ci): Adopt Sphinx inventories - #80

Draft
tony wants to merge 1 commit into
masterfrom
sphinx-inventories
Draft

tony wants to merge 1 commit into
masterfrom
sphinx-inventories

Conversation

@tony

@tony tony commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Sphinx projects need discoverable references to the Java, Kotlin and Scala documentation on libtmux.org. Pin the docs build and publisher to the rebased inventory producer from libtmux/docs#166. Built versions gain objects.inv, targets.json, footer downloads and Sphinx setup help. Root publication composes objects-full.inv from selected default catalogs.

The producer is rebased onto docs main and retains #157's exact head. It includes durable target identities, migration aliases, canonical Sphinx option aliases and uv-managed Python tooling with Ruff and ty.

Validation

  • Rebased onto 48a11adb39ac2b6a2bb9e451bc8ba54679679be2. Only .github/workflows/docs.yml changes, with both producer refs set to the same commit. All non-pin content is preserved.
  • Actionlint 1.7.12 passes.
  • At the rebased docs producer, lint, formatting, ty and workspace type checks pass. Focused inventory suites pass 68 tests, with seven assembled-output tests explicitly skipped in source-only mode.
  • Fresh local HTTP consumers under Sphinx 8.2.3 and 9.1.0 each pass 3,028 RST and 3,028 MyST references across 16 catalogs. Compiled desktop/phone footer controls and all sixteen exact-byte inventory downloads pass. The prior CI artifact's source tree is identical to the rebased producer.
  • The docs outer loop hits the real-corpus resolver test's five-second timeout; that test passes in isolation. This is not an overall outer-loop pass. Native library matrices were not rerun locally for this workflow-only change.

Keep this PR as a draft for review. Update both refs to the landed docs commit before merging, and publish every selected default catalog, including Python stable, before canonical root composition. Newly triggered CI and live publication remain separate from the local checks above.

why: Sphinx consumers need discoverable port references, and the root
publisher needs a catalog for the selected default version.

what:
- Adopt scoped inventories, catalogs and footer discovery
- Adopt the reference fixes and generic links from docs PR 157
- Use the shared publisher's locked uv, Ruff and ty tooling
- Restrict scoped inventory to the actual port/version mount
- Place inventory setup help under the site meta section
- Declare the three-day uv cooldown for portable locked installs
- Make the Python CLI checks executable for Linux Ruff
- Keep decorative kind marks out of row and inventory names
- Resolve command options under native Sphinx program contexts
- Keep both docs workflow pins on the same revision

validation: YAML, callee bindings, paired pins and minimal diffs pass.
The combined docs branch passes 221 site and 23 Swift model checks,
Ruff, formatting, ty and TypeScript checks; 23 assembled-tree contracts
were skipped. Complete publication evidence remains a separate gate.

Docs source: libtmux/docs@205ecac
@tony
tony force-pushed the sphinx-inventories branch from bdc2ede to f7c5971 Compare October 20, 2026 00:43

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