Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .github/workflows/docs-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Docs Audit

on:
pull_request:
push:
branches: [main, master]
workflow_dispatch:

permissions:
Expand All @@ -18,9 +16,6 @@ jobs:
with:
node-version: '24'
cache: npm
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: npm ci
- run: npx playwright install --with-deps chromium
- run: npm run check
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,19 @@ jobs:
with:
node-version: '24'
cache: npm
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: npm ci
# Upstream ingestion is manual. Validate only the committed public sources.
- run: npx playwright install --with-deps chromium
- run: npm run check
- name: Verify source files remain unchanged
run: |
git diff --check
git diff --exit-code
- uses: actions/upload-artifact@v4
if: failure()
with:
name: browser-test-results
path: test-results/
- uses: actions/upload-pages-artifact@v3
with:
path: public
Expand Down
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ chapters, and documentation for Runtime, Silk, Virtnosis, Sage, and slg.

## Local development

Use Node 24 and Python 3.12. No sibling checkout is needed to build the site.
Use Node 24. Builds, ingestion tools, audits, and tests run on Node; Python is
not required. No sibling checkout is needed to build the site.

```sh
npm ci
Expand Down Expand Up @@ -52,8 +53,8 @@ checkouts, preserve the established curated/website-owned content, and write
committed DOMStack Markdown pages. Review and commit their changes before deploying.

```sh
python3 silk/tools/sync-from-silk-docs.py --silk-repo /path/to/silk
python3 runtime/tools/generate-js-api-reference.py --runtime-repo /path/to/runtime
node silk/tools/sync-from-silk-docs.ts --silk-repo /path/to/silk
node runtime/tools/generate-js-api-reference.ts --runtime-repo /path/to/runtime
npm run build
npm run audit
npm run audit:content
Expand All @@ -69,8 +70,11 @@ linked API headings become plain-text titles when a page changes. The reference
catalog includes new pages in the same import batch. Runtime's generated
reference markers retain surrounding prose.

The Python index and LLM exporters have been replaced by DOMStack templates.
Content audits inspect `public/` by default; set `ORO_SITE_OUTPUT` to inspect
The generators call the TypeScript importer directly; they never run during a
DOMStack build. Search indexes and LLM exports remain DOMStack templates.
Content audits derive document IDs and expected raw filenames from committed
Markdown frontmatter rather than public navigation JSON, which is still generated.
They inspect `public/` by default; set `ORO_SITE_OUTPUT` to inspect
another output directory. Set `ORO_RUNTIME_REPO` explicitly to additionally audit
against a particular upstream Runtime checkout; ordinary checks are independent
of whatever happens to be checked out next door.
Expand Down Expand Up @@ -117,7 +121,10 @@ update the relevant assertions and redirects together.

## Deployment and dependency updates

GitHub Actions builds and uploads `public/` and deploys with the Pages environment.
Pull requests run the Docs Audit workflow. Production-branch pushes run the
Pages workflow, which validates once, uploads that checked `public/` artifact,
and deploys with the Pages environment. Both workflows use Node only and retain
browser failure artifacts.
The repository's **Settings → Pages → Source** must be **GitHub Actions**. Merging
these changes does not itself change that repository setting. The output contains
`CNAME`, `.nojekyll`, branding assets, raw Markdown, and `llms.txt` packs.
Expand Down
4 changes: 2 additions & 2 deletions docs/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ remains reproducible. Production cutover is complete; deployment evidence is rec
| Page chrome | Headers, footers, metadata, product navigation, learn chapter bars, documentation sidebars, breadcrumbs, previous/next links, and heading lists render at build time. |
| Progressive features | Search, keyboard tabs, copy controls, Ask AI, mobile sidebar controls, active headings, and tab fragments work with browser JavaScript. |
| Artifacts | One build emits HTML, indexes, search data, raw Markdown, LLM packs, the sitemap, CNAME, and `.nojekyll`. |
| Ingestion | Silk and Runtime retain their upstream/editorial ownership rules and accept explicit upstream checkout paths. Unchanged public pages retain exact Markdown and metadata. |
| Ingestion | Native TypeScript tools for Silk and Runtime retain their upstream/editorial ownership rules and accept explicit upstream checkout paths. Unchanged public pages retain exact Markdown and metadata. |
| Cleanup | The browser Markdown renderers, vendored rendering libraries, old HTML shells, duplicate Python exporters, generated source-tree indexes, and Jekyll configuration are retired. |
| CI | Audit and deployment workflows use Node 24, Python 3.12, and the same `npm run check` gate. |
| CI | Node 24 runs ingestion, audits, browser serving, and the `npm run check` gate without Python. Pull requests validate in Docs Audit; production pushes validate and deploy the same artifact in Pages, without a duplicate push audit. |

The route inventory is in `tools/migration/baseline.json`; original Markdown
links and heading text are in `tools/migration/link-inventory.json`. The migration
Expand Down
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"test:site": "node --test tests/site/*.test.ts",
"test:browser": "playwright test",
"test:reproducibility": "node tools/reproducibility.ts",
"audit:content": "python3 runtime/tools/audit-site.py && python3 silk/tools/audit-site.py && python3 silk/tools/audit-stdlib-docs.py && python3 sage/tools/audit-site.py && python3 slg/tools/audit-site.py && python3 virtnosis/tools/audit-site.py",
"audit:content": "node tools/audit-content.ts",
"test:tooling": "node --test tests/tooling/*.test.ts",
"check": "npm run typecheck && npm test && npm run build && npm run audit && npm run audit:content && npm run test:site && npm run test:browser && npm run test:tooling && npm run test:reproducibility"
},
Expand All @@ -32,5 +32,8 @@
"markdown-it": "^15.0.0",
"markdown-it-github-alerts": "^1.0.1",
"typescript": "^5.9.2"
},
"imports": {
"#lib/*": "./src/lib/*"
}
}
2 changes: 1 addition & 1 deletion playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export default defineConfig({
: {},
},
webServer: {
command: 'python3 -m http.server 9877 --bind 127.0.0.1 --directory public',
command: 'node tools/serve-output.ts',
url: 'http://127.0.0.1:9877',
reuseExistingServer: !process.env.CI,
},
Expand Down
212 changes: 0 additions & 212 deletions runtime/tools/audit-site.py

This file was deleted.

Loading
Loading