Repository navigation
chore(ui): Install and build the portal plugins with pnpm - #611
Merged
Merged
Conversation
Switch both plugins from npm to pnpm 11.28.9, as cloud-portal did, for smaller installs and faster runs on the same Node runtime. - Each package.json pins pnpm through packageManager. Node 26 ships no corepack, so every environment installs that version itself. - Each plugin gets a pnpm-workspace.yaml: the npm overrides in pnpm's parent>child syntax, esbuild allowed to run its install script and fsevents not, and @datum-cloud packages exempt from the one-day release delay. pnpm 11 fails an install when a script is neither allowed nor denied. - pnpm-lock.yaml is imported from package-lock.json, which is removed. The provider keeps every version. The consumer uses one copy of the Radix dialog packages where npm kept an older nested set for cmdk, and takes ai 7.0.161 with its two @ai-sdk packages one patch back, since 7.0.162 is under a day old. ai is a peer of datum-ui only.
The build stage installs the pnpm that packageManager pins, then runs `pnpm install --frozen-lockfile --ignore-scripts` and `pnpm build`. pnpm stays out of the runtime stage, which copies only dist. The CA-root and uid comments no longer explain themselves through the old Bun image; the checks and the uid stay.
pnpm/action-setup installs the version each plugin pins, reading the plugin's own package.json since the repository root has none. setup-node caches the pnpm store keyed on the plugin's pnpm-lock.yaml, and install, typecheck and tests run through pnpm.
`pnpm import` exempted 11 third-party versions from pnpm 11's one-day release delay, because npm had resolved them while they were under a day old. The comment above them called the whole list our own packages. It now says why these were added and that they can go once an update moves past them.
scotwells
approved these changes
Nov 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
npm installs are slow and heavy, so both portal plugins now install, build and run CI with pnpm 11, matching cloud-portal.
Every package keeps the version npm resolved, except that the consumer plugin takes the AI SDK one patch back because the newest release is under a day old.
Without this, running the consumer plugin with pnpm 11 stopped at its first script, because nothing said whether esbuild could run its install script.
Breaking changes
Anyone working on a plugin needs pnpm and a clean install. Node 26 ships without corepack, so install pnpm once, and it then switches to the pinned version on its own.
npm install -g pnpm@11 rm -rf node_modules && pnpm installTest plan
Fixes #609