diff --git a/README.md b/README.md index ad66ea367c1..1fc86778c03 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,17 @@ To quote the [Rush](https://rushjs.io/) team: + + + + + + + OOMOL Studio + + + + diff --git a/cspell.json b/cspell.json index 3c7bccf39e3..aeec426f0dc 100644 --- a/cspell.json +++ b/cspell.json @@ -157,6 +157,7 @@ "nushell", "ofjergrg", "onclickoutside", + "oomol", "ossl", "outfile", "overrider", diff --git a/exec/plugin-commands-script-runners/CHANGELOG.md b/exec/plugin-commands-script-runners/CHANGELOG.md index 1e4b616f0ce..d882f43e9e6 100644 --- a/exec/plugin-commands-script-runners/CHANGELOG.md +++ b/exec/plugin-commands-script-runners/CHANGELOG.md @@ -1,5 +1,12 @@ # @pnpm/plugin-commands-script-runners +## 1000.2.19 + +### Patch Changes + +- Updated dependencies [b511eac] + - @pnpm/plugin-commands-installation@1004.2.2 + ## 1000.2.18 ### Patch Changes diff --git a/exec/plugin-commands-script-runners/package.json b/exec/plugin-commands-script-runners/package.json index ee732d65d83..9ef502ed52a 100644 --- a/exec/plugin-commands-script-runners/package.json +++ b/exec/plugin-commands-script-runners/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/plugin-commands-script-runners", - "version": "1000.2.18", + "version": "1000.2.19", "description": "Commands for running scripts", "keywords": [ "pnpm", diff --git a/patching/plugin-commands-patching/CHANGELOG.md b/patching/plugin-commands-patching/CHANGELOG.md index d29b51b83a3..fa72ad7a995 100644 --- a/patching/plugin-commands-patching/CHANGELOG.md +++ b/patching/plugin-commands-patching/CHANGELOG.md @@ -1,5 +1,12 @@ # @pnpm/plugin-commands-patching +## 1000.3.3 + +### Patch Changes + +- Updated dependencies [b511eac] + - @pnpm/plugin-commands-installation@1004.2.2 + ## 1000.3.2 ### Patch Changes diff --git a/patching/plugin-commands-patching/package.json b/patching/plugin-commands-patching/package.json index 90e2c2f5e96..1017cffb922 100644 --- a/patching/plugin-commands-patching/package.json +++ b/patching/plugin-commands-patching/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/plugin-commands-patching", - "version": "1000.3.2", + "version": "1000.3.3", "description": "Commands for creating patches", "keywords": [ "pnpm", diff --git a/pkg-manager/core/CHANGELOG.md b/pkg-manager/core/CHANGELOG.md index 29dc58dd3e6..d46056d6a02 100644 --- a/pkg-manager/core/CHANGELOG.md +++ b/pkg-manager/core/CHANGELOG.md @@ -1,5 +1,12 @@ # @pnpm/core +## 1008.1.3 + +### Patch Changes + +- Updated dependencies [5d046bb] + - @pnpm/resolve-dependencies@1007.1.2 + ## 1008.1.2 ### Patch Changes diff --git a/pkg-manager/core/package.json b/pkg-manager/core/package.json index cb642f7d157..8e29541a3e5 100644 --- a/pkg-manager/core/package.json +++ b/pkg-manager/core/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/core", - "version": "1008.1.2", + "version": "1008.1.3", "description": "Fast, disk space efficient installation engine", "keywords": [ "pnpm", diff --git a/pkg-manager/core/test/install/peerDependencies.ts b/pkg-manager/core/test/install/peerDependencies.ts index 74b5023135e..ac7b72ef337 100644 --- a/pkg-manager/core/test/install/peerDependencies.ts +++ b/pkg-manager/core/test/install/peerDependencies.ts @@ -1907,3 +1907,19 @@ test('detection of circular peer dependencies should not crash with aliased depe expect(fs.existsSync(path.resolve(WANTED_LOCKFILE))).toBeTruthy() }) + +// Covers https://github.com/pnpm/pnpm/pull/9673 +test('no deadlock on circular aliased peers', async () => { + prepareEmpty() + + await install({ + dependencies: { + '@pnpm.e2e/deadlock.a': '1.0.0', + '@pnpm.e2e/deadlock.b': '2.0.0', + 'alias-b': 'npm:@pnpm.e2e/deadlock.b@1.0.0', + 'alias-c': 'npm:@pnpm.e2e/deadlock.c@1.0.0', + }, + }, testDefaults()) + + expect(fs.existsSync(path.resolve(WANTED_LOCKFILE))).toBeTruthy() +}) diff --git a/pkg-manager/plugin-commands-installation/CHANGELOG.md b/pkg-manager/plugin-commands-installation/CHANGELOG.md index dde30854245..98dd7277c46 100644 --- a/pkg-manager/plugin-commands-installation/CHANGELOG.md +++ b/pkg-manager/plugin-commands-installation/CHANGELOG.md @@ -1,5 +1,18 @@ # @pnpm/plugin-commands-installation +## 1004.2.2 + +### Patch Changes + +- b511eac: Running `pnpm install` after `pnpm fetch` should hoist all dependencies that need to be hoisted. + Fixes a regression introduced in [v10.12.2] by [#9648]; resolves [#9689]. + + [v10.12.2]: https://github.com/pnpm/pnpm/releases/tag/v10.12.2Add commentMore actions + [#9648]: https://github.com/pnpm/pnpm/pull/9648 + [#9689]: https://github.com/pnpm/pnpm/issues/9689 + + - @pnpm/core@1008.1.3 + ## 1004.2.1 ### Patch Changes diff --git a/pkg-manager/plugin-commands-installation/package.json b/pkg-manager/plugin-commands-installation/package.json index 6dfa15986c2..af4d1d89371 100644 --- a/pkg-manager/plugin-commands-installation/package.json +++ b/pkg-manager/plugin-commands-installation/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/plugin-commands-installation", - "version": "1004.2.1", + "version": "1004.2.2", "description": "Commands for installation", "keywords": [ "pnpm", diff --git a/pkg-manager/plugin-commands-installation/src/fetch.ts b/pkg-manager/plugin-commands-installation/src/fetch.ts index 7197a0d8942..6d39c3470f5 100644 --- a/pkg-manager/plugin-commands-installation/src/fetch.ts +++ b/pkg-manager/plugin-commands-installation/src/fetch.ts @@ -69,5 +69,10 @@ export async function handler (opts: FetchCommandOptions): Promise { pruneStore: true, storeController: store.ctrl, storeDir: store.dir, + // Hoisting is skipped anyway, + // so we store these empty patterns in node_modules/.modules.yaml + // to let the subsequent install know that hoisting should be performed. + hoistPattern: [], + publicHoistPattern: [], } as InstallOptions) } diff --git a/pkg-manager/resolve-dependencies/CHANGELOG.md b/pkg-manager/resolve-dependencies/CHANGELOG.md index f1fd30a6015..2881d970112 100644 --- a/pkg-manager/resolve-dependencies/CHANGELOG.md +++ b/pkg-manager/resolve-dependencies/CHANGELOG.md @@ -1,5 +1,11 @@ # @pnpm/resolve-dependencies +## 1007.1.2 + +### Patch Changes + +- 5d046bb: Fix a deadlock that sometimes happens during peer dependency resolution [#9673](https://github.com/pnpm/pnpm/issues/9673). + ## 1007.1.1 ### Patch Changes diff --git a/pkg-manager/resolve-dependencies/package.json b/pkg-manager/resolve-dependencies/package.json index cbc127cab81..0f979fa9105 100644 --- a/pkg-manager/resolve-dependencies/package.json +++ b/pkg-manager/resolve-dependencies/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/resolve-dependencies", - "version": "1007.1.1", + "version": "1007.1.2", "description": "Resolves dependency graph of a package", "keywords": [ "pnpm", diff --git a/pkg-manager/resolve-dependencies/src/resolvePeers.ts b/pkg-manager/resolve-dependencies/src/resolvePeers.ts index 07830ddd13d..1b9efe358e1 100644 --- a/pkg-manager/resolve-dependencies/src/resolvePeers.ts +++ b/pkg-manager/resolve-dependencies/src/resolvePeers.ts @@ -807,7 +807,7 @@ async function resolvePeersOfChildren ( // Resolving non-repeated nodes before repeated nodes proved to be slightly faster. const calculateDepPaths: CalculateDepPath[] = [] - const graph = [] + const graph = new Map() const finishingList: FinishingResolutionPromise[] = [] const parentDepPaths: Record = {} for (const [name, parentPkg] of Object.entries(parentPkgs)) { @@ -844,13 +844,27 @@ async function resolvePeersOfChildren ( allResolvedPeers.set(peerName, peerNodeId) edges.push(peerName) } - graph.push([currentAlias, edges]) + addEdgesToGraph(currentAlias, edges) + const node = ctx.dependenciesTree.get(childNodeId)! + // We resolve peer dependencies via both the alias and the real name of the package. + // That's why we need to detect circular graphs via both the alias and the real name. + if (currentAlias !== node.resolvedPackage.name) { + addEdgesToGraph(node.resolvedPackage.name, edges) + } for (const [missingPeer, range] of missingPeers.entries()) { allMissingPeers.set(missingPeer, range) } } + function addEdgesToGraph (pkgName: string, edges: string[]) { + const existingEdges = graph.get(pkgName) + if (existingEdges == null) { + graph.set(pkgName, edges) + } else { + existingEdges.push(...edges) + } + } if (calculateDepPaths.length) { - const { cycles } = analyzeGraph(graph as unknown as Graph) as unknown as { cycles: string[][] } + const { cycles } = analyzeGraph(Array.from(graph.entries()) as unknown as Graph) as unknown as { cycles: string[][] } finishingList.push(...calculateDepPaths.map((calculateDepPath) => calculateDepPath(cycles))) } const finishing = Promise.all(finishingList).then(() => {}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6ca030b9098..dd4430cfd6f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,8 +61,8 @@ catalogs: specifier: 0.0.1 version: 0.0.1 '@pnpm/registry-mock': - specifier: 4.4.0 - version: 4.4.0 + specifier: 4.5.0 + version: 4.5.0 '@pnpm/semver-diff': specifier: ^1.1.0 version: 1.1.0 @@ -868,7 +868,7 @@ importers: version: link:../../pkg-manager/modules-yaml '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/types': specifier: workspace:* version: link:../../packages/types @@ -902,7 +902,7 @@ importers: dependencies: '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/store.cafs': specifier: workspace:* version: link:../../store/cafs @@ -977,7 +977,7 @@ importers: dependencies: '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/worker': specifier: workspace:* version: link:../../worker @@ -1163,7 +1163,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@types/ramda': specifier: 'catalog:' version: 0.29.12 @@ -1651,7 +1651,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/testing.temp-store': specifier: workspace:* version: link:../../testing/temp-store @@ -2290,7 +2290,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/types': specifier: workspace:* version: link:../../packages/types @@ -2579,7 +2579,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -2727,7 +2727,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-ipc-server': specifier: workspace:* version: link:../../__utils__/test-ipc-server @@ -4413,7 +4413,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -4700,7 +4700,7 @@ importers: version: link:../../pkg-manifest/read-package-json '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/store-path': specifier: workspace:* version: link:../../store/store-path @@ -4973,7 +4973,7 @@ importers: version: link:../read-projects-context '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/store-path': specifier: workspace:* version: link:../../store/store-path @@ -5324,7 +5324,7 @@ importers: version: 'link:' '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -5550,7 +5550,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -6154,7 +6154,7 @@ importers: version: link:../pkg-manifest/read-project-manifest '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/run-npm': specifier: workspace:* version: link:../exec/run-npm @@ -6467,7 +6467,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -6594,7 +6594,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-ipc-server': specifier: workspace:* version: link:../../__utils__/test-ipc-server @@ -7203,7 +7203,7 @@ importers: version: link:../../pkg-manifest/read-package-json '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -7267,7 +7267,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/workspace.filter-packages-from-dir': specifier: workspace:* version: link:../../workspace/filter-packages-from-dir @@ -7352,7 +7352,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -7706,7 +7706,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@types/archy': specifier: 'catalog:' version: 0.0.33 @@ -7960,7 +7960,7 @@ importers: version: link:../../store/package-store '@pnpm/registry-mock': specifier: 'catalog:' - version: 4.4.0(encoding@0.1.13)(typanion@3.14.0) + version: 4.5.0(encoding@0.1.13)(typanion@3.14.0) '@pnpm/store-controller-types': specifier: workspace:* version: link:../../store/store-controller-types @@ -9809,8 +9809,8 @@ packages: resolution: {integrity: sha512-UY5ZFl8jTgWpPMp3qwVt1z455gDLGh4aAna7ufqsJP9qhI6lr9scFpnEamjpA51Y3MJMBtnML8KATmH6RY+NHQ==} engines: {node: '>=18.12'} - '@pnpm/registry-mock@4.4.0': - resolution: {integrity: sha512-OOHciXVfvqt4U70C0w+GyYnT3KrIvLG/1O1OE9fZQRji+/XdhiJd68kfhLhnTvlgi++r3mO1URlKldvi2zV/Yw==} + '@pnpm/registry-mock@4.5.0': + resolution: {integrity: sha512-xLruwgulp1Q950TJeQmbDyXzH5wIEVM5Wdm2rFHplRLlBbM+9JGaJZpcU0LiqivizD60Ow6cSIZbQ9qxOi9tnQ==} engines: {node: '>=18.12'} hasBin: true @@ -9853,8 +9853,8 @@ packages: peerDependencies: '@pnpm/logger': '>=1001.0.0 <1002.0.0' - '@pnpm/slice-ansi@1.1.2': - resolution: {integrity: sha512-Wv4TV9FxdzG+eAyEy5wc6bcSxgBqIcsSCUOthEyC6DysxxUlj2Ie+ZdLrGnjs2/a5pRc95Bjs2e0HzXJPlsL8w==} + '@pnpm/slice-ansi@1.1.3': + resolution: {integrity: sha512-xrWctjDAHXzIths7OmtW8dZUFR8aX/9zdwi4QRhCU7XFJJHl2JJqZoh2zD2wSMjWW7z2CiXeWWvfqftniM3dTg==} '@pnpm/store-connection-manager@1002.0.3': resolution: {integrity: sha512-rwywNmHYk1Wv2looiG4fjWWXMugxhw+rVd2Xw0rYrSDHZ+7fC24NrmJIceD7/54jvr1pPz6TL7tUcBV/1ms7vw==} @@ -16570,7 +16570,7 @@ snapshots: '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.1 + semver: 7.7.2 '@pkgjs/parseargs@0.11.0': optional: true @@ -17469,7 +17469,7 @@ snapshots: read-yaml-file: 2.1.0 strip-bom: 4.0.0 - '@pnpm/registry-mock@4.4.0(encoding@0.1.13)(typanion@3.14.0)': + '@pnpm/registry-mock@4.5.0(encoding@0.1.13)(typanion@3.14.0)': dependencies: anonymous-npm-registry-client: 0.3.2 execa: 5.1.1 @@ -17536,7 +17536,7 @@ snapshots: - domexception - supports-color - '@pnpm/slice-ansi@1.1.2': + '@pnpm/slice-ansi@1.1.3': dependencies: grapheme-splitter: 1.0.4 @@ -18422,7 +18422,7 @@ snapshots: dependencies: ajv: 8.17.1 lodash.truncate: 4.4.2 - slice-ansi: '@pnpm/slice-ansi@1.1.2' + slice-ansi: '@pnpm/slice-ansi@1.1.3' string-width: 4.2.3 strip-ansi: 6.0.1 @@ -23905,7 +23905,7 @@ snapshots: wide-align@1.1.5: dependencies: - string-width: 1.0.2 + string-width: 4.2.3 optional: true widest-line@3.1.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ef6f5782fbf..e8d0eb1750e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -61,7 +61,7 @@ catalog: '@pnpm/npm-package-arg': ^1.0.0 '@pnpm/os.env.path-extender': ^2.0.3 '@pnpm/patch-package': 0.0.1 - '@pnpm/registry-mock': 4.4.0 + '@pnpm/registry-mock': 4.5.0 '@pnpm/semver-diff': ^1.1.0 '@pnpm/tabtab': ^0.5.4 '@pnpm/util.lex-comparator': ^3.0.2 diff --git a/pnpm/CHANGELOG.md b/pnpm/CHANGELOG.md index b2df540c7c1..b97868bd835 100644 --- a/pnpm/CHANGELOG.md +++ b/pnpm/CHANGELOG.md @@ -1,5 +1,19 @@ # pnpm +## 10.12.4 + +### Patch Changes + +- Fix `pnpm licenses` command for local dependencies [#9583](https://github.com/pnpm/pnpm/pull/9583). +- Fix a bug in which `pnpm ls --filter=not-exist --json` prints nothing instead of an empty array [#9672](https://github.com/pnpm/pnpm/issues/9672). +- Fix a deadlock that sometimes happens during peer dependency resolution [#9673](https://github.com/pnpm/pnpm/issues/9673). +- Running `pnpm install` after `pnpm fetch` should hoist all dependencies that need to be hoisted. + Fixes a regression introduced in [v10.12.2] by [#9648]; resolves [#9689]. + + [v10.12.2]: https://github.com/pnpm/pnpm/releases/tag/v10.12.2Add commentMore actions + [#9648]: https://github.com/pnpm/pnpm/pull/9648 + [#9689]: https://github.com/pnpm/pnpm/issues/9689 + ## 10.12.3 ### Patch Changes diff --git a/pnpm/README.md b/pnpm/README.md index 20a7ef2e175..81f24b8179e 100644 --- a/pnpm/README.md +++ b/pnpm/README.md @@ -154,6 +154,17 @@ To quote the [Rush](https://rushjs.io/) team: + + + + + + + OOMOL Studio + + + + diff --git a/pnpm/artifacts/exe/package.json b/pnpm/artifacts/exe/package.json index 436212bfceb..3e495e79a62 100644 --- a/pnpm/artifacts/exe/package.json +++ b/pnpm/artifacts/exe/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/exe", - "version": "10.12.3", + "version": "10.12.4", "description": "Fast, disk space efficient package manager", "keywords": [ "pnpm", diff --git a/pnpm/artifacts/linux-arm64/package.json b/pnpm/artifacts/linux-arm64/package.json index a1cd25cc65d..d3ff2a18b03 100644 --- a/pnpm/artifacts/linux-arm64/package.json +++ b/pnpm/artifacts/linux-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/linux-arm64", - "version": "10.12.3", + "version": "10.12.4", "keywords": [ "pnpm", "pnpm10" diff --git a/pnpm/artifacts/linux-x64/package.json b/pnpm/artifacts/linux-x64/package.json index 3ce53f82542..99602fd9436 100644 --- a/pnpm/artifacts/linux-x64/package.json +++ b/pnpm/artifacts/linux-x64/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/linux-x64", - "version": "10.12.3", + "version": "10.12.4", "keywords": [ "pnpm", "pnpm10" diff --git a/pnpm/artifacts/macos-arm64/package.json b/pnpm/artifacts/macos-arm64/package.json index d487215e32a..f04406e5a12 100644 --- a/pnpm/artifacts/macos-arm64/package.json +++ b/pnpm/artifacts/macos-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/macos-arm64", - "version": "10.12.3", + "version": "10.12.4", "keywords": [ "pnpm", "pnpm10" diff --git a/pnpm/artifacts/macos-x64/package.json b/pnpm/artifacts/macos-x64/package.json index 4b57934c788..183468508d3 100644 --- a/pnpm/artifacts/macos-x64/package.json +++ b/pnpm/artifacts/macos-x64/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/macos-x64", - "version": "10.12.3", + "version": "10.12.4", "keywords": [ "pnpm", "pnpm10" diff --git a/pnpm/artifacts/win-arm64/package.json b/pnpm/artifacts/win-arm64/package.json index bc80850241a..ece3c5f2280 100644 --- a/pnpm/artifacts/win-arm64/package.json +++ b/pnpm/artifacts/win-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/win-arm64", - "version": "10.12.3", + "version": "10.12.4", "keywords": [ "pnpm", "pnpm10" diff --git a/pnpm/artifacts/win-x64/package.json b/pnpm/artifacts/win-x64/package.json index 78a716d5b64..00d5c4d558f 100644 --- a/pnpm/artifacts/win-x64/package.json +++ b/pnpm/artifacts/win-x64/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/win-x64", - "version": "10.12.3", + "version": "10.12.4", "keywords": [ "pnpm", "pnpm10" diff --git a/pnpm/package.json b/pnpm/package.json index 015b62188a9..c0f01bdbd8e 100644 --- a/pnpm/package.json +++ b/pnpm/package.json @@ -1,6 +1,6 @@ { "name": "pnpm", - "version": "10.12.3", + "version": "10.12.4", "description": "Fast, disk space efficient package manager", "keywords": [ "pnpm", diff --git a/pnpm/src/main.ts b/pnpm/src/main.ts index afbfddfdf5c..fb5e97d306a 100644 --- a/pnpm/src/main.ts +++ b/pnpm/src/main.ts @@ -230,8 +230,14 @@ export async function main (inputArgv: string[]): Promise { if (printLogs) { console.log(`No projects matched the filters in "${wsDir}"`) } - process.exitCode = config.failIfNoMatch ? 1 : 0 - return + if (config.failIfNoMatch) { + process.exitCode = 1 + return + } + if (cmd !== 'list') { + process.exitCode = 0 + return + } } if (filterResults.unmatchedFilters.length !== 0 && printLogs) { console.log(`No projects matched the filters "${filterResults.unmatchedFilters.join(', ')}" in "${wsDir}"`) diff --git a/pnpm/test/list.ts b/pnpm/test/list.ts new file mode 100644 index 00000000000..8e6d1571bb6 --- /dev/null +++ b/pnpm/test/list.ts @@ -0,0 +1,23 @@ +import { preparePackages } from '@pnpm/prepare' +import { sync as writeYamlFile } from 'write-yaml-file' +import { execPnpmSync } from './utils' + +test('ls --filter=not-exist --json should prints an empty array (#9672)', async () => { + preparePackages([ + { + location: 'packages/foo', + package: { + name: 'foo', + version: '0.0.0', + private: true, + }, + }, + ]) + + writeYamlFile('pnpm-workspace.yaml', { + packages: ['packages/*'], + }) + + const { stdout } = execPnpmSync(['ls', '--filter=project-that-does-not-exist', '--json'], { expectSuccess: true }) + expect(JSON.parse(stdout.toString())).toStrictEqual([]) +}) diff --git a/releasing/plugin-commands-deploy/CHANGELOG.md b/releasing/plugin-commands-deploy/CHANGELOG.md index 2120278f868..79297a6f83f 100644 --- a/releasing/plugin-commands-deploy/CHANGELOG.md +++ b/releasing/plugin-commands-deploy/CHANGELOG.md @@ -1,5 +1,12 @@ # @pnpm/plugin-commands-deploy +## 1001.1.28 + +### Patch Changes + +- Updated dependencies [b511eac] + - @pnpm/plugin-commands-installation@1004.2.2 + ## 1001.1.27 ### Patch Changes diff --git a/releasing/plugin-commands-deploy/package.json b/releasing/plugin-commands-deploy/package.json index 62271893d86..dd7e92a5e1b 100644 --- a/releasing/plugin-commands-deploy/package.json +++ b/releasing/plugin-commands-deploy/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/plugin-commands-deploy", - "version": "1001.1.27", + "version": "1001.1.28", "description": "Commands for deploy", "keywords": [ "pnpm", diff --git a/reviewing/license-scanner/CHANGELOG.md b/reviewing/license-scanner/CHANGELOG.md index 20edb7e7f0f..3b11ef8d313 100644 --- a/reviewing/license-scanner/CHANGELOG.md +++ b/reviewing/license-scanner/CHANGELOG.md @@ -1,5 +1,11 @@ # @pnpm/license-scanner +## 1001.0.20 + +### Patch Changes + +- 5acbe47: Fix `pnpm licenses` command for local dependencies [#9583](https://github.com/pnpm/pnpm/pull/9583). + ## 1001.0.19 ### Patch Changes diff --git a/reviewing/license-scanner/package.json b/reviewing/license-scanner/package.json index 3b8f67ca2a2..e6a64c84a3a 100644 --- a/reviewing/license-scanner/package.json +++ b/reviewing/license-scanner/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/license-scanner", - "version": "1001.0.19", + "version": "1001.0.20", "description": "Check for licenses packages", "keywords": [ "pnpm", diff --git a/reviewing/license-scanner/src/getPkgInfo.ts b/reviewing/license-scanner/src/getPkgInfo.ts index b3139a589de..b8a7a9c283d 100644 --- a/reviewing/license-scanner/src/getPkgInfo.ts +++ b/reviewing/license-scanner/src/getPkgInfo.ts @@ -259,7 +259,7 @@ export async function readPackageIndexFile ( pkgIndexFilePath = getIndexFilePathInCafs( opts.storeDir, packageResolution.integrity as string, - `${parsedId.name}@${parsedId.version}` + parsedId.nonSemverVersion ?? `${parsedId.name}@${parsedId.version}` ) } else if (!packageResolution.type && packageResolution.tarball) { const packageDirInStore = depPathToFilename(parse(id).nonSemverVersion ?? id, opts.virtualStoreDirMaxLength) diff --git a/reviewing/plugin-commands-licenses/CHANGELOG.md b/reviewing/plugin-commands-licenses/CHANGELOG.md index 6b03745f225..646fe4c3417 100644 --- a/reviewing/plugin-commands-licenses/CHANGELOG.md +++ b/reviewing/plugin-commands-licenses/CHANGELOG.md @@ -1,5 +1,12 @@ # @pnpm/plugin-commands-licenses +## 1000.0.29 + +### Patch Changes + +- Updated dependencies [5acbe47] + - @pnpm/license-scanner@1001.0.20 + ## 1000.0.28 ### Patch Changes diff --git a/reviewing/plugin-commands-licenses/package.json b/reviewing/plugin-commands-licenses/package.json index 7d98659e802..aa33a1ecbb8 100644 --- a/reviewing/plugin-commands-licenses/package.json +++ b/reviewing/plugin-commands-licenses/package.json @@ -1,6 +1,6 @@ { "name": "@pnpm/plugin-commands-licenses", - "version": "1000.0.28", + "version": "1000.0.29", "description": "The licenses command of pnpm", "keywords": [ "pnpm", pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy