@pnpm/installing.commands 1100.10.0 → 1100.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import type { IgnoredBuilds } from '@pnpm/types';
2
2
  export interface HandleIgnoredBuildsOpts {
3
3
  allowBuilds?: Record<string, boolean | string>;
4
+ ignoreWorkspace?: boolean;
4
5
  rootProjectManifestDir?: string;
5
6
  workspaceDir?: string;
6
7
  strictDepBuilds?: boolean;
@@ -5,7 +5,9 @@ import { lexCompare } from '@pnpm/util.lex-comparator';
5
5
  export async function handleIgnoredBuilds(opts, ignoredBuilds) {
6
6
  if (!ignoredBuilds?.size)
7
7
  return;
8
- await writeIgnoredBuildsToAllowBuilds(opts, ignoredBuilds);
8
+ if (!opts.ignoreWorkspace) {
9
+ await writeIgnoredBuildsToAllowBuilds(opts, ignoredBuilds);
10
+ }
9
11
  if (opts.strictDepBuilds) {
10
12
  throw new IgnoredBuildsError(ignoredBuilds);
11
13
  }
@@ -4,7 +4,7 @@ import { type DryRunInstallResult, type UpdateMatchingFunction } from '@pnpm/ins
4
4
  import type { LockfileObject } from '@pnpm/lockfile.types';
5
5
  import { type CreateStoreControllerOptions } from '@pnpm/store.connection-manager';
6
6
  import type { IncludedDependencies, PackageVulnerabilityAudit } from '@pnpm/types';
7
- export type InstallDepsOptions = Pick<Config, 'autoInstallPeers' | 'bail' | 'bin' | 'catalogs' | 'catalogMode' | 'cleanupUnusedCatalogs' | 'dedupePeerDependents' | 'dedupePeers' | 'depth' | 'dev' | 'enableGlobalVirtualStore' | 'virtualStoreOnly' | 'engineStrict' | 'excludeLinksFromLockfile' | 'global' | 'globalPnpmfile' | 'ignoreCurrentSpecifiers' | 'ignorePnpmfile' | 'ignoreScripts' | 'optimisticRepeatInstall' | 'linkWorkspacePackages' | 'lockfileDir' | 'lockfileOnly' | 'pnprServer' | 'production' | 'preferWorkspacePackages' | 'registries' | 'runtime' | 'runtimeOnFail' | 'save' | 'saveDev' | 'saveExact' | 'saveOptional' | 'savePeer' | 'savePrefix' | 'saveProd' | 'saveWorkspaceProtocol' | 'lockfileIncludeTarballUrl' | 'scriptsPrependNodePath' | 'scriptShell' | 'sideEffectsCache' | 'sideEffectsCacheReadonly' | 'sort' | 'sharedWorkspaceLockfile' | 'shellEmulator' | 'tag' | 'trustLockfile' | 'allowBuilds' | 'optional' | 'workspaceConcurrency' | 'workspaceDir' | 'workspacePackagePatterns' | 'extraEnv' | 'ignoreWorkspaceCycles' | 'disallowWorkspaceCycles' | 'configDependencies' | 'packageExtensions' | 'updateConfig' | 'virtualStoreDirMaxLength'> & Pick<ConfigContext, 'allProjects' | 'allProjectsGraph' | 'cliOptions' | 'hooks' | 'rootProjectManifestDir' | 'rootProjectManifest' | 'selectedProjectsGraph'> & Partial<Pick<Config, 'ci'>> & CreateStoreControllerOptions & {
7
+ export type InstallDepsOptions = Pick<Config, 'autoInstallPeers' | 'bail' | 'bin' | 'catalogs' | 'catalogMode' | 'cleanupUnusedCatalogs' | 'dedupePeerDependents' | 'dedupePeers' | 'depth' | 'dev' | 'enableGlobalVirtualStore' | 'virtualStoreOnly' | 'engineStrict' | 'excludeLinksFromLockfile' | 'global' | 'globalPnpmfile' | 'ignoreCurrentSpecifiers' | 'ignorePnpmfile' | 'ignoreScripts' | 'optimisticRepeatInstall' | 'linkWorkspacePackages' | 'lockfileDir' | 'lockfileOnly' | 'pnprServer' | 'production' | 'preferWorkspacePackages' | 'registries' | 'runtime' | 'runtimeOnFail' | 'save' | 'saveDev' | 'saveExact' | 'saveOptional' | 'savePeer' | 'savePrefix' | 'saveProd' | 'saveWorkspaceProtocol' | 'lockfileIncludeTarballUrl' | 'scriptsPrependNodePath' | 'scriptShell' | 'sideEffectsCache' | 'sideEffectsCacheReadonly' | 'sort' | 'sharedWorkspaceLockfile' | 'shellEmulator' | 'tag' | 'trustLockfile' | 'allowBuilds' | 'optional' | 'workspaceConcurrency' | 'workspaceDir' | 'workspacePackagePatterns' | 'extraEnv' | 'ignoreWorkspace' | 'ignoreWorkspaceCycles' | 'disallowWorkspaceCycles' | 'configDependencies' | 'packageExtensions' | 'updateConfig' | 'virtualStoreDirMaxLength'> & Pick<ConfigContext, 'allProjects' | 'allProjectsGraph' | 'cliOptions' | 'hooks' | 'rootProjectManifestDir' | 'rootProjectManifest' | 'selectedProjectsGraph'> & Partial<Pick<Config, 'ci'>> & CreateStoreControllerOptions & {
8
8
  argv: {
9
9
  cooked?: string[];
10
10
  original: string[];
@@ -1,4 +1,5 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
+ import { mergePackageVersionSpecs } from '@pnpm/config.version-policy';
2
3
  import { PnpmError } from '@pnpm/error';
3
4
  import { globalInfo } from '@pnpm/logger';
4
5
  import { MINIMUM_RELEASE_AGE_VIOLATION_CODE } from '@pnpm/resolving.npm-resolver';
@@ -120,7 +121,12 @@ function pickImmatureEntries(violations, promptRequired) {
120
121
  const immature = filterImmatureViolations(violations);
121
122
  if (immature.length === 0)
122
123
  return undefined;
123
- const sorted = [...new Set(immature.map((v) => `${v.name}@${v.version}`))].sort();
124
+ // Combine into the canonical per-package form the workspace writer
125
+ // persists (`name@v1 || v2`), so the logged count and list match the
126
+ // entries that actually land in pnpm-workspace.yaml even when multiple
127
+ // immature versions belong to the same package. The pre-sort keeps the
128
+ // cross-package order stable regardless of resolution order.
129
+ const entries = mergePackageVersionSpecs(immature.map((v) => `${v.name}@${v.version}`).sort());
124
130
  // Strict-mode picks already passed through the approval prompt, so
125
131
  // the log here only confirms what was persisted. Loose-mode picks
126
132
  // haven't been announced anywhere else, so the same log doubles as
@@ -128,9 +134,9 @@ function pickImmatureEntries(violations, promptRequired) {
128
134
  const reason = promptRequired
129
135
  ? '(approved at the prompt)'
130
136
  : '(set minimumReleaseAgeStrict to true to gate these updates with a prompt)';
131
- globalInfo(`Added ${sorted.length} ${sorted.length === 1 ? 'entry' : 'entries'} to minimumReleaseAgeExclude in pnpm-workspace.yaml ` +
132
- `${reason}:\n ${sorted.join('\n ')}`);
133
- return sorted;
137
+ globalInfo(`Added ${entries.length} ${entries.length === 1 ? 'entry' : 'entries'} to minimumReleaseAgeExclude in pnpm-workspace.yaml ` +
138
+ `${reason}:\n ${entries.join('\n ')}`);
139
+ return entries;
134
140
  }
135
141
  function failOnImmature(immature) {
136
142
  const sorted = [...immature].sort((a, b) => `${a.name}@${a.version}`.localeCompare(`${b.name}@${b.version}`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/installing.commands",
3
- "version": "1100.10.0",
3
+ "version": "1100.10.1",
4
4
  "description": "Commands for installation",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -10,9 +10,9 @@
10
10
  "funding": "https://opencollective.com/pnpm",
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "https://github.com/pnpm/pnpm/tree/main/installing/commands"
13
+ "url": "https://github.com/pnpm/pnpm/tree/main/pnpm11/installing/commands"
14
14
  },
15
- "homepage": "https://github.com/pnpm/pnpm/tree/main/installing/commands#readme",
15
+ "homepage": "https://github.com/pnpm/pnpm/tree/main/pnpm11/installing/commands#readme",
16
16
  "bugs": {
17
17
  "url": "https://github.com/pnpm/pnpm/issues"
18
18
  },
@@ -38,7 +38,6 @@
38
38
  "chalk": "^5.6.2",
39
39
  "ci-info": "^4.4.0",
40
40
  "detect-libc": "^2.1.2",
41
- "get-npm-tarball-url": "^2.1.0",
42
41
  "is-subdir": "^2.0.0",
43
42
  "js-yaml": "npm:@zkochan/js-yaml@0.0.11",
44
43
  "load-json-file": "^7.0.1",
@@ -48,53 +47,54 @@
48
47
  "ramda": "npm:@pnpm/ramda@0.28.1",
49
48
  "render-help": "^2.0.0",
50
49
  "version-selector-type": "^3.0.0",
51
- "@pnpm/building.after-install": "1102.0.1",
52
- "@pnpm/building.policy": "1100.0.10",
53
- "@pnpm/catalogs.config": "1100.0.1",
50
+ "@pnpm/building.policy": "1100.0.11",
51
+ "@pnpm/catalogs.types": "1100.0.0",
52
+ "@pnpm/catalogs.config": "1100.0.2",
54
53
  "@pnpm/cli.command": "1100.0.1",
55
- "@pnpm/cli.common-cli-options-help": "1100.0.2",
56
- "@pnpm/cli.utils": "1101.0.12",
57
- "@pnpm/config.matcher": "1100.0.1",
54
+ "@pnpm/cli.utils": "1101.0.13",
58
55
  "@pnpm/config.pick-registry-for-package": "1100.0.9",
59
- "@pnpm/config.reader": "1101.10.0",
60
- "@pnpm/config.writer": "1100.0.13",
56
+ "@pnpm/cli.common-cli-options-help": "1100.0.2",
57
+ "@pnpm/config.reader": "1101.10.1",
58
+ "@pnpm/building.after-install": "1102.0.2",
59
+ "@pnpm/config.writer": "1100.0.14",
61
60
  "@pnpm/constants": "1100.0.0",
62
- "@pnpm/deps.inspection.outdated": "1100.1.9",
61
+ "@pnpm/config.version-policy": "1100.1.6",
62
+ "@pnpm/deps.inspection.outdated": "1100.1.10",
63
+ "@pnpm/config.matcher": "1100.0.1",
63
64
  "@pnpm/deps.path": "1100.0.8",
64
- "@pnpm/deps.status": "1100.1.2",
65
- "@pnpm/deps.security.signatures": "1101.2.2",
66
- "@pnpm/catalogs.types": "1100.0.0",
67
- "@pnpm/fs.read-modules-dir": "1100.0.1",
68
- "@pnpm/error": "1100.0.0",
69
- "@pnpm/global.commands": "1100.0.29",
65
+ "@pnpm/error": "1100.0.1",
66
+ "@pnpm/deps.security.signatures": "1101.2.3",
70
67
  "@pnpm/fs.graceful-fs": "1100.1.0",
71
- "@pnpm/hooks.pnpmfile": "1100.0.15",
72
- "@pnpm/installing.dedupe.check": "1100.1.0",
68
+ "@pnpm/global.commands": "1100.0.30",
69
+ "@pnpm/deps.status": "1100.1.3",
70
+ "@pnpm/hooks.pnpmfile": "1100.0.16",
71
+ "@pnpm/installing.context": "1100.0.20",
72
+ "@pnpm/installing.dedupe.check": "1100.1.1",
73
+ "@pnpm/installing.deps-installer": "1102.1.1",
73
74
  "@pnpm/installing.dedupe.issues-renderer": "1100.0.1",
74
- "@pnpm/installing.deps-installer": "1102.1.0",
75
- "@pnpm/installing.context": "1100.0.19",
76
- "@pnpm/lockfile.fs": "1100.1.6",
77
- "@pnpm/lockfile.types": "1100.0.11",
78
- "@pnpm/installing.env-installer": "1102.0.1",
79
- "@pnpm/network.fetch": "1100.1.3",
80
- "@pnpm/pkg-manifest.reader": "1100.0.8",
81
- "@pnpm/network.auth-header": "1101.1.2",
75
+ "@pnpm/lockfile.types": "1100.0.12",
76
+ "@pnpm/lockfile.fs": "1100.1.7",
77
+ "@pnpm/network.fetch": "1100.1.4",
78
+ "@pnpm/network.auth-header": "1101.1.3",
79
+ "@pnpm/pkg-manifest.reader": "1100.0.9",
80
+ "@pnpm/installing.env-installer": "1102.0.2",
81
+ "@pnpm/pkg-manifest.utils": "1100.2.6",
82
82
  "@pnpm/resolving.parse-wanted-dependency": "1100.0.1",
83
- "@pnpm/resolving.npm-resolver": "1102.0.1",
84
- "@pnpm/store.connection-manager": "1100.3.1",
85
- "@pnpm/resolving.resolver-base": "1100.4.2",
86
- "@pnpm/workspace.project-manifest-reader": "1100.0.13",
87
- "@pnpm/pkg-manifest.utils": "1100.2.5",
83
+ "@pnpm/store.controller": "1102.0.2",
84
+ "@pnpm/resolving.npm-resolver": "1102.1.0",
85
+ "@pnpm/store.connection-manager": "1100.3.2",
86
+ "@pnpm/resolving.resolver-base": "1100.5.0",
88
87
  "@pnpm/types": "1101.3.2",
88
+ "@pnpm/fs.read-modules-dir": "1100.0.1",
89
89
  "@pnpm/workspace.project-manifest-writer": "1100.0.8",
90
+ "@pnpm/workspace.projects-filter": "1100.0.23",
91
+ "@pnpm/workspace.project-manifest-reader": "1100.0.14",
92
+ "@pnpm/workspace.projects-reader": "1101.0.13",
93
+ "@pnpm/workspace.projects-graph": "1100.0.20",
94
+ "@pnpm/workspace.state": "1100.0.24",
90
95
  "@pnpm/workspace.projects-sorter": "1100.0.7",
91
- "@pnpm/workspace.projects-graph": "1100.0.19",
92
- "@pnpm/workspace.projects-reader": "1101.0.12",
93
- "@pnpm/workspace.state": "1100.0.23",
94
- "@pnpm/workspace.projects-filter": "1100.0.22",
95
- "@pnpm/workspace.root-finder": "1100.0.2",
96
- "@pnpm/store.controller": "1102.0.1",
97
- "@pnpm/workspace.workspace-manifest-writer": "1100.0.13"
96
+ "@pnpm/workspace.root-finder": "1100.0.3",
97
+ "@pnpm/workspace.workspace-manifest-writer": "1100.0.14"
98
98
  },
99
99
  "peerDependencies": {
100
100
  "@pnpm/logger": "^1100.0.0"
@@ -117,19 +117,19 @@
117
117
  "write-json-file": "^7.0.0",
118
118
  "write-package": "7.2.0",
119
119
  "write-yaml-file": "^6.0.0",
120
- "@pnpm/installing.commands": "1100.10.0",
121
120
  "@pnpm/installing.modules-yaml": "1100.0.9",
121
+ "@pnpm/installing.commands": "1100.10.1",
122
+ "@pnpm/assert-project": "1100.0.17",
123
+ "@pnpm/store.index": "1100.2.1",
122
124
  "@pnpm/logger": "1100.0.0",
123
- "@pnpm/assert-project": "1100.0.16",
124
- "@pnpm/store.index": "1100.2.0",
125
- "@pnpm/test-ipc-server": "1100.0.0",
126
- "@pnpm/prepare": "1100.0.16",
127
- "@pnpm/testing.registry-mock": "1100.0.6",
128
- "@pnpm/testing.command-defaults": "1100.0.6",
129
- "@pnpm/testing.mock-agent": "1101.0.3",
125
+ "@pnpm/prepare": "1100.0.17",
130
126
  "@pnpm/test-fixtures": "1100.0.0",
131
- "@pnpm/worker": "1100.2.1",
132
- "@pnpm/workspace.projects-filter": "1100.0.22"
127
+ "@pnpm/test-ipc-server": "1100.0.0",
128
+ "@pnpm/testing.mock-agent": "1101.0.4",
129
+ "@pnpm/testing.registry-mock": "1100.0.7",
130
+ "@pnpm/testing.command-defaults": "1100.0.7",
131
+ "@pnpm/workspace.projects-filter": "1100.0.23",
132
+ "@pnpm/worker": "1100.2.2"
133
133
  },
134
134
  "engines": {
135
135
  "node": ">=22.13"