You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement Phase 1 of pnpm migration with workspace protocol and core tooling updates:
Configuration:
- Add pnpm-workspace.yaml defining workspace packages
- Add .npmrc with pnpm configuration (hoisted node linker, strict peer deps)
- Update lerna.json to use pnpm as npm client
- Update root package.json with pnpm 10.18.3 as packageManager
- Update engines requirement to pnpm >=10
- Update .gitignore for pnpm artifacts
- Delete package-lock.json (replaced by pnpm-lock.yaml)
Workspace Dependencies:
- Convert all internal @instructure/* dependencies from exact versions to workspace:*
- Update 94 package.json files across all packages
Build Tooling:
- Update scripts/bootstrap.js to use pnpm and run builds sequentially
- Update packages/ui-scripts/lib/commands/bump.js to use pnpm install
- Update packages/ui-scripts/lib/utils/npm.js to use pnpm whoami
- Fix babel-plugin-transform-imports for pnpm workspace module resolution
- Fix generate-all-tokens for pnpm workspace package resolution
CI/CD:
- Update all GitHub Actions workflows to use pnpm version 10
- Add pnpm/action-setup@v4
- Update caching to use pnpm lock files
- Configure registry-url for npm publishing
- Fix visual-regression.yml: use pnpm workspace protocol instead of global linking
- Fix visual-regression.yml: explicitly install Cypress binary before tests
- Add Cypress binary caching with lockfile hash (cypress-io/github-action#1138)
TypeScript References:
- Fix TypeScript project references in 10 packages (ui-drawer-layout, ui-expandable,
ui-file-drop, ui-instructure, ui-link, ui-number-input, ui-popover, ui-radio-input,
ui-text-area, ui-text-input)
- Add missing tsconfig.build.json references to match package.json dependencies
Regression Test Updates:
- Update regression-test app to use @instructure/ui meta package
- Convert all component imports to use single import from @instructure/ui
- Update InstUISettingsProvider import path
Documentation:
- Add pnpm-migration-plan.md with complete migration strategy
- Add pnpm-phase1-test-plan.md with testing procedures
- Add pnpm-phase1-investigation.md analyzing implementation
- Update building-instui.md and contributing.md with pnpm instructions
Notes:
- All Babel builds and token generation working successfully with pnpm
- Cypress binary installation resolved by explicit `cypress install` step
- Phase 2 will focus on fixing phantom dependencies and removing workarounds
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
0 commit comments