Zoltan Kochan
fd511e4676
feat: isolated global packages ( #10697 )
...
**TLDR:** Global packages in pnpm v10 are annoying and slow because they all are installed to a single global package. Instead, we will now use a system that is similar to the one used by "pnpm dlx" (aka "pnpx").
Each globally installed package (or group of packages installed together) now gets its own isolated installation directory with its own `package.json`, `node_modules`, and lockfile. This prevents global packages from interfering with each other through peer dependency conflicts or version resolution shifts.
## Changes
- Add `@pnpm/global-packages` shared utilities package for scanning, hashing, and managing isolated global installs
- `pnpm add -g` creates isolated installs in `{pnpmHomeDir}/global/v11/{hash}/`
- `pnpm remove -g` removes the entire installation group containing the package
- `pnpm update -g` re-installs into new isolated directories and swaps symlinks
- `pnpm list -g` scans isolated directories to show installed global packages
- `pnpm outdated -g` checks each isolated installation for outdated dependencies
- `pnpm store prune` cleans up orphaned global installation directories
## Breaking changes
- `pnpm install -g` (no args) is no longer supported — use `pnpm add -g <pkg>`
- `pnpm link <pkg-name>` no longer resolves packages from the global store — only relative or absolute paths are accepted
- `pnpm link --global` is removed — use `pnpm add -g .` to register a local package's bins globally
2026-03-01 15:49:18 +01:00
Zoltan Kochan
e18a879d72
feat!: drop Node.js 22.12 support
2026-02-18 14:54:09 +01:00
Zoltan Kochan
1b4df57a01
feat!: drop Node.js 20 and 21 support ( #10569 )
2026-02-08 19:16:24 +01:00
Zoltan Kochan
a00f9e515c
chore: use typescript-go ( #10452 )
2026-01-14 01:18:13 +01:00
Zoltan Kochan
71de2b3f2b
feat!: remove use-node-version CLI option and pnpm.executionEnv.nodeVersion manifest field ( #10373 )
2025-12-27 22:41:53 +01:00
Brandon Cheng
db72923b5c
fix: forward $NODE_OPTIONS when running jest for debug terminals ( #10364 )
...
* fix: forward existing `$NODE_OPTIONS` when running jest
* chore: update `package.json` files for meta-updater changes
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2025-12-27 22:10:52 +01:00
btea
4015eeb8e9
chore: replace write-pkg with write-package ( #10351 )
2025-12-22 16:21:30 +01:00
Khải
90bd3c31f8
feat(config)!: project-specific packageConfigs ( #10304 )
...
* feat(config)!: project level `config.yaml`
* test: fix
* refactor: shorten some names
* docs(changeset): change wording
* feat: move project settings to pnpm-workspace.yaml
* test: remove unneeded fixture
* docs(changeset): correct
* refactor: replace validation with creation
* docs: consistent terminology
* perf: validate once
* test: projectConfig
* refactor: explicitly use `undefined`
* refactor: reuse `ProjectConfigRecord`
* chore(deps): remove unused dependency
* style: remove extra pipe character
* refactor: rename to `projectConfigs`
* feat: flatten `projectConfig` with `match`
* refactor: correct error class names
* docs(changeset): update
* test: fix
* feat: rename to `packageConfigs`
Rename `projectConfigs` to `packageConfigs` in the workspace manifest.
The term "project config" is still used internally, because, internally,
"project" refers to workspace packages whilst "package" refers to 3rd party
packages and dependencies.
* docs(changeset): clarify `project-N`
2025-12-21 12:01:18 +01:00
Zoltan Kochan
7e2910e70f
chore(release): 11.0.0-alpha.0
2025-11-13 15:44:27 +01:00
Zoltan Kochan
3ce5f82bd7
Merge remote-tracking branch 'origin/main' into v11
2025-10-28 18:40:05 +01:00
Zoltan Kochan
49f03d14ee
chore(release): 10.20.0
2025-10-28 17:35:21 +01:00
Zoltan Kochan
dab9abef5c
Merge remote-tracking branch 'origin/main' into v11
2025-10-24 14:19:07 +02:00
Zoltan Kochan
d9bcd616ea
chore(release): 10.19.1-oidc-test.3
2025-10-24 01:36:02 +02:00
Zoltan Kochan
0cde1287c8
chore: update repository fields
2025-10-23 11:57:12 +02:00
Zoltan Kochan
e5ac91fa67
chore(release): 10.19.1-oidc-test.0
2025-10-23 10:30:03 +02:00
Zoltan Kochan
43d7b18c2f
chore(release): 10.19.0
2025-10-21 15:30:20 +02:00
Zoltan Kochan
1bfc105da0
chore(release): 10.18.3
2025-10-14 11:27:45 +02:00
Zoltan Kochan
a43166624e
Merge remote-tracking branch 'origin/main' into v11
2025-10-10 10:01:19 +02:00
Zoltan Kochan
1b15e45ae9
chore(release): 10.18.2
2025-10-09 16:56:04 +02:00
Zoltan Kochan
651a27aea4
chore(release): 10.18.1
2025-10-06 14:13:59 +02:00
Zoltan Kochan
bdbd31aa4f
chore(release): 10.18.0
2025-10-02 16:36:27 +02:00
Zoltan Kochan
6618431aee
chore(release): libs
2025-09-29 11:56:00 +02:00
Zoltan Kochan
f307b9a130
Merge remote-tracking branch 'origin/main' into v11
2025-09-24 10:51:53 +02:00
Zoltan Kochan
f6242c333b
chore(release): 10.17.1
2025-09-22 15:09:34 +02:00
Zoltan Kochan
cb0c5b94c6
Merge remote-tracking branch 'origin/main' into v11
2025-09-19 14:31:36 +02:00
Zoltan Kochan
1a1a272fa4
chore(release): 10.17.0
2025-09-17 16:48:25 +02:00
Zoltan Kochan
ea44ff979f
chore(release): 10.16.1
2025-09-13 19:20:27 +02:00
Zoltan Kochan
6f861bccaa
Merge remote-tracking branch 'origin/main' into v11
2025-09-12 22:35:14 +02:00
Zoltan Kochan
a3c1498403
chore(release): 10.16.0
2025-09-12 14:24:30 +02:00
Zoltan Kochan
3d1711a439
chore(release): 10.15.1
2025-09-01 11:41:05 +02:00
Zoltan Kochan
46a65def8e
Merge remote-tracking branch 'origin/main' into v11
2025-08-29 13:30:11 +02:00
Zoltan Kochan
491a84fb26
feat: use ESM instead of commonjs ( #9870 )
2025-08-25 10:02:00 +02:00
Zoltan Kochan
979ce80c87
chore(release): 10.15.0
2025-08-19 17:50:28 +02:00
Zoltan Kochan
f2f3979e5a
Merge branch 'main' into v11
2025-08-19 00:17:44 +02:00
Zoltan Kochan
c89c93d59b
test: use @jest/globals ( #9877 )
2025-08-19 00:16:25 +02:00
Zoltan Kochan
7d2fd48215
feat!: drop Node.js 18 support ( #9858 )
2025-08-14 14:06:03 +02:00
Zoltan Kochan
dcfb186f21
chore(release): libs
2025-08-07 14:09:55 +02:00
Zoltan Kochan
a4d654807c
chore(release): 10.14.0
2025-07-31 15:00:26 +02:00
Zoltan Kochan
fb9de7ac3a
chore(release): 10.14.0-0
2025-07-23 14:54:13 +02:00
btea
4a8243a00d
chore: package.json add type field ( #9765 )
...
* chore: `package.json` add type field
* chore: add type field to every package.json
* chore: add type field to every package.json
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2025-07-20 03:21:46 +02:00
Zoltan Kochan
8bec871257
chore(release): 10.13.1
2025-07-09 12:03:18 +02:00
Zoltan Kochan
168a793669
chore(release): 10.13.0
2025-07-09 00:44:17 +02:00
Zoltan Kochan
337a110dbc
chore(release): 10.12.4
2025-06-26 19:02:39 +02:00
Zoltan Kochan
c76822cd07
chore(release): 10.12.3
2025-06-24 11:55:28 +02:00
Zoltan Kochan
5d2308c9aa
chore(release): 10.12.2
2025-06-23 02:16:13 +02:00
Zoltan Kochan
89bc2c6637
chore(release): 10.12.0
2025-06-08 15:04:58 +02:00
Zoltan Kochan
b217bbb4a7
feat: add a new setting for telling pnpm if the env is CI ( #9616 )
...
This is an addition to https://github.com/pnpm/pnpm/pull/8190 . The global virtual store isn't a good choice for CI. So, we disable it even if the setting sets `enableGlobalVirtualStore` to `true`.
2025-06-08 15:00:22 +02:00
Zoltan Kochan
cecd039cd8
chore(release): 10.11.1
2025-06-02 15:59:40 +02:00
Brandon Cheng
099ac93e08
refactor: use Catalogs config type instead of CatalogSnapshots for updatedCatalogs ( #9589 )
...
* refactor: use Catalogs config type instead of CatalogSnapshots
* refactor: create catalogMetadata instead of manually patching snapshots
2025-06-01 23:53:04 +02:00
Khải
c8341cca57
feat: pnpm add option to add new entries to catalogs ( #9484 )
...
close #9425
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2025-05-14 18:32:05 +02:00