diff --git a/README.md b/README.md index 158137fb..3e100946 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ npm run build && npm run start:gnome # or the yarn / pnpm equivalent Notes: - **gjsify is the canonical path** — the committed `gjsify-lock.json` and the offline Flatpak build use it. npm/yarn/pnpm generate their own lockfiles (gitignored); they're fine for local dev, please don't commit them. -- **pnpm** relies on the committed `pnpm-workspace.yaml` (pnpm reads its workspace members + settings there, not the `workspaces` field or a project `.npmrc`) — `linkWorkspacePackages: true` (so plain `^` ranges link the local workspaces) + `nodeLinker: hoisted` (flat layout the gjsify bundler needs). +- **pnpm** relies on the committed `pnpm-workspace.yaml` (pnpm reads its workspace members + settings there, not the `workspaces` field or a project `.npmrc`): `linkWorkspacePackages: true` (plain `^` ranges link the local workspaces), `nodeLinker: hoisted` (flat layout the gjsify bundler needs), `minimumReleaseAge: 0` + `dangerouslyAllowAllBuilds: true` (match npm/yarn's defaults — no new-version quarantine, run dep build scripts — so non-interactive installs don't error). - The internal packages use plain `^x.y.z` ranges (not the `workspace:` protocol), which is why every manager — including npm and classic yarn — can resolve them. - A manual **Package Managers** CI workflow verifies all four managers install + resolve the workspaces; trigger it from the Actions tab if you touch the dependency wiring. diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fcceb62d..4f9ef0fb 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -13,8 +13,13 @@ # - minimumReleaseAge: 0 disables pnpm's new-version quarantine. The other PMs # (npm/yarn/gjsify) have no such gate, so this keeps pnpm consistent and stops # it blocking freshly-published @gjsify/* right after a gjsify release. +# - dangerouslyAllowAllBuilds: pnpm 10 blocks dependency build scripts by default +# and exits non-zero (ERR_PNPM_IGNORED_BUILDS) in CI/non-interactive runs. +# npm and yarn RUN dep build scripts by default, so this just makes pnpm match +# them (the dep set is identical and already trusted under the other PMs). packages: - "packages/*" linkWorkspacePackages: true nodeLinker: hoisted minimumReleaseAge: 0 +dangerouslyAllowAllBuilds: true