Skip to content

chore: migrate to pnpm workspaces - #181

Merged
pyramation merged 1 commit into
mainfrom
feat/pnpm-workspaces
Sep 1, 2026
Merged

chore: migrate to pnpm workspaces#181
pyramation merged 1 commit into
mainfrom
feat/pnpm-workspaces

Conversation

@pyramation

Copy link
Copy Markdown
Collaborator

Summary

Replaces yarn 1 + symlink-workspace with pnpm workspaces, matching the setup used in the other monorepos (pnpm-workspace.yaml, pnpm -r scripts, lerna with npmClient: pnpm).

Root:

  • workspaces field → pnpm-workspace.yaml; packageManager: [email protected]; yarn.lockpnpm-lock.yaml
  • scripts are now pnpm -r run <task> (plus deps: pnpm up -r -i -L); dropped symlink-workspace and the postinstall: yarn symlink hook (pnpm links workspace packages itself)
  • lerna ^6^8.2.4 with npmClient: "pnpm" / npmClientArgs: ["--frozen-lockfile"]

Packages:

  • internal deps use workspace:* (@cosmwasm/ts-codegen-ast, @cosmwasm/ts-codegen-types)
  • prepare: npm run buildprepublishOnly (pnpm runs prepare on every install, which caused a build during install)
  • build scripts use && instead of ; so a failing tsc fails the build
  • deps that only resolved through yarn's hoisting are now declared explicitly: @babel/parser + @types/{babel__generator,babel__traverse,minimist} in ts-codegen, @babel/generator/@types/babel__generator/glob in ast, @eslint/js + @eslint/eslintrc at the root (the flat eslint config imports them)
  • packages/ast/test-utils/utils.ts imported RenderOptions from the built @cosmwasm/ts-codegen-ast/types path; now imports from ../src/types

CI (lint.yml, autofix.yml, run-tests.yaml): pnpm/action-setup@v4, cache: 'pnpm', pnpm install --frozen-lockfile, and per-package tests via pnpm --filter <pkg> test instead of cd <dir> && yarn test.

Docs/README development commands updated to pnpm install / pnpm build / pnpm test:*.

Source formatting churn in context.ts, imports.ts, bundler.ts, plugin-base.ts, types.ts is pnpm format output under prettier 3.9 (the old lockfile pinned 3.6) — autofix would produce it on the next run anyway.

Verified with a clean pnpm install --frozen-lockfile: build, 186 tests across both packages, and lint all pass.

Link to Devin session: https://app.devin.ai/sessions/bb89d57636c84c7383305191a303b1d4
Open in Devin Desktop: https://app.devin.ai/desktop/session/bb89d57636c84c7383305191a303b1d4?variant=devin
Requested by: @pyramation

@devin-ai-integration

Copy link
Copy Markdown

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@pyramation
pyramation merged commit e131bce into main Sep 1, 2026
4 checks passed
@pyramation
pyramation deleted the feat/pnpm-workspaces branch September 1, 2026 02:16
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.

1 participant