Zoltan Kochan
03c502c1a0
fix: detect overrides and other lockfile-affecting setting changes in optimisticRepeatInstall ( #10654 )
...
* fix: detect overrides and other lockfile-affecting setting changes in optimisticRepeatInstall
When optimisticRepeatInstall was enabled, changing overrides,
packageExtensions, ignoredOptionalDependencies, patchedDependencies,
or peersSuffixMaxLength would not trigger a reinstall because these
settings were not tracked in the workspace state file.
* refactor: extract WORKSPACE_STATE_SETTING_KEYS to prevent type/runtime drift
The settings key list in createWorkspaceState's pick() call must stay
in sync with the WorkspaceStateSettings type. Extract a shared const
array so both the type and runtime pick are derived from a single
source, preventing the class of bug fixed in the previous commit.
2026-02-20 14:00:25 +01:00
Zoltan Kochan
e18a879d72
feat!: drop Node.js 22.12 support
2026-02-18 14:54:09 +01:00
Karl Kaiser
1fd7370639
feat(workspace filtering): add support for filtering packages since last commit under git worktree ( #10542 )
...
support managing repo in git worktree for filtering for packages changed since last commit
2026-02-11 02:05:45 +01:00
Zoltan Kochan
1b4df57a01
feat!: drop Node.js 20 and 21 support ( #10569 )
2026-02-08 19:16:24 +01:00
Alessio Attilio
121f64ae99
fix: preserve reference overrides in pnpm audit --fix ( #10478 )
...
close #10325
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2026-02-06 14:03:08 +01:00
btea
e119c4ede6
feat: support check more invalid workspace file ( #10319 )
...
close #10313
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2026-01-27 17:28:14 +01:00
Yeom
4f66fbe6fa
fix(workspace.manifest-writer): preserve formatting in pnpm-workspace.yaml when updating catalogs ( #10430 )
...
* fix(workspace.manifest-writer): preserve yaml formatting in pnpm-workspace.yaml
Ensure that the original formatting (quotes, etc.) in pnpm-workspace.yaml
is preserved when running commands like \`pnpm update\`.
Close #10425
* docs: add changeset
* fix(workspace/manifest-writer): restore formats
* test: manifest writer preservers quotes in catalogs
* fix(workspace.manifest-writer): only update catalog when values change
* fix: remove redundant code
* test: adding catalog
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2026-01-26 07:07:28 +01:00
Shunta Takemoto
0625e20442
feat: treat bare workspace: protocol as workspace:* ( #10436 )
...
* feat: treat bare `workspace:` protocol as `workspace:*`
* chore: add chageset
* test(exportable-manifest): add test for `workspace` with explicit versions
* test: add tests and update changesets
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2026-01-26 07:06:01 +01:00
Zoltan Kochan
e3b35b6f37
style: update eslint to v9 ( #10474 )
2026-01-17 12:01:23 +01:00
Johan Quan Vo
cc1b8e310a
fix: use tarball URL returned in package metadata ( #10431 )
...
close #10254
2026-01-16 17:31:04 +01:00
Zoltan Kochan
a00f9e515c
chore: use typescript-go ( #10452 )
2026-01-14 01:18:13 +01:00
Zoltan Kochan
c5d4d81f56
refactor: rename FilesIndex to FilesMap ( #10427 )
2026-01-08 18:17:57 +01:00
Brandon Cheng
2b14c742eb
feat: preserve comments when updating pnpm-workspace.yaml ( #10402 )
...
* chore: create empty new `@pnpm/yaml.document-sync` package
* feat: implement @pnpm/yaml.document-sync
* feat: preserve comments when updating `pnpm-workspace.yaml`
* fix: add missing rootProjectManifestDir field to fix test
This was causing a test to fail due to the rootProjectManifestDir being
an empty string.
The main branch doesn't have this problem because `write-yaml-file`
internally does a `path.dirname(...)` call that ends up resolving the
empty string to `.`.
● logger warns about peer dependencies when linking
ENOENT: no such file or directory, mkdir ''
25 | singleQuote: true, // Prefer single quotes over double quotes
26 | })
> 27 | await fs.promises.mkdir(dir, { recursive: true })
| ^
28 | await writeFileAtomic(path.join(dir, fileName), manifestStr)
29 | }
30 |
at writeManifestFile (../../workspace/manifest-writer/src/index.ts:27:3)
at updateWorkspaceManifest (../../workspace/manifest-writer/src/index.ts:83:3)
at writeSettings (../../config/config-writer/src/index.ts:38:3)
at addLinkToManifest (src/link.ts:182:3)
at src/link.ts:161:7
at async Promise.all (index 0)
at Module.handler (src/link.ts:159:3)
at Object.<anonymous> (test/link.ts:300:3)%
* Update workspace/manifest-writer/src/index.ts
2026-01-06 01:11:17 +01:00
Zoltan Kochan
cb367b9515
feat!: deprecate old settings that were replaced by allowBuilds ( #10382 )
2026-01-02 12:22:42 +01:00
btea
ace7903b85
fix: sync --allow-build flag value to allowBuilds ( #10343 )
...
* fix: sync `--allow-build` flag value to `allowBuilds`
* feat: rename
* fix: update
* chore: reset
* fix: update
* fix: test
* fix: update
* fix: update
2025-12-30 00:35:08 +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
Zoltan Kochan
0048667db4
refactor: use Maps instead of Records ( #10312 )
2025-12-15 11:48:19 +01:00
Zoltan Kochan
76718b32ad
feat: create a new field for allowing/disallowing builds ( #10311 )
...
ref #10235
2025-12-13 22:14:27 +01:00
Zoltan Kochan
7e2910e70f
chore(release): 11.0.0-alpha.0
2025-11-13 15:44:27 +01:00
Khải
075aa993bb
feat(config): global yaml ( #10145 )
...
* feat(config): global `rc.yaml`
* fix: undefined `rawConfig`
* test: add a test
* feat: re-export `isSupportedNpmConfig`
* feat: return `'compat'` to distinguish compatibility reason
* docs: `isSupportedNpmConfig`
* fix: eslint
* docs: clarify the case of the config key
* feat(cli/config/set): target yaml for pnpm-specific settings
* fix: read the correct file
* fix: write to the correct directory
* refactor: remove disabled code
* refactor: get `configDir` directly
* docs: remove outdated documentation
* test: fix a test
* test: rename
* fix: explicitly tell npm the config file path
* test: add a test
* test: add a test
* test: fix a test
* fix: local config dir
* fix: `managingAuthSettings`
* test: rename
* test: fix
* test: add a test
* test: demonstrate choosing config files
* test: fix
* docs: yet another consideration
* test: demonstrate choosing config files
* fix: correct local config file names in test helper
* test: demonstrate choosing config files
* test: use the helper
* test: add a test
* test: correct a test
* test: fix
* test: fix
* fix: eslint
* test: remove duplicate
* feat: validate `rc.yaml`
* docs: changeset
* test: fix `configDelete.test.ts`
* feat: other `npm` call-sites
* fix: make optional again
* feat: remove the change from `publish`
* fix: eslint
* refactor: just one is sufficient
* refactor: replace type union with 3 functions
* refactor(test): extract helper functions
* fix: add `rc.yaml` to `rawConfig`
* test: keep workspace settings out of `rc.yaml`
* test: fix `spawn ENOENT`
* chore(git): revert invalid change
This reverts commit 1ff6fe2323 .
* feat: rename `rc.yaml` to `config.yaml`
* refactor: replace `acceptNonRc` with `!globalSettingsOnly`
* feat!: remove compat completely
* refactor: rename a function
* fix: no actual catalogs
* refactor: replace bool flag with preemptive filter
* feat!: filter global config keys
* test: fix
* fix: exclude `deploy-all-files`
* fix: reverse schema merge order
* feat(cli/config/set): validate global config yaml key
* test: remove duplicated assertion
* docs: correct
* docs: goal changed
2025-11-11 11:24:06 +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
0cde1287c8
chore: update repository fields
2025-10-23 11:57:12 +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
月正海角
6089939e15
fix: sync bin links after injected deps sync ( #10064 )
...
* fix: sync bin links after injected deps sync
* test: add integration test for bin sync after scripts
* docs: add changeset for bin sync fix
* style: apply Copilot's suggestion
2025-10-13 15:45:59 +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
6618431aee
chore(release): libs
2025-09-29 11:56:00 +02:00
Zoltan Kochan
7d075325b9
Merge remote-tracking branch 'origin/main' into v11
2025-09-28 16:01:58 +02:00
btea
93fdc73626
fix: correctly apply cleanupUnusedCatalogs when remove pkg ( #10005 )
...
close #9993
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2025-09-28 00:55:43 +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
1089a96589
fix: update dependencies ( #9899 )
2025-08-28 15:33:19 +02:00
Zoltan Kochan
cf9f14aa9e
fix: update tempy
2025-08-28 14:00:51 +02:00
Zoltan Kochan
491a84fb26
feat: use ESM instead of commonjs ( #9870 )
2025-08-25 10:02:00 +02:00
Zoltan Kochan
27cbc09206
style: fix jest-related linting issues ( #9894 )
2025-08-22 21:56:49 +02:00
btea
05dd45ea82
perf: replace startsWith with strict equality ( #9881 )
2025-08-21 14:14:26 +02:00
Zoltan Kochan
979ce80c87
chore(release): 10.15.0
2025-08-19 17:50:28 +02:00
Zoltan Kochan
51bc234712
Merge branch 'main' into v11
2025-08-19 15:29:18 +02:00
Zoltan Kochan
facd7656e8
refactor: always use extensions in relative imports ( #9878 )
2025-08-19 15:25:11 +02:00