Zoltan Kochan
e4d08f920e
fix(exec): preserve user execution cwd ( #10445 )
...
close #5759
close #10403
2026-01-12 15:41:17 +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
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
btea
05dd45ea82
perf: replace startsWith with strict equality ( #9881 )
2025-08-21 14:14:26 +02:00
Zoltan Kochan
facd7656e8
refactor: always use extensions in relative imports ( #9878 )
2025-08-19 15:25:11 +02:00
modten
36d1448c48
feat: add workspace-concurrency cli option for pack and publish command ( #9493 )
...
* refactor: set the default `workspaceConcurrency` to `Math.min(os.availableParallelism(), 4)`
* feat(plugin-commands-publishing): add `workspace-concurrency` cli option for pack and publish
* feat(recursive): add support for `recursive pack`
* feat: get default workspaceConcurrency from config package
* test(config): mock cpus to support Node.js 18
2025-05-09 10:30:21 +02:00
Zoltan Kochan
9362b5fb15
fix: updateConfig in pnpm-workspace.yaml should not be ignored ( #9501 )
...
* fix: updateConfig in pnpm-workspace.yaml should not be ignored
close #9500
* fix: reading executionEnv from pnpm-workspace.yaml
2025-05-08 12:24:43 +02:00
Khải
57f989ef45
fix(exec): add missing node-options to recursive run ( #9264 )
...
* fix(run): add missing `node-options` to `recursive`
Fixes https://github.com/pnpm/pnpm/issues/9180
* refactor: share code
* refactor: remove unused field
2025-03-11 02:52:59 +01:00
Khải
e32b1a29e9
feat: update injected packages after run ( #9100 )
...
* feat: update injected packages after run (wip)
close #9081
* refactor: rename field
* feat: injectedPackages (wip)
* feat: findInjectedPackages (wip)
* feat: complete implementation
* test: findInjectedPackages
* docs: changeset
* refactor: be lazy
* chore: set `version` to `1000.0.0-0`
* feat: use hardlinks for injected packages
* refactor: just use `.modules.yaml`
* feat: debug logger
* refactor: `modulesDir` is unnecessary
* test: shouldUpdateInjectedFilesAfterRun
* fix(test): remove the test command
* test: updateInjectedPackagesAfterRun
* fix: eslint
* feat: rename config
* perf: diff to reduce fs operations
* perf: load source map only once
* chore(deps): remove unused dependencies
* fix: eslint
* refactor: use `symlink-dir`
* refactor: move type expr to an alias
* refactor: simplify types
* feat: reuse stats from the directory fetcher
* test: directories and symlinks
* feat: sort alphabetic
* test: diffDir
* test: rename a test
* test: remove nesting
* refactor: rename
* feat: remove buggy symlink support
* test: applyPatch
* docs: correct
* docs: fix
* test: extendFilesMap
* docs: remove outdated comment
* docs: remove unneeded comment
* test: fix
* test: more assertions
* test: DirPatcher
* test: more assertions
* test: more assertions
* test: just use `createDir`
* test: multiple patchers
* test: reuse stat results
* docs: consistent grammar
* test: workaround
* test: fix windows
* refactor: remove single-use `makeParent`
* refactor: remove nonsense test
How could I even misunderstand my own code?!
`Patcher.apply()` will never call stat on the files because they have all
been loaded to calculate `Patcher.patch`.
This test is therefore nonsense.
* feat: rename
* feat: rename again
* feat: remove `boolean`
* fix: broken lockfile
* test: use a fixture for testing sync injected deps
* test: refactor syne injected deps test
* test: refactor sync injected deps test
* test: refactor sync injected deps test
* refactor: rename injected deps to syncer
* refactor: change injected deps logger
* docs: update changeset
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2025-02-24 02:09:45 +01:00
Khải
c96eb2b042
fix(lifecycle): skip verify for install hooks ( #8957 )
...
close #8954
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2025-01-10 23:14:27 +01:00
Zoltan Kochan
4dd27a894f
feat: add an option to install dependencies before running scripts ( #8781 )
2024-11-25 09:02:12 +01:00
Zoltan Kochan
e200728e0b
fix: parameters should be passed down to the executed script when running pnpm t ( #8776 )
2024-11-17 22:55:04 +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
74c6dd3cca
fix!: the test command should pass all args to the underlying script ( #8619 )
2024-10-09 01:36:00 +02:00
Khải
c43386031d
refactor: break a long line into multiple lines ( #8592 )
2024-10-01 13:33:13 +02:00
Khải
0ef168b77d
feat: per-package node version ( #8277 )
...
close #6720
2024-07-13 14:08:57 +02:00
Zoltan Kochan
a2e9bdcc02
refactor: remove path-exists from tests
2024-07-08 17:51:23 +02:00
Khải
a8bc9902b6
refactor(exec): type checking perf ( #7911 )
2024-04-13 00:18:14 +02:00
Zoltan Kochan
0564745b1d
style: use unknown in try/catch ( #7709 )
2024-03-06 01:47:04 +01:00
Nacho Aldama
1a3449e940
feat: support node-options in .npmrc file ( #7601 )
...
сlose #7596
2024-02-01 13:21:03 +01:00
Khải
1474bfd89a
fix(run): stop passing flags as fallback command ( #7370 )
...
close #7244
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2023-12-06 19:53:32 +01:00
Chris
ee328fd25e
feat(reporter): add --hide-reporter-prefix option ( #7086 )
...
close #7061
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2023-09-23 03:56:36 +03:00
Khải
c5fbdb55c2
feat: friendlier error message when command not found ( #6887 )
...
---------
Co-authored-by: Zoltan Kochan <z@kochan.io >
2023-08-04 03:18:34 +03:00
Zoltan Kochan
a362a3ca16
fix(run): output of scripts running concurrently in one project ( #6780 )
...
ref #6692
2023-07-09 01:21:47 +03:00
Josh Goldberg ✨
ee429b300b
feat: expanded missing command error, including 'did you mean' ( #6496 )
...
close #6492
Co-authored-by: Zoltan Kochan <z@kochan.io >
2023-05-15 03:22:26 +03:00
Zoltan Kochan
ee61ca4cb7
style: update eslint ( #6236 )
2023-03-18 14:57:29 +02:00
await-ovo
0377d93678
feat: add --report-summary option for pnpm exec and pnpm run ( #6098 )
...
close #6008
2023-02-20 03:36:35 +02:00
Shinobu Hayashi
9ac6940442
feat: support to run multi script commands specified with regex selector ( #5871 )
2023-02-02 03:27:40 +02:00
Zoltan Kochan
640f4666c7
fix: the help of the run command should list --resume-from
2023-01-04 03:31:06 +02:00
await-ovo
da15828ec5
feat(plugin-commands-script-runners): support --resume-from for pnpm exec command ( #5856 )
...
close #4690
2023-01-02 12:08:20 +02:00
Zoltan Kochan
4ca53b0b50
refactor: group projects in different subdirectories ( #5659 )
2022-11-20 01:35:22 +02:00