Commit Graph

39 Commits

Author SHA1 Message Date
Johan Quan Vo
7b1c189f2e feat!: remove deprecated patch options (#10505)
* refactor: remove allowNonAppliedPatches

* refactor: remove ignorePatchFailures

* refactor: remove `strict` field in groupPatchedDependencies

* test: update test failure in package patching

* test: fix

* docs: update changesets

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2026-01-27 17:08:45 +01:00
Zoltan Kochan
8b4bdf9a83 refactor: replace onlyBuiltDependencies and ignoredBuiltDependencies with allowBuilds (#10401) 2026-01-02 23:21:17 +01:00
Zoltan Kochan
cb367b9515 feat!: deprecate old settings that were replaced by allowBuilds (#10382) 2026-01-02 12:22:42 +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
Randall Leeds
8385a8cff6 fix(deploy): omit inject workspace packages setting in deploy lockfiles (#10294)
* fix(deploy): omit inject workspace packages setting in deploy lockfiles

When the deploy command creates a new lockfile, create the deployment
lockfile without the setting to inject workspace packages, because it
has already been applied when creating the lockfile and the deployment
is not, itself, a workspace.

* docs: add changesets

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2025-12-12 14:33:37 +01: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
Zoltan Kochan
facd7656e8 refactor: always use extensions in relative imports (#9878) 2025-08-19 15:25:11 +02:00
Zoltan Kochan
cf630a8e84 feat: allow to set multiple pnpmfiles (#9702) 2025-07-08 14:54:07 +02:00
Khải
983efdc7f1 fix(deploy): overrides contain peer dependencies (#9604)
close #9595
2025-06-10 00:45:55 +02:00
Alexander Tkachev
aad7eebc2d fix: let deploy inherit overrides (#9546)
* fix: let deploy inherit overrides

Prevents the following error in "pnpm deploy" with "inject-workspace-packages=true":
  ERR_PNPM_LOCKFILE_CONFIG_MISMATCH Cannot proceed with the frozen installation.
  The current "overrides" configuration doesn't match the value found in the lockfile

* chore: add changeset

* docs: update old-symbols-invite.md

close #9283
close #9483
2025-05-19 10:42:04 +02:00
Brandon Cheng
9d3008529c refactor: remove deployCatalogHook (#9320) 2025-03-26 10:33:51 +01:00
Brandon Cheng
e781c2b876 test: ensure only selected workspace packages are linked on deploy (#9257) 2025-03-11 03:15:50 +00:00
Zoltan Kochan
f5940ccf91 fix(deploy): don't remove fields from the deployed package's package.json (#9222)
close #9215
2025-03-06 12:08:12 +01:00
Zoltan Kochan
d965748ff4 feat: setting config settings via pnpm-workspace.yaml (#9211)
Related discussion: https://github.com/orgs/pnpm/discussions/9037
2025-03-04 15:09:13 +01:00
Patrick Kerschbaum
0858c0660d test: add tests for pnpm rebuild in deployed packages (#8990)
* test: implement e2e test cases for "pnpm deploy" and "pnpm rebuild" lifecycle scripts things

* test(plugin-commands-deploy): add test case for keeping files created by lifecycle scripts

* improve

* test: remove try-catch for now

* refactor: prefer `expectSuccess`

* test: specify `rootProjectManifest[Dir]`

* refactor: prefer `expectSuccess` at more places

* test: fix test case

* test: fix test case

* test: remove undesired package.json modification

---------

Co-authored-by: khai96_ <hvksmr1996@gmail.com>
2025-01-26 19:51:31 +01:00
Khải
9a44e6ce87 fix(deploy): inherit pnpm from the root manifest (#8991)
* fix(deploy): inherit `pnpm` from the root manifest

* fix: eslint

* refactor: share code

* test: add

* fix: eslint

* fix: remove duplicate dep from package.json
2025-01-26 17:26:16 +01:00
Khải
f89128883f feat(deploy): create dedicated lockfile (#8828)
* feat(deploy): create dedicated lockfile

Closes https://github.com/pnpm/pnpm/issues/8778

* chore: remove a leftover `console.log`

* fix: hoisted should also use dedicated lockfile

* feat: inherit more keys

* docs(changeset): more details

* refactor: remove a variable

* refactor: use `selectedProject.rootDir`

* fix: manifest files

* fix: update lockfile

* fix: accidentally skipped normal dependencies

* test: update

* fix: meta

* fix: remove links to nowhere

* docs: remove the false todo

* fix: transitive workspace dependencies

* fix: package snapshot names

* fix: dependencies that depend on deployed package

* perf: do not repeat computation

* fix: compile error

* refactor: base on allProjects

* fix: add missing `link:` prefix

* test: add some tests

* fix: revert stupid refactor

This reverts commit 000788127c.

* test: more assertions

* test: more assertions

* test: https://github.com/pnpm/pnpm/issues/8778

* test: exact paths

* refactor: use `toBe`

* refactor: divide section

* fix: eslint

* test: fix assertions

* fix: dependencies that depend on deploy package

* perf: cheap operation first

* test: remove `.only`

* test: add assertions

* test: remove unnecessary assertions

* test: remove unnecessary details

* fix: deployed package depends on itself

* docs: remove the other todo

* fix: self-referential dependencies

* test: fix

* test: more assertions

* feat: convert fallbacks to programmer errors

* fix: `file:` protocol

* refactor: more types

* refactor: remove unused variables

* refactor: fix regex

* feat: force-legacy-deploy

* feat: suggest reporting bug and using workaround

* feat: overrides, patchedDependencies, packageExtensions (wip)

* test: fix

* feat: handle `packageExtensions` in a smarter way

* fix: pnpmfile

* docs: change wording

* fix: `packageExtensions` with internal dependencies

* fix: directory resolution location

* refactor: use `rootProjectManifestDir`

* feat: set `overrides` to `undefined` instead

* refactor: remove `as ProjectRootDirRealPath`

* test: packageExtensions

* test: use regex string matchers

* refactor: move new tests to its own file

* fix: patchedDependencies

* fix: eslint

* test: patchedDependencies

* test: fix windows

* fix: pnpmfile checksum

* docs: change wording

* fix: peer dependencies

* docs: omission of peers

* docs: more detailed explanation

* fix: preserve unique peer dependencies suffix

* refactor: code rearrange

* refactor: shorten lines of code

* feat: add `dedupeInjectedDeps` to `InstallCommandOptions`

* test: peer dependencies suffix

* docs(changeset): config -> force-legacy-deploy

* docs(changeset): merge

* docs(changeset): add missing period
2024-12-27 17:17:12 +01:00
Zoltan Kochan
31911f103e fix: dependency status check should never throw an exception (#8852) (#8857) 2024-12-10 17:16:08 +01:00
Zoltan Kochan
d47c4266db perf: faster repeat install (#8838) 2024-12-08 23:42:33 +01:00
Zoltan Kochan
e9985b6f21 feat!: default value of virtual-store-dir-max-length set to 60 on Windows (#8556) 2024-09-23 09:30:45 +02:00
Khải
ad1fd64b64 fix(deploy): node-linker=hoisted produces empty node_modules (#8525)
close https://github.com/pnpm/pnpm/issues/6682

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-09-20 03:27:05 +02:00
Khải
f071d00815 refactor: replace forEach with for-loops (#8535)
* refactor: replace `forEach` with `for`-loops

Changes:
* Most `Object.keys(o).forEach` are replaced by `for in`.
* Most `Array.filter(c).forEach` are replaced by `for of` + `if continue`.
* `return` in `forEach` callbacks are replaced by `continue`.

There may be minor improvement to memory footprint as this change would
reduce the creations of temporary arrays and temporary functions.

* fix: return -> continue

* refactor: remove the commented out code
2024-09-18 03:58:25 +02:00
Zoltan Kochan
eeb76cd1d0 fix: deploy with shared-workspace-lockfile=false (#8515)
close #8475
close #8504
2024-09-11 15:32:57 +02:00
Zoltan Kochan
7ee59a166a fix(deploy): write node_modules/.modules.yaml to the deploy directory (#8465)
close #7731
2024-08-26 17:07:16 +02:00
Khải
9b4f73caaf chore(scripts): typecheck-only (#8395)
* chore(scripts): typecheck-only

* feat: change all configuration

* feat: include pnpm/ and pnpm/test/

* chore(deps): remove unused dependency

* refactor(typescript-only): use find-packages

* refactor(typescript-only): refactor paths

* fix: typescript-only

* fix: update compile-only

* fix: compile pnpm

* fix: windows

* fix: windows

* chore: meta-updater

* refactor(tsconfig): remove explicit composite

* fix: path in windows

* feat: don't depend on cwd

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-08-11 08:26:01 +02:00
Brandon Cheng
1e4dd79163 fix: install failure on pnpm deploy when using catalogs (#8298)
* fix: install failure on pnpm deploy when using catalogs

* test: add test for pnpm deploy when using catalogs

* chore: changeset
2024-07-14 02:45:35 +02:00
Brandon Cheng
75a98e12b3 refactor: improve type checking when finding workspace packages (#8214)
---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-06-17 17:34:54 +02:00
Brandon Cheng
c7e1b6fae8 chore: configure TypeScript project references for tests (#8128)
* refactor: store link values before converting to references

* fix: use .sort() without localeCompare

https://github.com/pnpm/pnpm/pull/8128#discussion_r1614031566

> Nit, but you probably just want to call sort without a comparison
> function; these are already strings and locale compare is not a good
> comparison for anything but human readable strings since it will
> differ on different people's machines based on their language setting.
> I've hit this too many times before for code gen.

* feat: configure meta-updater to write test/tsconfig.json files

* fix: relative imports for __typings__

* chore: `pnpm run meta-updater`

* fix: explicitly use test/tsconfig.json for ts-jest
2024-05-31 12:48:13 +02:00
Zoltan Kochan
9719a42d0e feat: configurable max length of directories inside node_modules/.pnpm (#7994)
close #7355
2024-04-28 11:07:29 +02:00
Zoltan Kochan
21878e7ae4 feat(lockfile)!: change the keys format (#7752) 2024-03-17 23:01:39 +01:00
Zoltan Kochan
19542ecd28 test: use sync operations for assertions (#7663) 2024-02-16 16:23:23 +01:00
JasonMan34
693944b669 feat(deploy): don't rimraf out directory if it's not empty (#7360)
close #7351

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-12-30 16:59:52 +01:00
Zoltan Kochan
d6592964f0 refactor: rootProjectManifestDir is a required option 2023-10-24 15:14:33 +03:00
Zoltan Kochan
d92070876d revert: "feat(deploy): apply publishConfig to all packages during deploy (#6943)" (#7058)
This reverts commit d57e4de6dc.

This reverts #6943

This will solve:

- https://github.com/pnpm/pnpm/issues/7040
- https://github.com/pnpm/pnpm/issues/6994
2023-09-06 01:05:47 +03:00
Jacob Ley
d57e4de6dc feat(deploy): apply publishConfig to all packages during deploy (#6943)
When deploying packages, the package.json of the deployed package
(as well as any other locally defined dependencies)
should be treated as if it published, and mutate the package.json
according to `publishConfig` and local `workspace:` dependencies.

close #6693

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-08-25 02:13:29 +03:00
await-ovo
78d43a8627 fix(deploy): ensure that the deploy target is generated in the same directory (#6859)
close #6858

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-07-29 18:44:55 +03:00
await-ovo
7a0ce1df08 feat!: deploy with local dependencies (#6016)
Co-authored-by: Zoltan Kochan <z@kochan.io>

Close #5911
Close #5961
2023-02-19 04:23:31 +02:00
Zoltan Kochan
4ca53b0b50 refactor: group projects in different subdirectories (#5659) 2022-11-20 01:35:22 +02:00