Skip to content

build: Swapping NPM for PNPM Step 5 of 5#3043

Draft
scotttjob wants to merge 11 commits intoscott_t/pnpm-upgrade-chain-4from
scott_t/pnpm-upgrade-chain-5
Draft

build: Swapping NPM for PNPM Step 5 of 5#3043
scotttjob wants to merge 11 commits intoscott_t/pnpm-upgrade-chain-4from
scott_t/pnpm-upgrade-chain-5

Conversation

@scotttjob
Copy link
Copy Markdown
Contributor

Motivations

  1. We've long wanted to explore pnpm, and between some of the new features they're rolling out, the fact that Storybook is embracing it fully, and some of our internal packages have as well.
  2. This PR Chain is in 5 steps, to make it easier to review.
  3. This last PR is cleaning up the CI steps and trying to get everything back to a running state in CI.

Testing

  1. This should pass CI.

Changes can be
tested via Pre-release


In Atlantis we use Github's built in pull request reviews.

@scotttjob scotttjob changed the title updating circle to support pnpm build: Swapping NPM for PNPM Step 4 of 5 Apr 6, 2026
@scotttjob scotttjob changed the title build: Swapping NPM for PNPM Step 4 of 5 build: Swapping NPM for PNPM Step 5 of 5 Apr 6, 2026
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Apr 8, 2026

Deploying atlantis with  Cloudflare Pages  Cloudflare Pages

Latest commit: 94e61dc
Status:🚫  Build failed.

View logs

@MichaelParadis
Copy link
Copy Markdown
Contributor

MichaelParadis commented Apr 10, 2026

I did a build diff manually. This is the summary from Claude. I think the interesting one to look at is the restyled library
NOTE: - Menu/Menu.types.d.tsPlacement type is now derived from AriaPopoverProps["placement"] instead of @react-types/overlays was done by me to fix a type error while installing

Dist Changes Summary

All 240 changed files are in generated dist/ output — no source files are modified. This looks like a rebuild of the packages after several source-level changes.


1. Build tooling migration: npmpnpm (1 file)

packages/components-native/dist/package.json

Scripts (build, bootstrap, prepack) were updated from npm run to pnpm run. Also includes dependency updates:

  • Storybook bumped from 9.1.x10.3.x
  • New dev deps added: @babel/runtime, @types/jest, @types/node, vite, @storybook/addon-mcp
  • New peer dep: @jobber/hooks >=2
  • react and react-test-renderer pinned to exact 19.1.1

2. TypeScript config changes (2 files)

packages/components-native/dist/tsconfig.json

  • Added "node" to the types array
  • Removed *.test.ts and *.test.tsx from the exclude list (tests are now excluded from the tsconfig differently)
  • tsconfig.build.tsbuildinfo regenerated as a result

3. Type definition changes — simplified/refactored return types (6 files)

packages/components/dist/

  • Autocomplete/useAutocomplete.d.ts — large inline return type replaced with a reference to the new UseAutocompleteProps interface
  • Autocomplete/Autocomplete.types.d.ts — new UseAutocompleteProps interface exported (consolidates the Autocomplete hook's return shape)
  • InputText/InputText.d.ts — heavily simplified; verbose inline overload union type reduced significantly
  • Modal/useModal.d.tsUseModalProps renamed to UseModalOptions; return type now references ModalContextType instead of inlining all floating-ui types
  • Menu/Menu.types.d.tsPlacement type is now derived from AriaPopoverProps["placement"] instead of @react-types/overlays
  • Menu/Menu.d.tsMenu.Item ref type tightened from object to HTMLDivElement

packages/components-native/dist/

  • BottomSheetKeyboardAwareScrollView.d.ts — new mode prop added; ScrollViewComponent type updated to use AnimatedScrollViewComponent from react-native-keyboard-controller

packages/hooks/dist/

  • useOnKeyDown/useOnKeyDown.d.tsts-xor dependency removed; XOR<VerboseKeyComparator, SimpleKeyComparator> replaced with native VerboseKeyComparator | SimpleKeyComparator

4. reselect library inlined into bundle (2 files)

packages/components/dist/unstyledPrimitives/index.mjs and index.cjs

The reselect package import was removed and its full source (~430 lines) was bundled directly, including dev-mode checks (runIdentityFunctionCheck, runInputStabilityCheck). This is the source of most of the +6126 / -5431 line delta.


5. CJS variable shadowing fix (across packages/hooks/dist/)

useCollectionQuery-cjs.js, useFocusTrap-cjs.js, and others

Internal bundled IIFE functions renamed exportsexports$1 to avoid variable shadowing in the CJS bundle output.


6. CSS formatting changes (1 file)

packages/components/dist/styles.css

Minor formatter/minifier output normalization — multi-line transition and gap/grid-gap declarations collapsed to single lines. No behavioral changes.


7. Re-bundled JS output for ~220 component files

The vast majority of files (-es.js, -cjs.js, .mjs, .cjs) across packages/components/dist/ are re-generated bundle output resulting from the above changes (updated imports, re-exported symbol reordering, etc.). For example, Button-es.js has its two named exports swapped in order — a cosmetic bundler output change with no functional impact.

Comment on lines +57 to +67
{
"$$typeof": Symbol(react.transitional.element),
"_owner": null,
"_store": {},
"key": null,
"props": {
"children": "Hello",
"level": 5,
},
"type": [Function],
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

At a complete glance this seems super odd to me. I am interested to know what caused this

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants