Skip to content

chore: migrate to pnpm#1730

Open
paustint wants to merge 2 commits into
mainfrom
chore/migrate-to-pnpm
Open

chore: migrate to pnpm#1730
paustint wants to merge 2 commits into
mainfrom
chore/migrate-to-pnpm

Conversation

@paustint
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings May 16, 2026 19:21
@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 16, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm @react-email/preview-server is 91.0% likely obfuscated

Confidence: 0.91

Location: Package overview

From: package.jsonnpm/@react-email/preview-server@5.2.11

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@react-email/preview-server@5.2.11. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the workspace from Yarn Classic to pnpm (Corepack-managed). Updates root package.json (engines, packageManager, scripts), introduces pnpm-workspace.yaml and a preinstall package-manager guard, switches CI workflows, Dockerfiles, release configs and docs from yarn/npx to pnpm/corepack pnpm, removes obsolete library package.json shims and Yarn resolutions, and tweaks the Electron build pipeline to stage a pnpm-compatible target package.json. Also bundles a couple of unrelated runtime fallbacks for missing IP addresses.

Changes:

  • Replace Yarn with pnpm everywhere (root scripts, CI, Docker, docs, release hooks, Electron build) and add a preinstall guard.
  • Add pnpm-workspace.yaml with pnpm overrides (migrated from Yarn resolutions) and a planning doc.
  • Promote previously-implicit transitive deps to direct dependencies in root package.json, and remove now-unused per-lib package.json shims.

Reviewed changes

Copilot reviewed 38 out of 43 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
package.json Switch packageManager, engines, scripts; add several direct deps
pnpm-workspace.yaml New workspace + overrides + allowBuilds config
PNPM_MIGRATION_PLAN.md Temporary migration planning doc
scripts/check-package-manager.mjs New preinstall guard enforcing pnpm
scripts/build-electron.mjs Convert yarn add/remove to pnpm; new prepareTargetPackageJson
scripts/create-hotfix.mjs Update help text to pnpm
Dockerfile / Dockerfile.e2e / docker-compose.yml Use Corepack + pnpm install/run
.github/workflows/{ci,release,docs}.yml Add pnpm/action-setup, switch cache and commands
.release-it-web-ext.json / .release-it-desktop.json Switch release hooks to pnpm
electron-builder.config.js Exclude pnpm-lock.yaml instead of yarn.lock
apps/jetstream-e2e/project.json, apps/jetstream-desktop-client-e2e/playwright.config.ts, apps/jetstream-web-extension-e2e/playwright.config.ts pnpm command updates
apps/jetstream/vite.config.ts, apps/cron-tasks/src/cloudflare-analytics-archiver.ts, apps/api/Dockerfile, mock-idp/docker-compose.yml Comment/docs updates from yarn to pnpm
apps/docs/{README.md,package.json,.gitignore} pnpm docs commands; drop redundant resolutions
apps-sfdx/{package.json,.gitignore} Drop redundant resolutions; add pnpm log ignore
README.md, CLAUDE.md, .claude/settings.json Doc/tooling updates for pnpm
.dockerignore, .gitignore Track pnpm lockfile/store, ignore pnpm logs
libs/{salesforce-api,connected/connected-ui,shared/ui-db,shared/ui-record-form}/package.json Remove obsolete per-lib package.json stubs
libs/shared/data/src/lib/client-socket-data.ts Convert to import type (pnpm strictness)
libs/auth/server/src/lib/auth.utils.ts Behavior change: fall back IP to unknown-<ts>
apps/api/src/app/utils/route.utils.ts Behavior change: default req.ip to 'unknown'

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pnpm-workspace.yaml
Comment thread pnpm-workspace.yaml
Comment thread Dockerfile
Comment thread Dockerfile.e2e
Comment thread PNPM_MIGRATION_PLAN.md Outdated
Comment thread scripts/build-electron.mjs Outdated
Comment thread scripts/build-electron.mjs
Comment thread .claude/settings.json Outdated
Comment thread .github/workflows/docs.yml
Comment thread package.json
@paustint paustint force-pushed the chore/migrate-to-pnpm branch from 953e4c1 to 7c6b0dd Compare May 16, 2026 22:11
Copilot AI review requested due to automatic review settings May 17, 2026 16:10
@paustint paustint force-pushed the chore/migrate-to-pnpm branch from 7c6b0dd to 3c6b87d Compare May 17, 2026 16:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 42 out of 47 changed files in this pull request and generated 11 comments.

# so release-it can push as the App (which is on the ruleset bypass list).
persist-credentials: false

- uses: pnpm/action-setup@v4
Comment thread package.json
"unzipper": "^0.12.3",
"update-electron-app": "^3.1.2",
"uuid": "^9.0.1",
"uuid": "^14.0.0",
Comment thread migrations.json
Comment on lines 19 to +24
{
"cli": "nx",
"version": "22.6.0-beta.11",
"description": "Prompts to enable usage analytics",
"implementation": "./src/migrations/update-22-6-0/enable-analytics-prompt",
"package": "nx",
"name": "22-6-0-enable-analytics-prompt"
},
{
"version": "22.6.0-beta.11",
"description": "Prefix reportsDirectory with {projectRoot} to maintain correct resolution after workspace-root-relative behavior change.",
"implementation": "./src/migrations/update-22-6-0/prefix-reports-directory-with-project-root",
"package": "@nx/vitest",
"name": "update-22-6-0-prefix-reports-directory"
"version": "22.7.0-beta.12",
"description": "Add missing inputs to @nx/eslint:lint executor target defaults",
"implementation": "./src/migrations/update-21-6-0/update-executor-lint-inputs",
"package": "@nx/eslint",
"name": "update-executor-lint-inputs"
Comment thread Dockerfile
Comment on lines +24 to +25
COPY --link package.json pnpm-lock.yaml pnpm-workspace.yaml ./
RUN pnpm install --frozen-lockfile --prod=false
Comment thread Dockerfile.e2e
Comment on lines +15 to +22
COPY ./pnpm-lock.yaml .
COPY ./pnpm-workspace.yaml .
COPY ./.env .
COPY ./ecosystem.config.js .
COPY ./prisma ./prisma/

# Install core dependencies
RUN yarn
RUN pnpm install --prod --no-frozen-lockfile
Comment thread pnpm-workspace.yaml
Comment on lines +9 to +23
allowBuilds:
"@parcel/watcher": true
"@prisma/engines": true
"@sentry/cli": false
"@swc/core": true
core-js: false
electron: true
electron-winstaller: true
esbuild: true
less: false
nx: true
prisma: true
sharp: true
spawn-sync: false
unrs-resolver: true
Comment thread Dockerfile
# syntax = docker/dockerfile:1

ARG NODE_VERSION=20.10.0
ARG NODE_VERSION=22
Comment thread README.md
**Pre-req**

1. Make sure you have node 20 installed.
1. Make sure you have node 22 installed.
Comment thread Dockerfile.e2e
Comment on lines 2 to +7

WORKDIR /usr/src/app

ARG PNPM_VERSION=11.1.2
RUN corepack enable && corepack prepare pnpm@${PNPM_VERSION} --activate

return ipAddress[ipAddress.length - 1];
}
return ipAddress;
return ipAddress || `unknown-${new Date().getTime()}`;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants