Skip to content

[IGNORE] Replace npm by pnpm - #792

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

Gladorme wants to merge 4 commits into
perses:mainfrom
Gladorme:pnpm

Conversation

@Gladorme

@Gladorme Gladorme commented Aug 31, 2026 •

Copy link
Copy Markdown
Member

Replace npm and Turborepo with pnpm 12 and pnpm workspace commands, sharing dependency storage across repositories and worktrees.

  • Rebase onto current main, preserve its release-branch workflow and current dependency ranges, regenerate the lockfile, and include every current workspace, including canvas and json.
  • Migrate builds, tests, development commands, publishing, CI setup, and contributor documentation.
  • Preserve React 18/19 coverage and correct the E2E command to use pnpm's directory/argument syntax.
  • Fix version bumps to select plugin directories even when their package names differ, fail for unknown plugins, exclude the workspace root from bulk bumps, and permit the uncommitted changes made during release preparation.
  • Allow required native dependency install scripts and ignore local shared-library linking backups.

Validated locally: frozen installs; lint, formatting and type checks; all 1,106 unit tests on React 18 and again on React 19; builds of every plugin; Go script tests; license checks; package contents/entry points; version-bump smoke tests; shared-library link/unlink and dependency restoration; workflow validation. Browser E2E remains for CI.

Related: perses/spec#85, perses/shared#272, perses/perses#4403.

Signed-off-by: Guillaume LADORME <gladorme@users.noreply.github.com>
Gladorme and others added 3 commits November 2, 2026 17:21
- sort dependency maps the way pnpm writes them, so bumping the version
  of the plugins only changes the version lines
- drop --workspace-concurrency from dev, ignored with --parallel
- keep package-manager neutral install instructions for plugin consumers
- fix ppnpm typos in the opensearch README

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Guillaume LADORME <gladorme@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Guillaume LADORME <gladorme@users.noreply.github.com>
Drop nodeLinker: hoisted so each plugin is linked from the virtual store
and can only import its declared dependencies. Declare the dependencies
that were only reachable through hoisting:

- peers: @mui/material in every plugin importing it, @mui/system in
  logstable (needed for declaration emit), @uiw/react-codemirror in the
  CodeMirror-based plugins, and immer in alertmanager
- dependencies: @codemirror/* and @lezer/* packages imported by the
  query editors, color-hash and react-virtuoso where used at runtime
- devDependencies: @tanstack/react-query, @tanstack/react-table and
  react-virtuoso used only by tests
- root devDependencies: @types/node, @types/react and @types/react-dom
  required by the shared tsconfig

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Guillaume LADORME <gladorme@users.noreply.github.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