pnpm-dedup 2.2.1 → 2.2.2
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.
- package/README.md +15 -5
- package/dist/applyClusterFixes.js +103 -80
- package/dist/applyClusterFixes.js.map +1 -1
- package/dist/applyClusterFixes.test.js +257 -29
- package/dist/applyClusterFixes.test.js.map +1 -1
- package/dist/bin/pnpm-why-duplicate.test.js +17 -8
- package/dist/bin/pnpm-why-duplicate.test.js.map +1 -1
- package/dist/dedupe.js +15 -4
- package/dist/dedupe.js.map +1 -1
- package/dist/dedupeCheckConsistency.test.js +53 -59
- package/dist/dedupeCheckConsistency.test.js.map +1 -1
- package/dist/dedupeEndToEnd.test.js +3 -3
- package/dist/dedupeEndToEnd.test.js.map +1 -1
- package/dist/dedupePeers.test.js +1 -1
- package/dist/dedupePeers.test.js.map +1 -1
- package/dist/definitions/applyClusterFixes.d.ts +6 -3
- package/dist/definitions/applyClusterFixes.d.ts.map +1 -1
- package/dist/definitions/dedupe.d.ts.map +1 -1
- package/dist/definitions/helpers/describeUnheldOverride.d.ts +10 -0
- package/dist/definitions/helpers/describeUnheldOverride.d.ts.map +1 -0
- package/dist/definitions/helpers/describeUnheldOverride.test.d.ts +2 -0
- package/dist/definitions/helpers/describeUnheldOverride.test.d.ts.map +1 -0
- package/dist/definitions/helpers/pnpmWorkspaceYaml.d.ts +1 -5
- package/dist/definitions/helpers/pnpmWorkspaceYaml.d.ts.map +1 -1
- package/dist/definitions/pnpmLockTypes.d.ts +1 -0
- package/dist/definitions/pnpmLockTypes.d.ts.map +1 -1
- package/dist/definitions/readPnpmLock.d.ts +7 -0
- package/dist/definitions/readPnpmLock.d.ts.map +1 -1
- package/dist/definitions/readPnpmLock.test.d.ts +2 -0
- package/dist/definitions/readPnpmLock.test.d.ts.map +1 -0
- package/dist/displayMany.test.js +3 -4
- package/dist/displayMany.test.js.map +1 -1
- package/dist/helpers/buildIdentifiedFixesMap.test.js +1 -1
- package/dist/helpers/buildIdentifiedFixesMap.test.js.map +1 -1
- package/dist/helpers/buildPnpmPackagesMap.test.js +1 -1
- package/dist/helpers/buildPnpmPackagesMap.test.js.map +1 -1
- package/dist/helpers/collectDependentRanges.test.js +1 -1
- package/dist/helpers/collectDependentRanges.test.js.map +1 -1
- package/dist/helpers/collectPnpmDependents.test.js +1 -1
- package/dist/helpers/collectPnpmDependents.test.js.map +1 -1
- package/dist/helpers/describeUnheldOverride.js +30 -0
- package/dist/helpers/describeUnheldOverride.js.map +1 -0
- package/dist/helpers/describeUnheldOverride.test.js +80 -0
- package/dist/helpers/describeUnheldOverride.test.js.map +1 -0
- package/dist/helpers/parsePnpmLockPackages.test.js +1 -1
- package/dist/helpers/parsePnpmLockPackages.test.js.map +1 -1
- package/dist/helpers/pnpmWorkspaceYaml.js +2 -17
- package/dist/helpers/pnpmWorkspaceYaml.js.map +1 -1
- package/dist/helpers/pnpmWorkspaceYaml.test.js +3 -5
- package/dist/helpers/pnpmWorkspaceYaml.test.js.map +1 -1
- package/dist/helpers/readInstalledManifest.test.js +1 -1
- package/dist/helpers/readInstalledManifest.test.js.map +1 -1
- package/dist/helpers/toLockstepGraph.test.js +1 -1
- package/dist/helpers/toLockstepGraph.test.js.map +1 -1
- package/dist/identifyClusterFixes.test.js +22 -41
- package/dist/identifyClusterFixes.test.js.map +1 -1
- package/dist/identifyResolutionFixes.test.js +8 -7
- package/dist/identifyResolutionFixes.test.js.map +1 -1
- package/dist/readPnpmLock.js +21 -2
- package/dist/readPnpmLock.js.map +1 -1
- package/dist/readPnpmLock.test.js +43 -0
- package/dist/readPnpmLock.test.js.map +1 -0
- package/package.json +4 -3
- package/src/applyClusterFixes.test.ts +398 -36
- package/src/applyClusterFixes.ts +178 -125
- package/src/bin/pnpm-why-duplicate.test.ts +31 -8
- package/src/dedupe.ts +22 -7
- package/src/dedupeCheckConsistency.test.ts +84 -100
- package/src/dedupeEndToEnd.test.ts +84 -77
- package/src/dedupePeers.test.ts +1 -1
- package/src/displayMany.test.ts +4 -4
- package/src/helpers/buildIdentifiedFixesMap.test.ts +1 -1
- package/src/helpers/buildPnpmPackagesMap.test.ts +1 -1
- package/src/helpers/collectDependentRanges.test.ts +1 -1
- package/src/helpers/collectPnpmDependents.test.ts +1 -1
- package/src/helpers/describeUnheldOverride.test.ts +100 -0
- package/src/helpers/describeUnheldOverride.ts +53 -0
- package/src/helpers/parsePnpmLockPackages.test.ts +1 -1
- package/src/helpers/pnpmWorkspaceYaml.test.ts +2 -5
- package/src/helpers/pnpmWorkspaceYaml.ts +5 -20
- package/src/helpers/readInstalledManifest.test.ts +1 -1
- package/src/helpers/toLockstepGraph.test.ts +1 -1
- package/src/identifyClusterFixes.test.ts +27 -58
- package/src/identifyResolutionFixes.test.ts +8 -7
- package/src/pnpmLockTypes.ts +1 -0
- package/src/readPnpmLock.test.ts +65 -0
- package/src/readPnpmLock.ts +26 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { afterEach, describe, it } from "bun:test";
|
|
2
1
|
import { deepStrictEqual, ok, strictEqual } from "node:assert/strict";
|
|
3
2
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
3
|
import { join } from "node:path";
|
|
4
|
+
import { afterEach, describe, it } from "node:test";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { applyClusterFixes } from "./applyClusterFixes.js";
|
|
7
7
|
import { createTempProjects } from "./helpers/tempProjects.js";
|
|
@@ -16,7 +16,6 @@ const fix = (overrides) => ({
|
|
|
16
16
|
excludedMembers: [],
|
|
17
17
|
anchor: null,
|
|
18
18
|
reuseFixes: [],
|
|
19
|
-
floatingMembers: [],
|
|
20
19
|
workspaceChanges: [],
|
|
21
20
|
reResolutionSet: [],
|
|
22
21
|
externalConstraints: [],
|
|
@@ -124,15 +123,203 @@ describe("applyClusterFixes", () => {
|
|
|
124
123
|
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
125
124
|
ok(logs.some((line) => line.includes("Removing the overrides")));
|
|
126
125
|
});
|
|
127
|
-
|
|
126
|
+
describe("when some overrides do not hold", () => {
|
|
127
|
+
const familyFix = (...convergentMembers) => fix({ applicable: true, target: "2.0.0", convergentMembers });
|
|
128
|
+
/**
|
|
129
|
+
* pnpm as far as the override step can tell, its state kept in the lockfile
|
|
130
|
+
* so that restoring files restores it too. A package with an override in
|
|
131
|
+
* `pnpm-workspace.yaml` merges onto 2.0.0; without one, a merged package
|
|
132
|
+
* stays merged only if `stays` says so, given what was merged before.
|
|
133
|
+
*/
|
|
134
|
+
const simulatePnpm = (dir, packages, stays) => {
|
|
135
|
+
const mergedNow = () => new Set(/# merged: (.*)/
|
|
136
|
+
.exec(read(dir, "pnpm-lock.yaml"))?.[1]
|
|
137
|
+
?.split(",")
|
|
138
|
+
.filter(Boolean));
|
|
139
|
+
return {
|
|
140
|
+
resolve: () => {
|
|
141
|
+
const workspaceYaml = read(dir, "pnpm-workspace.yaml");
|
|
142
|
+
const previous = mergedNow();
|
|
143
|
+
const merged = packages.filter((name) => new RegExp(`"${name}@?":`).test(workspaceYaml) ||
|
|
144
|
+
(previous.has(name) && (stays[name]?.(previous) ?? false)));
|
|
145
|
+
writeFileSync(join(dir, "pnpm-lock.yaml"), `lockfileVersion: '9.0'\n# merged: ${merged.join(",")}\n`);
|
|
146
|
+
return 0;
|
|
147
|
+
},
|
|
148
|
+
readDuplicates: () => {
|
|
149
|
+
const merged = mergedNow();
|
|
150
|
+
return new Set(packages.flatMap((name) => merged.has(name) ? [] : [`${name}@1.0.0`, `${name}@2.0.0`]));
|
|
151
|
+
},
|
|
152
|
+
readVersions: () => {
|
|
153
|
+
const merged = mergedNow();
|
|
154
|
+
return new Map(packages.map((name) => [
|
|
155
|
+
name,
|
|
156
|
+
merged.has(name) ? ["2.0.0"] : ["1.0.0", "2.0.0"],
|
|
157
|
+
]));
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
const branchDependent = (name) => new Map([
|
|
162
|
+
[
|
|
163
|
+
name,
|
|
164
|
+
[
|
|
165
|
+
{
|
|
166
|
+
key: "branch@1.0.0",
|
|
167
|
+
range: "^1.0.0",
|
|
168
|
+
resolvedVersion: "1.0.0",
|
|
169
|
+
requesterName: "branch",
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
],
|
|
173
|
+
]);
|
|
174
|
+
const sticky = () => true;
|
|
175
|
+
const stickyWith = (companion) => (merged) => merged.has(companion);
|
|
176
|
+
const run = (dir, fixes, pnpm, logs, dependentRanges = new Map()) => applyClusterFixes({
|
|
177
|
+
projectDir: dir,
|
|
178
|
+
color: false,
|
|
179
|
+
log: (message = "") => logs.push(message),
|
|
180
|
+
pnpmVersion: () => "11.17.0",
|
|
181
|
+
readFixes: () => fixes,
|
|
182
|
+
readDependentRanges: () => dependentRanges,
|
|
183
|
+
...pnpm,
|
|
184
|
+
});
|
|
185
|
+
const projectFiles = {
|
|
186
|
+
"package.json": manifestContent,
|
|
187
|
+
"pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
|
|
188
|
+
"pnpm-workspace.yaml": workspaceYamlContent,
|
|
189
|
+
};
|
|
190
|
+
const addedIn = (logs, from) => logs.slice(from).filter((line) => /^ {2}"\w+@": "2\.0\.0"/.test(line));
|
|
191
|
+
it("keeps only the overrides that hold, and leaves none behind", () => {
|
|
192
|
+
const dir = makeProject(projectFiles);
|
|
193
|
+
const logs = [];
|
|
194
|
+
const pnpm = simulatePnpm(dir, ["leaf", "twig"], { leaf: sticky });
|
|
195
|
+
const outcome = run(dir, [familyFix("leaf", "twig")], pnpm, logs, branchDependent("twig"));
|
|
196
|
+
strictEqual(outcome.status, "applied");
|
|
197
|
+
deepStrictEqual([...outcome.after], ["twig@1.0.0", "twig@2.0.0"]);
|
|
198
|
+
deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["twig"]);
|
|
199
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
200
|
+
const retry = logs.indexOf("Retrying with only the overrides that held:");
|
|
201
|
+
ok(retry > 0);
|
|
202
|
+
deepStrictEqual(addedIn(logs, retry), [' "leaf@": "2.0.0" (converge)']);
|
|
203
|
+
ok(logs.includes("pnpm resolves these back without an override, so they are not merged:"));
|
|
204
|
+
ok(logs.includes(" twig onto 2.0.0:"));
|
|
205
|
+
ok(logs.includes(' branch@1.0.0 requires "^1.0.0"'));
|
|
206
|
+
});
|
|
207
|
+
it("reverts and says so when an override does not merge even while present", () => {
|
|
208
|
+
const dir = makeProject(projectFiles);
|
|
209
|
+
const logs = [];
|
|
210
|
+
const pnpm = simulatePnpm(dir, ["leaf"], {});
|
|
211
|
+
// pnpm ignores the override: the declared range rejects the version
|
|
212
|
+
const inert = { ...pnpm, resolve: () => 0 };
|
|
213
|
+
const outcome = run(dir, [familyFix("leaf")], inert, logs, branchDependent("leaf"));
|
|
214
|
+
strictEqual(outcome.status, "reverted");
|
|
215
|
+
deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["leaf"]);
|
|
216
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
217
|
+
ok(logs.includes("Not merged even with an override:"));
|
|
218
|
+
ok(logs.includes(" No override holds on its own — reverting them"));
|
|
219
|
+
});
|
|
220
|
+
it("keeps the range edits when no override holds", () => {
|
|
221
|
+
const dir = makeProject(projectFiles);
|
|
222
|
+
const logs = [];
|
|
223
|
+
const pnpm = simulatePnpm(dir, ["metro-config"], {});
|
|
224
|
+
const outcome = run(dir, [metroFix], pnpm, logs);
|
|
225
|
+
strictEqual(outcome.status, "applied");
|
|
226
|
+
ok(read(dir, "package.json").includes('"metro": "0.87.0"'));
|
|
227
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
228
|
+
});
|
|
229
|
+
it("drops an override that only held alongside one a round lost", () => {
|
|
230
|
+
const dir = makeProject(projectFiles);
|
|
231
|
+
const logs = [];
|
|
232
|
+
const pnpm = simulatePnpm(dir, ["leaf", "twig", "bud"], {
|
|
233
|
+
leaf: sticky,
|
|
234
|
+
twig: stickyWith("bud"),
|
|
235
|
+
});
|
|
236
|
+
const outcome = run(dir, [familyFix("leaf", "twig", "bud")], pnpm, logs);
|
|
237
|
+
strictEqual(outcome.status, "applied");
|
|
238
|
+
deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["bud", "twig"]);
|
|
239
|
+
deepStrictEqual(addedIn(logs, logs.lastIndexOf("Retrying with only the overrides that held:")), [' "leaf@": "2.0.0" (converge)']);
|
|
240
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
241
|
+
});
|
|
242
|
+
it("gives up after three rounds", () => {
|
|
243
|
+
const dir = makeProject(projectFiles);
|
|
244
|
+
const logs = [];
|
|
245
|
+
const pnpm = simulatePnpm(dir, ["leaf", "twig", "bud", "seed"], {
|
|
246
|
+
leaf: sticky,
|
|
247
|
+
twig: stickyWith("bud"),
|
|
248
|
+
bud: stickyWith("seed"),
|
|
249
|
+
});
|
|
250
|
+
const outcome = run(dir, [familyFix("leaf", "twig", "bud", "seed")], pnpm, logs);
|
|
251
|
+
strictEqual(outcome.status, "reverted");
|
|
252
|
+
strictEqual(outcome.stickyOverrides.length, 4);
|
|
253
|
+
strictEqual(logs.filter((line) => line.startsWith("Retrying")).length, 2);
|
|
254
|
+
ok(logs.includes(" Overrides still came apart after 3 rounds — reverting them"));
|
|
255
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
256
|
+
deepStrictEqual(outcome.after, outcome.before);
|
|
257
|
+
});
|
|
258
|
+
it("keeps the same rule with plain overrides", () => {
|
|
259
|
+
const dir = makeProject(projectFiles);
|
|
260
|
+
const logs = [];
|
|
261
|
+
const pnpm = simulatePnpm(dir, ["leaf", "twig"], { leaf: sticky });
|
|
262
|
+
const outcome = applyClusterFixes({
|
|
263
|
+
projectDir: dir,
|
|
264
|
+
color: false,
|
|
265
|
+
log: (message = "") => logs.push(message),
|
|
266
|
+
convergenceOverrides: false,
|
|
267
|
+
readFixes: () => [familyFix("leaf", "twig")],
|
|
268
|
+
readDependentRanges: () => new Map(),
|
|
269
|
+
...pnpm,
|
|
270
|
+
});
|
|
271
|
+
strictEqual(outcome.status, "applied");
|
|
272
|
+
deepStrictEqual(outcome.stickyOverrides.map((override) => override.packageName), ["twig"]);
|
|
273
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
it("writes the override for a member nothing duplicates that holds its family apart", () => {
|
|
277
|
+
const dir = makeProject({
|
|
278
|
+
"package.json": manifestContent,
|
|
279
|
+
"pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
|
|
280
|
+
"pnpm-workspace.yaml": workspaceYamlContent,
|
|
281
|
+
});
|
|
282
|
+
const logs = [];
|
|
283
|
+
let parentMoved = false;
|
|
284
|
+
const outcome = applyClusterFixes({
|
|
285
|
+
projectDir: dir,
|
|
286
|
+
color: false,
|
|
287
|
+
log: (message = "") => logs.push(message),
|
|
288
|
+
pnpmVersion: () => "11.17.0",
|
|
289
|
+
readFixes: () => [
|
|
290
|
+
fix({
|
|
291
|
+
applicable: true,
|
|
292
|
+
target: "2.0.0",
|
|
293
|
+
convergentMembers: ["leaf"],
|
|
294
|
+
reResolutionSet: ["parent"],
|
|
295
|
+
}),
|
|
296
|
+
],
|
|
297
|
+
readDuplicates: () => parentMoved ? snapshot() : snapshot("leaf@1.0.0", "leaf@2.0.0"),
|
|
298
|
+
readVersions: () => new Map([
|
|
299
|
+
["leaf", parentMoved ? ["2.0.0"] : ["1.0.0", "2.0.0"]],
|
|
300
|
+
["parent", [parentMoved ? "2.0.0" : "1.0.0"]],
|
|
301
|
+
]),
|
|
302
|
+
resolve: () => {
|
|
303
|
+
// parent pins leaf exactly: the family only merges once parent moves
|
|
304
|
+
if (read(dir, "pnpm-workspace.yaml").includes('"parent@"')) {
|
|
305
|
+
parentMoved = true;
|
|
306
|
+
}
|
|
307
|
+
return 0;
|
|
308
|
+
},
|
|
309
|
+
});
|
|
310
|
+
strictEqual(outcome.status, "applied");
|
|
311
|
+
deepStrictEqual(outcome.stickyOverrides, []);
|
|
312
|
+
ok(logs.includes(' "parent@": "2.0.0" (converge)'));
|
|
313
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
314
|
+
});
|
|
315
|
+
it("reverts when the result without overrides adds a duplicate", () => {
|
|
128
316
|
const dir = makeProject({
|
|
129
317
|
"package.json": manifestContent,
|
|
130
318
|
"pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
|
|
131
319
|
"pnpm-workspace.yaml": workspaceYamlContent,
|
|
132
320
|
});
|
|
133
|
-
const duplicated = snapshot("leaf@1.0.0", "leaf@2.0.0");
|
|
134
|
-
let duplicates = duplicated;
|
|
135
321
|
const logs = [];
|
|
322
|
+
let duplicates = snapshot("leaf@1.0.0", "leaf@2.0.0");
|
|
136
323
|
const outcome = applyClusterFixes({
|
|
137
324
|
projectDir: dir,
|
|
138
325
|
color: false,
|
|
@@ -141,24 +328,15 @@ describe("applyClusterFixes", () => {
|
|
|
141
328
|
readFixes: () => [leafFix],
|
|
142
329
|
readDuplicates: () => duplicates,
|
|
143
330
|
resolve: () => {
|
|
144
|
-
// the duplicate only stays away while the override is there
|
|
145
331
|
duplicates = read(dir, "pnpm-workspace.yaml").includes('"leaf@"')
|
|
146
332
|
? snapshot()
|
|
147
|
-
:
|
|
333
|
+
: snapshot("leaf@1.0.0", "leaf@2.0.0", "other@1.0.0", "other@2.0.0");
|
|
148
334
|
return 0;
|
|
149
335
|
},
|
|
150
336
|
});
|
|
151
|
-
strictEqual(outcome.status, "
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
ok(workspaceYaml.includes('"leaf@": "2.0.0"'));
|
|
155
|
-
ok(workspaceYaml.includes("# Added by pnpm-dedup."));
|
|
156
|
-
ok(workspaceYaml.includes("# handled without a standing override: https://github.com"));
|
|
157
|
-
// the user's own content survives the write
|
|
158
|
-
ok(workspaceYaml.includes("# keep me"));
|
|
159
|
-
ok(workspaceYaml.includes("resolutionMode: time-based"));
|
|
160
|
-
ok(logs.some((line) => line.includes("github.com/christophehurpeau")));
|
|
161
|
-
ok(logs.some((line) => line.includes("Kept in")));
|
|
337
|
+
strictEqual(outcome.status, "reverted");
|
|
338
|
+
ok(logs.includes(" removing the overrides introduced 2 new duplicate(s) — reverting"));
|
|
339
|
+
strictEqual(read(dir, "pnpm-workspace.yaml"), workspaceYamlContent);
|
|
162
340
|
});
|
|
163
341
|
it("writes plain overrides and skips the version gate when convergence is disabled", () => {
|
|
164
342
|
const dir = makeProject({
|
|
@@ -205,17 +383,9 @@ describe("applyClusterFixes", () => {
|
|
|
205
383
|
pnpmVersion: () => "11.17.0",
|
|
206
384
|
readFixes: () => [
|
|
207
385
|
fix({
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
requester: "@tamagui/metro-plugin@1.0.0",
|
|
212
|
-
requesterName: "@tamagui/metro-plugin",
|
|
213
|
-
packageName: "metro-config",
|
|
214
|
-
range: "*",
|
|
215
|
-
from: "0.87.0",
|
|
216
|
-
to: "0.84.5",
|
|
217
|
-
},
|
|
218
|
-
],
|
|
386
|
+
applicable: true,
|
|
387
|
+
target: "0.84.5",
|
|
388
|
+
convergentMembers: ["metro-config"],
|
|
219
389
|
externalConstraints: [
|
|
220
390
|
{
|
|
221
391
|
requester: "@react-native/community-cli-plugin@0.87.0",
|
|
@@ -324,6 +494,64 @@ describe("applyClusterFixes", () => {
|
|
|
324
494
|
ok(logs.some((line) => line.startsWith("Would apply:")));
|
|
325
495
|
ok(outcome.plannedChangeCount > 0);
|
|
326
496
|
});
|
|
497
|
+
describe("an open range that ignored the pinned version", () => {
|
|
498
|
+
const reuseFix = (requesterName, packageName, range, from, to) => fix({
|
|
499
|
+
anchor: to,
|
|
500
|
+
reuseFixes: [
|
|
501
|
+
{
|
|
502
|
+
requester: `${requesterName}@1.0.0`,
|
|
503
|
+
requesterName,
|
|
504
|
+
packageName,
|
|
505
|
+
range,
|
|
506
|
+
from,
|
|
507
|
+
to,
|
|
508
|
+
},
|
|
509
|
+
],
|
|
510
|
+
});
|
|
511
|
+
// the metro fixture's wildcard, and alouette's peer
|
|
512
|
+
const reuseFixes = [
|
|
513
|
+
reuseFix("@tamagui/metro-plugin", "metro-config", "*", "0.87.0", "0.84.5"),
|
|
514
|
+
reuseFix("react-native-css", "lightningcss", ">=1.27.0", "1.33.0", "1.30.1"),
|
|
515
|
+
];
|
|
516
|
+
const planFor = (fixes) => {
|
|
517
|
+
const dir = makeProject({
|
|
518
|
+
"package.json": manifestContent,
|
|
519
|
+
"pnpm-lock.yaml": "lockfileVersion: '9.0'\n",
|
|
520
|
+
});
|
|
521
|
+
const logs = [];
|
|
522
|
+
const outcome = applyClusterFixes({
|
|
523
|
+
projectDir: dir,
|
|
524
|
+
color: false,
|
|
525
|
+
dryRun: true,
|
|
526
|
+
log: (message = "") => logs.push(message),
|
|
527
|
+
pnpmVersion: () => "11.17.0",
|
|
528
|
+
readFixes: () => fixes,
|
|
529
|
+
readDuplicates: () => snapshot(),
|
|
530
|
+
resolve: () => {
|
|
531
|
+
throw new Error("a dry run must not resolve");
|
|
532
|
+
},
|
|
533
|
+
});
|
|
534
|
+
return { outcome, logs };
|
|
535
|
+
};
|
|
536
|
+
it("plans nothing for them: pnpm resolves them back to the highest copy", () => {
|
|
537
|
+
const { outcome, logs } = planFor(reuseFixes);
|
|
538
|
+
// `--check` has nothing to fail on, run after run
|
|
539
|
+
strictEqual(outcome.plannedChangeCount, 0);
|
|
540
|
+
ok(!logs.some((line) => line.includes("(reuse)")));
|
|
541
|
+
});
|
|
542
|
+
it("lets the family's own target through instead", () => {
|
|
543
|
+
const { logs } = planFor([
|
|
544
|
+
fix({
|
|
545
|
+
...reuseFixes[0],
|
|
546
|
+
applicable: true,
|
|
547
|
+
target: "0.87.0",
|
|
548
|
+
convergentMembers: ["metro-config"],
|
|
549
|
+
}),
|
|
550
|
+
]);
|
|
551
|
+
ok(logs.some((line) => line.includes('"metro-config@": "0.87.0" (converge)')));
|
|
552
|
+
ok(!logs.some((line) => line.includes("ignoring")));
|
|
553
|
+
});
|
|
554
|
+
});
|
|
327
555
|
it("renders repo-relative paths and the transient override file", () => {
|
|
328
556
|
const dir = makeProject({
|
|
329
557
|
"package.json": manifestContent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyClusterFixes.test.js","sourceRoot":"","sources":["../src/applyClusterFixes.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"applyClusterFixes.test.js","sourceRoot":"","sources":["../src/applyClusterFixes.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ok, strictEqual } from "node:assert/strict";
|
|
2
2
|
import { spawnSync } from "node:child_process";
|
|
3
3
|
import { cpSync, mkdirSync, realpathSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
+
import { afterEach, describe, it } from "node:test";
|
|
5
6
|
import { fileURLToPath } from "node:url";
|
|
6
7
|
import { createTempProjects } from "../helpers/tempProjects.js";
|
|
7
8
|
// The bins run from `src` under the test runtime; the `bin` field points at the
|
|
@@ -40,18 +41,26 @@ describe("pnpm-why-duplicate", () => {
|
|
|
40
41
|
mkdirSync(nested, { recursive: true });
|
|
41
42
|
const fromRoot = runBin("pnpm-why-duplicate", dir, ["--details"]);
|
|
42
43
|
const fromNested = runBin("pnpm-why-duplicate", nested, ["--details"]);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
strictEqual(fromNested.status, 0);
|
|
45
|
+
strictEqual(fromNested.stdout, fromRoot.stdout);
|
|
46
|
+
ok(fromNested.stdout.includes("printable-shell-command"));
|
|
47
|
+
strictEqual(fromNested.stderr.trim(), lockNotice(dir));
|
|
48
|
+
strictEqual(fromRoot.stderr, "");
|
|
48
49
|
});
|
|
49
50
|
it("names the lockfile it could not find and exits 1", () => {
|
|
50
51
|
const dir = projects.create();
|
|
51
52
|
const result = runBin("pnpm-why-duplicate", dir, []);
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
strictEqual(result.status, 1);
|
|
54
|
+
strictEqual(result.stderr.trim(), `No pnpm-lock.yaml found in ${realpathSync(dir)} or any parent directory`);
|
|
54
55
|
});
|
|
55
56
|
});
|
|
57
|
+
it("reports on a lockfile that also resolves the package manager", () => {
|
|
58
|
+
const result = runBin("pnpm-why-duplicate", project("package-manager-document"), ["--details"]);
|
|
59
|
+
strictEqual(result.stderr, "");
|
|
60
|
+
strictEqual(result.status, 0);
|
|
61
|
+
strictEqual(result.stdout, runBin("pnpm-why-duplicate", project("duplicated-printable-shell-command"), ["--details"]).stdout);
|
|
62
|
+
ok(result.stdout.includes("printable-shell-command"));
|
|
63
|
+
ok(!result.stdout.includes("@pnpm/exe"));
|
|
64
|
+
});
|
|
56
65
|
});
|
|
57
66
|
//# sourceMappingURL=pnpm-why-duplicate.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm-why-duplicate.test.js","sourceRoot":"","sources":["../../src/bin/pnpm-why-duplicate.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pnpm-why-duplicate.test.js","sourceRoot":"","sources":["../../src/bin/pnpm-why-duplicate.test.ts"],"names":[],"mappings":"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"}
|
package/dist/dedupe.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
1
3
|
import { countDuplicatedPackages, createPackageFilter, diffVersionsSnapshots, renderDedupeSummary, } from "pm-dedup-core";
|
|
2
4
|
import { applyClusterFixes } from "./applyClusterFixes.js";
|
|
3
5
|
import { lockPathOf, resolvePnpmProjectDir } from "./helpers/projectDir.js";
|
|
@@ -7,6 +9,17 @@ const residualsMessage = "`pnpm dedupe` would also change the lockfile.";
|
|
|
7
9
|
// `pnpm dedupe` merges everything it can and knows nothing of the filter, so
|
|
8
10
|
// running it would undo the point of a filtered run.
|
|
9
11
|
const filteredResidualsMessage = "`pnpm dedupe` was not run: it ignores the package filter. Run `pnpm dedupe` yourself, or this command without a filter, to finish the rest.";
|
|
12
|
+
// The comment pnpm-dedup 2.2 wrote above the overrides it kept. Those still
|
|
13
|
+
// apply on every resolution, so a run cannot tell what holds without them.
|
|
14
|
+
const leftoverOverridesMarker = "# Added by pnpm-dedup.";
|
|
15
|
+
const warnOnLeftoverOverrides = (projectDir) => {
|
|
16
|
+
const workspaceYamlPath = join(projectDir, "pnpm-workspace.yaml");
|
|
17
|
+
if (!existsSync(workspaceYamlPath) ||
|
|
18
|
+
!readFileSync(workspaceYamlPath, "utf8").includes(leftoverOverridesMarker)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log(`pnpm-workspace.yaml still has overrides an earlier pnpm-dedup kept (under "${leftoverOverridesMarker.slice(2)}"). This version never keeps any: remove them and run again to see what holds on its own.`);
|
|
22
|
+
};
|
|
10
23
|
/**
|
|
11
24
|
* `pnpm dedupe` only merges what it can resolve to a single version on its own:
|
|
12
25
|
* it never widens a workspace range, and it never repoints an edge that resolved
|
|
@@ -47,6 +60,7 @@ export function dedupe({ mode = "apply", convergenceOverrides = true, filter, }
|
|
|
47
60
|
return residualsMessage;
|
|
48
61
|
return undefined;
|
|
49
62
|
})();
|
|
63
|
+
warnOnLeftoverOverrides(projectDir);
|
|
50
64
|
const outcome = applyClusterFixes({
|
|
51
65
|
projectDir,
|
|
52
66
|
dryRun,
|
|
@@ -54,9 +68,6 @@ export function dedupe({ mode = "apply", convergenceOverrides = true, filter, }
|
|
|
54
68
|
filter,
|
|
55
69
|
packageManagerResiduals: residuals,
|
|
56
70
|
});
|
|
57
|
-
if (outcome.status === "kept-overrides") {
|
|
58
|
-
console.log(`${outcome.stickyOverrides.length} override(s) left in pnpm-workspace.yaml — see the comment above them`);
|
|
59
|
-
}
|
|
60
71
|
if (mode === "check") {
|
|
61
72
|
process.exitCode =
|
|
62
73
|
outcome.plannedChangeCount > 0 || (probe !== null && probe.status !== 0)
|
|
@@ -70,7 +81,7 @@ export function dedupe({ mode = "apply", convergenceOverrides = true, filter, }
|
|
|
70
81
|
// Applying an override needs a real resolution, and `pnpm dedupe` is the
|
|
71
82
|
// only one that performs it — so a filtered run that changed something has
|
|
72
83
|
// already merged whatever else pnpm could reach on its own.
|
|
73
|
-
if (outcome.status === "applied"
|
|
84
|
+
if (outcome.status === "applied") {
|
|
74
85
|
console.log("`pnpm dedupe` ran to apply the fixes above and merged what it could on its own: the filter bounds the edits made here, not pnpm's resolution.");
|
|
75
86
|
}
|
|
76
87
|
console.log(filteredResidualsMessage);
|
package/dist/dedupe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAiBrE,MAAM,gBAAgB,GAAG,+CAA+C,CAAC;AAEzE,6EAA6E;AAC7E,qDAAqD;AACrD,MAAM,wBAAwB,GAC5B,6IAA6I,CAAC;AAEhJ;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,EACrB,IAAI,GAAG,OAAO,EACd,oBAAoB,GAAG,IAAI,EAC3B,MAAM,GACP,GAAkB,EAAE;IACnB,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO;IAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC;IAEhE,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE9C,8EAA8E;IAC9E,wDAAwD;IACxD,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC7C,mBAAmB,CAAC;YAClB,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC;YAC7C,mBAAmB,EAAE,uBAAuB,CAAC,KAAK,CAAC;YACnD,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,+BAA+B;IAC/B,MAAM,KAAK,GACT,MAAM,IAAI,CAAC,QAAQ;QACjB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,SAAS,GAAG,CAAC,GAAuB,EAAE;QAC1C,IAAI,QAAQ;YAAE,OAAO,wBAAwB,CAAC;QAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,UAAU;QACV,MAAM;QACN,oBAAoB;QACpB,MAAM;QACN,uBAAuB,EAAE,SAAS;KACnC,CAAC,CAAC;IAEH,IAAI,
|
|
1
|
+
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"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"}
|