[Docs] Replace the Docusaurus site with Astro + Starlight - #32
Conversation
Completes the half-finished Astro migration on main and moves deployment off GitHub Pages. main currently carries an Astro docs/package.json but a Docusaurus site (docusaurus.config.ts, docs/docs/, src/css/custom.css) with no astro.config.mjs, and a docs.yml copied from superset-pack that still sets PACK_SLUG: superset-pack - so the docs job cannot build or deploy this pack. - Astro + Starlight site in docs/, npm for dependency management - @nebari/starlight shared theme plugin for the Nebari identity (brand colors, fonts, logo, favicon, footer, GitHub link) built on the nebari design system, replacing the hand-maintained custom.css token copy - remark-base-links plugin so root-absolute links survive the production subpath base, with vitest coverage - scripts/check-links.sh to verify every internal link resolves in dist/ - docs.yml corrected to PACK_SLUG: rayserve-pack, plus the missing docs-preview-cleanup workflow - docs/README.md and root README instructions for updating the docs - .gitignore entries updated for the Astro build artifacts Scope is the scaffolding only - the existing Introduction page carries over as-is; content lands separately. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The dashboard's route generator only adds packs.nebari.dev/rayserve-pack/ -> https://rayserve-pack.pages.dev when the pack declares docs_site: true, so the site this branch adds would not be reachable through the portal without it. The Pages project name has to match the repo name for that route to resolve, which is what the docs workflow deploys to. - docs_site: true - links.docs repointed from a stale GitHub blob URL to the published site - site and landing-page descriptions now match the GitHub repo description, which is what the dashboard's Description column reads, so the two cannot drift apart Validated against schema/pack-metadata.schema.json from software-pack-dashboard. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
e78753a to
d2be087
Compare
|
Added a second commit registering the docs site in This turned out to be load-bearing, not cosmetic.
Validated against |
|
📄 Docs preview for |
Matches display_name in pack-metadata.yaml. Upstream product references stay "Ray Serve" (the Ray library's own spelling), as in the repo README and the GitHub repo description. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reference Issues or PRs
Closes #21. Replaces #26 — same goal, rebased on current
mainand aligned with the docs setup the other packs have since converged on (nebi-pack,apps-pack,nebari-chat-pack).What does this implement/fix?
The state on
mainmainis mid-migration and the docs job cannot succeed as-is:docs/package.jsondeclares Astro + Starlight, but the site next to it is still Docusaurus (docusaurus.config.ts,sidebars.ts,docs/docs/,src/css/custom.css) and there is noastro.config.mjs, nosrc/content.config.ts, and no content collection..github/workflows/docs.ymlwas copied fromsuperset-packand still setsPACK_SLUG: superset-pack, so a successful build would deploy this pack's docs over Superset's Pages project.scripts/check-links.shis referenced by the workflow but does not exist.docs-preview-cleanup.yml, so PR previews would never be reaped.This PR finishes the migration. Scope is scaffolding only — the existing Introduction page carries over as-is; real content lands separately.
docs/, npm for dependency management (Node >= 22)@nebari/starlightshared theme plugin supplies the Nebari identity — brand colors, fonts, logo, favicon, footer, GitHub link — built on the nebari design system. This replacesdocs/src/css/custom.css, a hand-copied snapshot of the design tokens that had to be re-synced by hand.remark-base-linksplugin so root-absolute markdown links survive the production subpath base, with vitest coverage (10 tests)scripts/check-links.shverifies every internal link indist/resolvesdocs.ymlcorrected toPACK_SLUG: rayserve-pack, plus the missingDocs preview cleanupworkflow.mainbuilds atBASE=/rayserve-pack/and publishes topacks.nebari.dev/rayserve-pack/; PRs build atBASE=/and get a preview URL posted as a comment.docs/README.mdand a README section on running and updating the docs;.gitignoreentries swapped from the Docusaurus artifacts to the Astro onesThe only Makefile in this repo is
dev/Makefile, which drives the kind dev cluster — docs targets would be out of place there, so the docs commands are documented as plainnpminvocations. Happy to add a root Makefile instead if that's preferred.Testing
Locally, from a clean checkout:
Both the root base (PR previews) and the production subpath base build and link-check clean.
Before merging
The Cloudflare Pages project
rayserve-packand theCLOUDFLARE_API_TOKEN/CLOUDFLARE_ACCOUNT_IDrepo secrets need to exist, otherwise the deploy step fails (test, build, and link check still gate the PR).🤖 Generated with Claude Code