diff --git a/.readthedocs.yml b/.readthedocs.yml index 45c0f1069f..c42ccc7dfb 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,5 +1,9 @@ version: 2 +formats: + - pdf + - epub + build: os: ubuntu-24.04 tools: @@ -8,9 +12,15 @@ build: jobs: build: html: - - python -m pip install -r docs/requirements.txt - cd docs && npm ci - cd docs && python scripts/sphinx_to_starlight.py - cd docs && npm run build:astro - mkdir -p $READTHEDOCS_OUTPUT/html - cp -r docs/dist/* $READTHEDOCS_OUTPUT/html/ + +sphinx: + configuration: docs/conf.py + +python: + install: + - requirements: docs/requirements.txt diff --git a/conda-reqs/docs.yaml b/conda-reqs/docs.yaml index a9e93a5987..995864a6a4 100644 --- a/conda-reqs/docs.yaml +++ b/conda-reqs/docs.yaml @@ -22,3 +22,9 @@ dependencies: - sphinx-autobuild - sphinx_rtd_theme - docutils + - requests + + # Install Node.js outside conda to avoid conflicting with the ICU version + # required by Chipyard's toolchain. fnm reads docs/.nvmrc and installs an + # official Node.js binary that does not use conda's ICU package. + - fnm diff --git a/docs/.nvmrc b/docs/.nvmrc new file mode 100644 index 0000000000..2bd5a0a98a --- /dev/null +++ b/docs/.nvmrc @@ -0,0 +1 @@ +22 diff --git a/docs/README.md b/docs/README.md index 4fc09e7e5c..6f80d8d910 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,7 +12,10 @@ Node dependencies: ```sh source env.sh +python -m pip install -r docs/requirements.txt cd docs +eval "$(fnm env --shell bash)" +fnm install --use npm ci npm run dev ``` @@ -25,8 +28,10 @@ The active environment must include the Python/Sphinx dependencies from either `requirements.txt` or `../conda-reqs/docs.yaml`, because the Starlight build starts by rendering the RST source with Sphinx. Read the Docs installs `requirements.txt` with pip to avoid a slow conda solve, while local development -can use the docs conda environment. Node.js is provided separately by Read the -Docs via `.readthedocs.yml`, or by any local Node installation on `PATH`. +can use the docs conda environment. That environment provides `fnm`, which +installs the Node.js version selected by `.nvmrc` outside conda to avoid a +toolchain ICU conflict. Read the Docs provides Node.js separately through +`.readthedocs.yml`. Build static docs: diff --git a/docs/package-lock.json b/docs/package-lock.json index b9d5210c1a..7d9041370d 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -7,7 +7,7 @@ "name": "chipyard-docs", "dependencies": { "@astrojs/starlight": "0.41.3", - "astro": "7.0.7" + "astro": "^7.1.3" }, "devDependencies": { "chokidar": "5.0.0" @@ -231,14 +231,15 @@ } }, "node_modules/@astrojs/markdown-satteri": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.3.3.tgz", - "integrity": "sha512-Lje33Ittd8UQGgbIIWQvhPkj5X5c4b1sZnZWX3JQV/AWpfbuQGxVi2ONt6+ScydcwfR4egilslEWyczMclrJ1g==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.3.4.tgz", + "integrity": "sha512-6Lvt/bQZEBW+zzdhPblvfZEy5PGEYJaUsUqaCgwHeRPxZJL1gc9I+DRLKWJjjYTWDzVUTzXlMq4WwSK+X34CVw==", "license": "MIT", "dependencies": { "@astrojs/internal-helpers": "0.10.1", "@astrojs/prism": "4.0.2", "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", "satteri": "^0.9.1" } }, @@ -2370,14 +2371,14 @@ } }, "node_modules/astro": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/astro/-/astro-7.0.7.tgz", - "integrity": "sha512-swqrKDSI/B83GFroYPZYMFcxqbSe9+tkynu1WDBk3GLgBfV9++qVM4Z+2uFT6uu9A53Q0TROnxLketfMEENuqQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/astro/-/astro-7.1.3.tgz", + "integrity": "sha512-4dhPyAAXthf3xLEYnG8SeL7yr/nTPPABfY7e9YF0yuO+vK9Xp+8Q5j4xzsmL3GueukQv4oNwGNTBepLOiDGeJA==", "license": "MIT", "dependencies": { - "@astrojs/compiler-rs": "^0.3.0", + "@astrojs/compiler-rs": "^0.3.1", "@astrojs/internal-helpers": "0.10.1", - "@astrojs/markdown-satteri": "0.3.3", + "@astrojs/markdown-satteri": "0.3.4", "@astrojs/telemetry": "3.3.3", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.1.0", @@ -2389,7 +2390,7 @@ "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", - "cookie": "^1.1.1", + "cookie": "^2.0.1", "devalue": "^5.8.1", "diff": "^8.0.3", "dset": "^3.1.4", @@ -2406,7 +2407,7 @@ "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", - "neotraverse": "^0.6.18", + "neotraverse": "^1.0.1", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", @@ -2644,12 +2645,12 @@ } }, "node_modules/cookie": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", - "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-2.0.1.tgz", + "integrity": "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=22" }, "funding": { "type": "opencollective", @@ -5248,9 +5249,9 @@ } }, "node_modules/neotraverse": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", - "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", + "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", "license": "MIT", "engines": { "node": ">= 10" diff --git a/docs/package.json b/docs/package.json index eaf8766ffe..e495b8993a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/starlight": "0.41.3", - "astro": "7.0.7" + "astro": "^7.1.3" }, "devDependencies": { "chokidar": "5.0.0" diff --git a/sims/firesim b/sims/firesim index 047af8fbc3..da2a1cbceb 160000 --- a/sims/firesim +++ b/sims/firesim @@ -1 +1 @@ -Subproject commit 047af8fbc34ff04dc69df3ddd19dd4081b611bd2 +Subproject commit da2a1cbcebbb96e21c551ebef513fd95a9d73403