From 288af0f370d28aa5b5190e7be481c42337c43a1e Mon Sep 17 00:00:00 2001 From: Richard R Date: Thu, 14 May 2026 14:25:29 -0600 Subject: [PATCH] build(deps): update pnpm to v11.1.2 and enforce workspace settings Upgrade pnpm version to 11.1.2 across Dockerfile, workflows, and package.json. Add pnpm-workspace.yaml to enable workspace features. Update all docs-related scripts and CI jobs to use --ignore-workspace for isolated docs-site installs. Set packageManager field in package.json for explicit version control. This ensures consistent dependency management and prepares for multi-package workspace support. --- .github/workflows/docs-check.yml | 6 +++--- .github/workflows/docs-deploy.yml | 6 +++--- .github/workflows/docs-version-on-tag.yml | 8 ++++---- .github/workflows/playwright.yml | 2 +- Dockerfile | 4 ++-- package.json | 25 +++++++---------------- pnpm-workspace.yaml | 14 +++++++++++++ 7 files changed, 34 insertions(+), 31 deletions(-) create mode 100644 pnpm-workspace.yaml diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index e3227e2..8d8748f 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -21,7 +21,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 11 - name: Setup Node.js uses: actions/setup-node@v4 @@ -31,7 +31,7 @@ jobs: cache-dependency-path: docs-site/pnpm-lock.yaml - name: Install docs dependencies - run: pnpm --dir docs-site install --frozen-lockfile + run: pnpm --ignore-workspace --dir docs-site install --frozen-lockfile - name: Build docs - run: pnpm --dir docs-site build + run: pnpm --ignore-workspace --dir docs-site build diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index b04ddde..7416b3e 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -39,7 +39,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 11 - name: Setup Node.js uses: actions/setup-node@v4 @@ -49,7 +49,7 @@ jobs: cache-dependency-path: docs-site/pnpm-lock.yaml - name: Install docs dependencies - run: pnpm --dir docs-site install --frozen-lockfile + run: pnpm --ignore-workspace --dir docs-site install --frozen-lockfile - name: Build changelog feed env: @@ -59,7 +59,7 @@ jobs: run: node scripts/build-changelog-feed.mjs - name: Build docs - run: pnpm --dir docs-site build + run: pnpm --ignore-workspace --dir docs-site build - name: Upload Pages artifact uses: actions/upload-pages-artifact@v3 diff --git a/.github/workflows/docs-version-on-tag.yml b/.github/workflows/docs-version-on-tag.yml index e2ba8ad..5b465cc 100644 --- a/.github/workflows/docs-version-on-tag.yml +++ b/.github/workflows/docs-version-on-tag.yml @@ -32,7 +32,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 11 - name: Setup Node.js uses: actions/setup-node@v4 @@ -42,7 +42,7 @@ jobs: cache-dependency-path: docs-site/pnpm-lock.yaml - name: Install docs dependencies - run: pnpm --dir docs-site install --frozen-lockfile + run: pnpm --ignore-workspace --dir docs-site install --frozen-lockfile - name: Snapshot docs version env: @@ -52,11 +52,11 @@ jobs: if [ -f docs-site/versions.json ] && grep -q "\"${VERSION}\"" docs-site/versions.json; then echo "Version ${VERSION} already exists in versions.json; skipping docs:version" else - pnpm --dir docs-site docusaurus docs:version "${VERSION}" + pnpm --ignore-workspace --dir docs-site docusaurus docs:version "${VERSION}" fi - name: Build docs - run: pnpm --dir docs-site build + run: pnpm --ignore-workspace --dir docs-site build - name: Commit docs snapshot id: commit_snapshot diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 391bbbc..9c09484 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -20,7 +20,7 @@ jobs: node-version: lts/* - uses: pnpm/action-setup@v4 with: - version: 9 + version: 11 - name: Install system dependencies run: | sudo apt-get update diff --git a/Dockerfile b/Dockerfile index f467903..88ce465 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ RUN cp "$(command -v weed)" /tmp/weed && \ FROM node:lts-alpine AS app-builder # Install pnpm globally -RUN npm install -g pnpm +RUN npm install -g pnpm@11.1.2 # Create app directory WORKDIR /app @@ -60,7 +60,7 @@ FROM node:lts-alpine AS runner RUN apk add --no-cache ca-certificates libreoffice-writer # Install pnpm globally for running the app -RUN npm install -g pnpm +RUN npm install -g pnpm@11.1.2 # App runtime directory WORKDIR /app diff --git a/package.json b/package.json index d526810..7ba2b71 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "openreader", "version": "3.0.0", "private": true, + "packageManager": "pnpm@11.1.2", "scripts": { "dev": "node scripts/openreader-entrypoint.mjs -- pnpm dev:raw", "dev:raw": "next dev --turbopack -p 3003", @@ -14,12 +15,12 @@ "migrate-fs": "node scripts/migrate-fs-v2.mjs", "migrate-fs:dry-run": "node scripts/migrate-fs-v2.mjs --dry-run true", "generate": "node drizzle/scripts/generate.mjs", - "docs:init": "pnpm --dir docs-site install", - "docs:dev": "pnpm --dir docs-site start", - "docs:build": "pnpm --dir docs-site build", - "docs:serve": "pnpm --dir docs-site serve", - "docs:version": "pnpm --dir docs-site docusaurus docs:version", - "docs:clear": "pnpm --dir docs-site clear" + "docs:init": "pnpm --ignore-workspace --dir docs-site install", + "docs:dev": "pnpm --ignore-workspace --dir docs-site start", + "docs:build": "pnpm --ignore-workspace --dir docs-site build", + "docs:serve": "pnpm --ignore-workspace --dir docs-site serve", + "docs:version": "pnpm --ignore-workspace --dir docs-site docusaurus docs:version", + "docs:clear": "pnpm --ignore-workspace --dir docs-site clear" }, "dependencies": { "@aws-sdk/client-s3": "^3.987.0", @@ -79,17 +80,5 @@ "postcss": "^8.5.6", "tailwindcss": "^3.4.19", "typescript": "^5.9.3" - }, - "pnpm": { - "onlyBuiltDependencies": [ - "@napi-rs/canvas", - "better-sqlite3", - "ffmpeg-static" - ], - "overrides": { - "lodash": "^4.17.23", - "@xmldom/xmldom": "^0.9.8", - "@types/localforage": "npm:empty-module@0.0.2" - } } } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..be30709 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,14 @@ +packages: + - . + +strictDepBuilds: false + +allowBuilds: + '@napi-rs/canvas': true + better-sqlite3: true + ffmpeg-static: true + +overrides: + lodash: ^4.17.23 + '@xmldom/xmldom': ^0.9.8 + '@types/localforage': npm:empty-module@0.0.2