| 1 | # Website incremental-build patches |
| 2 | |
| 3 | Astro's experimental incremental static builds require a `cacheKey` for each |
| 4 | `getStaticPaths()` result. Keep these patches when updating the dependencies: |
| 5 | |
| 6 | - `@astrojs/starlight`: use the content digest for docs, and include all blog |
| 7 | digests for blog pages because their recent-post sidebar depends on other posts. |
| 8 | Starlight 0.42 ships compiled code under `dist/` and no longer passes a route |
| 9 | through `props`; the patch deliberately only adds `cacheKey`. |
| 10 | - `starlight-blog`: invalidate listing, tag, and author pages when their locale's |
| 11 | blog entries change. Otherwise Astro cannot cache these generated pages. |
| 12 | |
| 13 | After rebasing a patch, install with the workspace package manager and verify a |
| 14 | forced build followed by an unchanged build. The second build should report |
| 15 | cached Starlight HTML and OG routes. Never increase Astro's `build.concurrency` |
| 16 | above 1: that disables incremental caching. Full and docs-only CI jobs use |
| 17 | separate cache namespaces because docs-only builds prune the omitted OG routes. |
| 18 | |
| 19 | OG routes hash the rendered React markup (including inline styles and the yantra |
| 20 | SVG), font metadata and bytes, and render options. Their keys do not depend on a |
| 21 | fixed slug or a document body digest. Astro additionally tracks the route's |
| 22 | bundled dependencies and invalidates its cache when the lockfile changes. |