Fix/#23 astro compiler pnpm linux binary #25

Merged
Ninosaurier merged 3 commits from fix/#23-astro-compiler-pnpm-linux-binary into dev 2026-08-26 18:38:22 +00:00
Owner

Summary

Works around a fragile optionalDependencies-based native binary resolution in @astrojs/compiler-rs/@astrojs/compiler-binding (Astro 7's mandatory Rust compiler) that caused Cannot find module '@astrojs/compiler-binding-linux-x64-gnu' on astro dev/astro build. Confirmed cross-platform (Linux x64 and macOS arm64).

refs #23
Changes

Downgraded astro → ^6.3.0 in docs/package.json (last major with the legacy Go compiler, no native binary dependency)
Downgraded @astrojs/starlight → ^0.40.0 accordingly (0.41+ dropped Astro 6 support)
Removed @astrojs/compiler-binding as a direct dependency — no longer needed
Cleaned up now-dead pnpm-workspace.yaml entries (allowBuilds, hoistPattern, publicHoistPattern for compiler-binding) that existed solely for the Rust compiler's build requirements

Why not fix it upstream instead?

We spent significant time ruling out pnpm store corruption, hardlink mutation, lockfile resolution bugs, and libc misdetection — none explained it. The issue appears to be with @astrojs/compiler-binding itself. Reported upstream: withastro/astro#[NUMMER EINFÜGEN].

This is a temporary workaround, not a permanent fix — we'll revisit Astro 7 once the upstream issue is resolved.
Testing

✅ pnpm install + pnpm run docs works on Linux x64 (Arch)
✅ Confirmed working on macOS (M2)
## Summary Works around a fragile optionalDependencies-based native binary resolution in @astrojs/compiler-rs/@astrojs/compiler-binding (Astro 7's mandatory Rust compiler) that caused Cannot find module '@astrojs/compiler-binding-linux-x64-gnu' on astro dev/astro build. Confirmed cross-platform (Linux x64 and macOS arm64). refs #23 Changes Downgraded astro → ^6.3.0 in docs/package.json (last major with the legacy Go compiler, no native binary dependency) Downgraded @astrojs/starlight → ^0.40.0 accordingly (0.41+ dropped Astro 6 support) Removed @astrojs/compiler-binding as a direct dependency — no longer needed Cleaned up now-dead pnpm-workspace.yaml entries (allowBuilds, hoistPattern, publicHoistPattern for compiler-binding) that existed solely for the Rust compiler's build requirements Why not fix it upstream instead? We spent significant time ruling out pnpm store corruption, hardlink mutation, lockfile resolution bugs, and libc misdetection — none explained it. The issue appears to be with @astrojs/compiler-binding itself. Reported upstream: withastro/astro#[NUMMER EINFÜGEN]. This is a temporary workaround, not a permanent fix — we'll revisit Astro 7 once the upstream issue is resolved. Testing ✅ pnpm install + pnpm run docs works on Linux x64 (Arch) ✅ Confirmed working on macOS (M2)
Ninosaurier added the Kind/BugPriority/HighStatus/Verified labels 2026-08-26 18:29:41 +00:00
Ninosaurier self-assigned this 2026-08-26 18:29:41 +00:00
Ninosaurier added 3 commits 2026-08-26 18:29:41 +00:00
The workspace configuration is not needed inside the docs directory.
- Downgraded astro to ^6.4.8 and starlight to ^0.40.0 in docs/
- Removed platform-specific astro compiler bindings from root package.json
- Updated pnpm-lock.yaml
chore: update pnpm-workspace.yaml
CI / lint-and-format (push) Successful in 42s
CI / changeset-check (push) Successful in 30s
CI / unit-tests (push) Successful in 41s
CI / component-tests (push) Successful in 37s
CI / lint-and-format (pull_request) Successful in 39s
CI / changeset-check (pull_request) Successful in 31s
CI / unit-tests (pull_request) Successful in 40s
CI / component-tests (pull_request) Successful in 36s
471654f24b
Brings the workspace configuration up to date with the latest directory layout.
Ninosaurier merged commit a63fe47402 into dev 2026-08-26 18:38:22 +00:00
Sign in to join this conversation.