Skip to content

[IGNORE] Replace npm by pnpm - #792

Draft
Gladorme wants to merge 9 commits into
perses:mainfrom
Gladorme:pnpm
Draft

[IGNORE] Replace npm by pnpm#792
Gladorme wants to merge 9 commits into
perses:mainfrom
Gladorme:pnpm

Conversation

@Gladorme

@Gladorme Gladorme commented Aug 31, 2026

Copy link
Copy Markdown
Member

Description

Replacing npm by pnpm to save disk space (+ time). It's really useful for us as we have shared deps between repo and it's now even more useful with IA where you can have a lot of worktrees!

With pnpm files inside node_modules are linked from a single content-addressable storage (no more duplication on all repos/worktrees).

And it's supporting workspaces, that allow us to remove turbo, that is pain to maintain (at least to me when I need to touch it 😆)

I still need to test a little bit more if everything is working as intended, but it looks promising to me 😄

Related PRs:

Screenshots

Checklist

  • Pull request has a descriptive title and context useful to a reviewer.
  • Pull request title follows the [<catalog_entry>] <commit message> naming convention using one of the
    following catalog_entry values: FEATURE, ENHANCEMENT, BUGFIX, BREAKINGCHANGE, DOC,IGNORE.
  • All commits have DCO signoffs.

UI Changes

  • Changes that impact the UI include screenshots and/or screencasts of the relevant changes.
  • Code follows the UI guidelines.

Gladorme and others added 6 commits September 4, 2026 18:55
Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Signed-off-by: Guillaume <gladorme@gmail.com>
Signed-off-by: Guillaume <gladorme@gmail.com>
Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>
- Pin pnpm/setup to v2.1.0 (floating v2 tag is still v2.0.2).
- Fix .nvmrc that had a stray 'git add .' line.
- Drop the legacy packageManager field, superseded by devEngines.
- Regenerate pnpm-lock.yaml for @perses-dev/* 0.55.0-beta.7.
- Remove stale turborepo entry from .gitignore.

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
pnpm/setup installs the newest pnpm matching devEngines (12.3.4) while the
lockfile records the version that last resolved it (12.3.1); pnpm then tries
to download and switch to 12.3.1 and fails with 'the installed pnpm wrapper
is missing'. Set pmOnFail: ignore so any pnpm matching ^12.0.0 is accepted.

Also exclude @perses-dev/* from minimumReleaseAge (the same-day bump to
0.55.0-beta.7 was silently resolved to beta.6) and fix the lockfile.

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
- Move the pnpm version tolerance to devEngines.packageManager.onFail: ignore.
  It is honoured by pnpm (no switch to the lockfile-pinned version) and by npm,
  which otherwise fails with EBADDEVENGINES when tools still run through npm
  (React Doctor, percli v0.54 plugin build).
- Format pnpm-workspace.yaml (oxfmt wants single quotes).

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Align library ranges with perses/shared@b0b2cb2 and synchronize the pnpm lockfile.

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
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