Commit Graph

388 Commits

Author SHA1 Message Date
Zoltan Kochan
70d565cf79 chore(release): 10.5.1 2025-02-26 12:56:43 +01:00
R.P. Pedraza
76973d8c81 feat(link): normalize generated link paths in package.json (#9163) 2025-02-26 02:56:59 +01:00
Zoltan Kochan
0e9fff7bef chore(release): 10.5.0 2025-02-25 12:27:14 +01:00
R.P. Pedraza
529696182f fix: reference root manifest directory instead of the dependent dir (#9132)
* fix: reference root manifest directory instead of the dependent dir

This fixes https://github.com/pnpm/pnpm/issues/9066.

* refactor: link test

* docs: add changeset

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2025-02-25 02:15:38 +01:00
Zoltan Kochan
8fcc221394 feat: reading settings from pnpm-workspace.yaml (#9121)
Related discussion: https://github.com/orgs/pnpm/discussions/9037

close #9033
2025-02-22 02:10:43 +01:00
Zoltan Kochan
ee72c62db9 chore(release): 10.4.1 2025-02-16 22:37:26 +01:00
btea
546ab377de fix: --allow-build=<pkg> overlaps with ignoredBuiltDependencies (#9105)
* fix: `--allow-build=<pkg>` overlaps with `ignoredBuiltDependencies`

* feat: update

* fix: update

* test: update

* fix: add hint to the error message

* test: fix

* docs: update changeset

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2025-02-16 22:07:52 +01:00
Zoltan Kochan
2a6b51f483 chore(release): 10.4.0 2025-02-14 01:18:32 +01:00
Zoltan Kochan
91d46eecd4 feat: add --allow-build=<pkg> to add command (#9086) 2025-02-13 00:43:44 +01:00
Zoltan Kochan
1dc2804f7a chore(release): 10.3.0 2025-02-11 00:34:43 +01:00
Zoltan Kochan
f6006f2b4b feat: add an option to fail on unapproved dependency builds (#9071) 2025-02-11 00:26:25 +01:00
Zoltan Kochan
d40dfebdca chore(release): 10.2.1 2025-02-06 20:00:29 +01:00
Zoltan Kochan
97e0f5da61 chore(release): 10.2.0 2025-02-03 18:32:38 +01:00
Zoltan Kochan
b5ba5350bf feat(dlx): add an option to dlx for providing a list of deps that are allowed to run install scripts (#9026) 2025-02-03 14:46:28 +01:00
Zoltan Kochan
c5a0b9ea43 chore(release): 10.1.0 2025-01-26 22:26:45 +01:00
Khải
f3ffaed009 feat(install): option to disable fast reinstall (#8977) 2025-01-26 11:53:16 +01:00
Zoltan Kochan
961dc5d29d feat: add ignored-builds command (#8963)
* feat: add ignored-builds command

* test: ignored-builds

* test: ignored-builds

* fix: document the new command

* refactor: update text

* feat: add approve-builds command

* feat: rebuild approved packages

* fix: ignored builds

* feat: add final approval prompt

* test: approve builds

* refactor: approve-builds
2025-01-25 18:51:35 +01:00
Zoltan Kochan
42ecf04fd0 chore(release): 10.0.0 2025-01-07 15:28:17 +01:00
Zoltan Kochan
e050221384 fix: pnpm link should keep the indentations in the updated manifest 2025-01-07 02:48:02 +01:00
Zoltan Kochan
c5080ded56 chore(release): 10.0.0-rc.3 2025-01-05 13:26:28 +01:00
Zoltan Kochan
cc3bbc950d fix: don't load side-effects cache for packages that are not allowed to be built (#8901)
* fix: don't read ignored deps from side effects cache

* test: fix

* test: fix
2025-01-05 03:17:54 +01:00
Zoltan Kochan
9591a18d96 feat: configurational dependencies (#8915)
* feat: configuration dependencies

* feat: remove configuration dependencies

* feat: update configuration dependencies

* feat: configuration dependencies fast check on repeat install

* revert: comment

* refactor: install configurational deps

* refactor: install config deps

* refactor: install config deps

* test: config deps

* test: config deps

* docs: add changeset

* test: loading a pnpmfile from config deps

* fix: reading hooks after installing config deps

* test: fix

* test: fix

* test: fix

* test: fix

* test: loading patch from config dep

* fix: do not allow config deps w/o integrity checksum
2025-01-04 11:29:22 +01:00
Fotis Papadogeorgopoulos
c7eefdd082 fix: pnpm update --filter --latest should only change relevant packages and projects, with dedupe-peer-dependents=true (#8905)
* test(update): add failing tests for update with dedupe-peer-dependents=true

Relates to https://github.com/pnpm/pnpm/issues/8877

* fix: update --filter --latest should work with dedupe-peer-dependents

Fixes https://github.com/pnpm/pnpm/issues/8877, whereby
`update --filter --latest` with `dedupe-peer-dependents` would end up
updating all available dependencies for all projects.

* test(pnpm): more accurate dedupePeers filtered install case

* docs: add changeset for updateToLatest moving to projects/importers

* docs: add changesets for pnpm and plugin-commands-installation

* chore: fix tsc issue by removing unknown bound resolver property

This unknown property was accepted by tsc prior to adding updateToLatest
in toResovleImporter options, but now it was erroring out. This is
likely a tsc quirk about the shape of the object; regardless that
property is not defined, and should not be present.

* test: keep only pnpm/test/monorepo/dedupePeers.test.ts

There was duplicate coverage of the pnpm update --filter --latest
command between two tests, so this keeps only the one dedicated
to testing the dedupe-peer-dependents feature.

* chore: fix unused import error
2024-12-29 17:30:36 +01:00
Zoltan Kochan
e103abe941 chore(release): 10.0.0-rc.2 2024-12-29 02:47:35 +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
b27e7f553a chore(release): 10.0.0-rc.1 2024-12-27 14:20:04 +01:00
Fotis Papadogeorgopoulos
f685565f92 fix(remove): ensure that link-workspace-packages=false is respected in single project runs in a workspace (#8881) 2024-12-19 01:39:21 +01:00
Zoltan Kochan
38eb97a8b3 chore(release): libs 2024-12-18 13:40:41 +01:00
Zoltan Kochan
3278c588cd chore(release): 10.0.0-rc.0 2024-12-16 02:31:45 +01:00
Zoltan Kochan
ac5b9d8e16 feat!: ignore the NODE_ENV env variable (#8839)
close #8827
2024-12-15 20:24:51 +01:00
Zoltan Kochan
a76da0c53c feat!: remove conversion of lockfile v6 to v9 (#8866) 2024-12-15 14:39:19 +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
b8bda0ac40 fix: global update should not fail if no packages are found (#8829)
ref #7898
2024-12-04 10:47:38 +01:00
Zoltan Kochan
3fe70e7897 refactor!: all lib versions should start with pnpm major version 2024-11-29 01:04:45 +01:00
Zoltan Kochan
9fcc7e808e chore(release): 10.0.0-beta.0 2024-11-28 12:35:01 +01:00
Khải
19d5b51558 feat(exec): check dependencies before running scripts (#8645)
* refactor: break a long line into multiple lines

* feat: cache that tracks workspace structures

* feat: handle hash collisions

* docs(changeset): packages-list-cache

* feat(packages-list-cache): store mtime

* fix(packages-list-cache): JSON5 and YAML manifests

* feat(packages-list-cache): add catalogs

* style: sort fields alphabetically

* fix: actually fix it

* lint: fix

* lint: fix

* test(packages-list-cache): test

* feat(exec): check deps before run scripts

Resolves https://github.com/pnpm/pnpm/issues/8585

* style: fix eslint

* feat: use a single lastValidatedTimestamp

* refactor: rearrange

* perf: don't do pointless comparisons

* perf: optimize non-workspace

* perf: optimize sharedWorkspaceLockfile=false

* perf: remove unnecessary fs reads

* refactor: statManifestFile

* perf: skip comparing manifest to lockfile by stats

* feat: add wantedLockfileDir to error message

* refactor: shorten a function name

* refactor: rename a function

* docs: improve wordings

* feat: export `linkedPackagesAreUpToDate`

* feat: make sure lockfile specs satisfy manifest (wip)

* docs: todo

* fix: projectId

* feat: skip install-related scripts

* fix: type errors

* refactor: use tagged union

* refactor: remove unnecessary type expression

* docs: todo

* feat: add linkedPackagesAreUpToDate (wip)

* refactor: rearrange fields

* refactor: remove a temporary variable

* feat: export `getWorkspacePackagesByDirectory`

* feat: make workspacePackages optional

* feat: complete `linkedPackagesAreUpToDate`

* docs: remove unapplicable todo

* docs: explain why check is skipped

* feat: load allProjects and try again

* refactor: remove unused dependencies

* refactor: remove commented-out code

* refactor: replace `else if` with `return`

* feat: use-case without workspace manifest

* perf: skip unnecessary work

* feat: add a guard

* fix: eslint

* refactor: move code to new package

* refactor: sort dependencies

* test: outline

* refactor: extract assertLockfilesEqual for testing

* test: skip failing tests for now

* fix: eslint

* test: assertLockfilesEqual

* refactor: extract statManifestFile for testing

* test: todo

* test: statManifestFile

* test: shouldRunCheck

* refactor: rename a test file

* test: add

* test: todo

* docs: remove a commented-out code

* test: create groups

* test: todo

* test: add

* test: platform agnostic

* test: remove unnecessary scripts

* test: use `assert.strictEqual` instead

* test: export bin locations

* test: nested `pnpm run`

* test: todo

* test: add `cwd` option to `execPnpmSync`

* test: add

* fix: recursive

* test: add

* test: fix package names

* fix: catalogs comparison

* test: add

* refactor: just use ramda filter

* test: add

* test: mutations

* fix: package.json

* fix: jest

* feat(packages-list): debug logs

* feat: add debug messages

* fix: eslint

* test: check debug messages in other case

* docs: add next step

* test: mtime updates without modification

* docs: correct test description

* test: mtime changes

* test: check should be skipped

* docs: remove fulfilled todos

* fix: remove `.only`

* docs: todo

* docs: correct test names

* test: workspace structure changes

* test: packages list cache

* test: add

* refactor: divide a test file into 2

* docs: consistent wordings

* refactor: clearer error messages

* fix: ignore check in recursive nested scripts

* test: no dependencies

* test: print error messages on failures

* test: improve stdout/stderr in error messages

* docs: consistent wordings

* docs: clarify what did what

* test: nested script

* docs: consistent test descriptions

* docs(changeset): correction

* fix: save catalogs to packages list

* test: catalogs

* test: fix

* test: fix windows

* refactor: remove unused option field

* refactor: prefer `!= null`

* feat: use `node_modules` instead

* refactor: rename a package

* refactor: apply suggestion

* refactor: remove workspaceDir

* refactor: move `shouldRunCheck` to `exec`

* feat: rename config key

* refactor: rename a test dir

* refactor: correct grammar

* refactor: make loadPackagesList sync

* test: multiple lockfiles

* feat: prevent deletion of `node_modules`

* feat: skip checking on filtered install

* fix: accidentally dropping catalogs

* refactor: remove unnecessary `Promise.all`

* refactor: use `virtualStoreDir` from config

* refactor: split `opts` into `ctx` and `opts`

* test: fix

* style: fix eslint

* test: fix windows

* feat(exec): add `verifyDepsBeforeRun` to `exec`

* refactor: sync stat

* feat: stop ignoring filtered install

* test: filtered install

* refactor: rearrange imports

* feat: rename "packages list" to "workspace state"

* test: fix

* fix: workspace state on failed install
2024-11-15 01:01:09 +01:00
Zoltan Kochan
6b27c811e7 fix!: do not allow to install pnpm globally via pnpm add (#8728) 2024-11-03 20:47:45 +01:00
Zoltan Kochan
26a910cbf8 chore(release): 10.0.0-alpha.0 2024-10-28 04:16:49 +01:00
Zoltan Kochan
32613a05af Merge remote-tracking branch 'origin/main' into v10 2024-10-28 04:01:43 +01:00
Zoltan Kochan
c4f5231761 feat!: bump store version to v10 (#8709) 2024-10-28 03:54:58 +01:00
Zoltan Kochan
0309365fda chore(release): 9.12.3 2024-10-28 03:11:09 +01:00
chlorine
6014522ddb fix: print ERR_PNPM_NO_GLOBAL_BIN_DIR error when global bin directory is not found (#8710) 2024-10-28 03:08:16 +01:00
Zoltan Kochan
284d5e9baf Merge remote-tracking branch 'origin/main' into v10 2024-10-26 13:33:00 +02:00
Shion Ichikawa
9335a45c2d style: fix lint errors (#8699)
close #8698
2024-10-26 12:56:26 +02:00
Zoltan Kochan
790ce1e869 Merge branch 'main' into v10 2024-10-25 22:24:10 +02:00
Zoltan Kochan
1dd419cbb4 test: fix killing the registry mock server on teardown (#8695) 2024-10-25 21:24:08 +02:00
Zoltan Kochan
477e0c1f74 feat!: the link command should add overrides (#8653) 2024-10-24 16:59:55 +02:00
Zoltan Kochan
50c3aaf46f Merge branch 'main' into v10 2024-10-23 14:08:15 +02:00
Zoltan Kochan
744711c8b3 chore(release): 9.12.2 2024-10-16 16:09:10 +02:00