@nestledjs/upgrades 0.3.0 → 0.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestledjs/upgrades",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "type": "commonjs",
5
5
  "description": "Consume and apply Nestled template upgrades in a cloned project (nestled-update).",
6
6
  "main": "./src/index.js",
File without changes
@@ -19,6 +19,12 @@ export interface BlockedInfo {
19
19
  id: string;
20
20
  reason: string;
21
21
  output?: string;
22
+ /**
23
+ * Set when the note was held back only because it would touch these paths, which had uncommitted
24
+ * changes when the run started. Nothing is wrong with the upgrade itself, so it is not recorded as
25
+ * `blocked` in the ledger: commit or stash the paths and run again.
26
+ */
27
+ uncommitted?: string[];
22
28
  }
23
29
  export interface VerificationResult {
24
30
  command: string;
package/src/lib/apply.js CHANGED
@@ -5,6 +5,7 @@ const node_child_process_1 = require("node:child_process");
5
5
  const node_fs_1 = require("node:fs");
6
6
  const node_os_1 = require("node:os");
7
7
  const node_path_1 = require("node:path");
8
+ const changes_1 = require("./changes");
8
9
  const manifest_1 = require("./manifest");
9
10
  const baseline_1 = require("./baseline");
10
11
  const pending_1 = require("./pending");
@@ -18,7 +19,11 @@ function includesPackage(note) {
18
19
  function includesPatch(note) {
19
20
  return !note.delivery || note.delivery === 'code-patch' || note.delivery === 'hybrid';
20
21
  }
21
- function tryApplyPatch(cwd, diffText) {
22
+ /**
23
+ * `undoPartial` puts back the patch's own paths after a failed 3-way attempt (which can leave conflict
24
+ * markers and index entries behind); it must touch nothing else.
25
+ */
26
+ function tryApplyPatch(cwd, diffText, undoPartial) {
22
27
  const excludeArgs = PATCH_EXCLUDES.map((pattern) => `--exclude=${pattern}`);
23
28
  const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'nestled-upd-'));
24
29
  const file = (0, node_path_1.join)(dir, 'change.diff');
@@ -32,8 +37,8 @@ function tryApplyPatch(cwd, diffText) {
32
37
  const threeWay = (0, git_1.git)(cwd, ['apply', '--3way', ...excludeArgs, file]);
33
38
  if (threeWay.status === 0)
34
39
  return { applied: true, via3way: true };
35
- // 3-way may have left partial state on this (uncommitted) note only.
36
- (0, git_1.git)(cwd, ['checkout', '--', '.']);
40
+ // 3-way may have left partial state, but only on this note's own paths.
41
+ undoPartial();
37
42
  return { applied: false, output: check.stderr || check.stdout };
38
43
  }
39
44
  const apply = (0, git_1.git)(cwd, ['apply', ...excludeArgs, file]);
@@ -98,29 +103,38 @@ function updateLockfile(cwd) {
98
103
  reason: ((_b = result.status) !== null && _b !== void 0 ? _b : 1) === 0 ? 'Lockfile updated.' : result.stderr || result.stdout || 'Install failed.',
99
104
  };
100
105
  }
101
- function applyPackageReleases(cwd, note) {
102
- var _a, _b, _c, _d, _e;
103
- const releases = (_a = note.packageReleases) !== null && _a !== void 0 ? _a : [];
104
- if (releases.some((release) => !release.targetVersion && !release.versionRange)) {
105
- return { status: 'blocked', reason: 'Package release is missing targetVersion and versionRange (pending release).' };
106
- }
107
- for (const release of releases) {
108
- const version = (_b = release.targetVersion) !== null && _b !== void 0 ? _b : release.versionRange;
109
- if (!verifyPublishedPackage(release.name, version)) {
110
- return { status: 'blocked', reason: `Cannot verify published version for ${release.name}@${version}.` };
111
- }
106
+ /** Whether a directory between `cwd` and `path` is a symlink (`path` itself is not checked). */
107
+ function throughLink(cwd, path) {
108
+ const expected = (0, node_path_1.resolve)((0, node_fs_1.realpathSync)(cwd), (0, node_path_1.relative)(cwd, (0, node_path_1.dirname)(path)));
109
+ return (0, node_fs_1.realpathSync)((0, node_path_1.dirname)(path)) !== expected;
110
+ }
111
+ function lockfilePath(cwd) {
112
+ for (const name of ['pnpm-lock.yaml', 'yarn.lock', 'package-lock.json']) {
113
+ if ((0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, name)))
114
+ return (0, node_path_1.join)(cwd, name);
112
115
  }
116
+ return null;
117
+ }
118
+ /** Work out what a package bump would write, without writing anything. */
119
+ function planPackageReleases(cwd, note) {
120
+ var _a, _b, _c, _d;
121
+ const releases = (_a = note.packageReleases) !== null && _a !== void 0 ? _a : [];
113
122
  const manifests = findPackageManifests(cwd, releases);
123
+ const writes = [];
114
124
  const updated = [];
115
125
  for (const manifestPath of manifests) {
126
+ // Writing through a symlink, of the file or of a directory above it, would change a file
127
+ // somewhere else, which no rollback could find.
128
+ if ((0, node_fs_1.lstatSync)(manifestPath).isSymbolicLink() || throughLink(cwd, manifestPath))
129
+ continue;
116
130
  const pkg = safeReadPackageJson(manifestPath);
117
131
  if (!pkg)
118
132
  continue;
119
133
  let changed = false;
120
134
  for (const release of releases) {
121
- const version = (_d = (_c = release.versionRange) !== null && _c !== void 0 ? _c : release.targetVersion) !== null && _d !== void 0 ? _d : '';
135
+ const version = (_c = (_b = release.versionRange) !== null && _b !== void 0 ? _b : release.targetVersion) !== null && _c !== void 0 ? _c : '';
122
136
  for (const field of ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']) {
123
- if ((_e = pkg[field]) === null || _e === void 0 ? void 0 : _e[release.name]) {
137
+ if ((_d = pkg[field]) === null || _d === void 0 ? void 0 : _d[release.name]) {
124
138
  pkg[field][release.name] = version;
125
139
  updated.push({ manifest: (0, node_path_1.relative)(cwd, manifestPath), name: release.name, version });
126
140
  changed = true;
@@ -128,8 +142,29 @@ function applyPackageReleases(cwd, note) {
128
142
  }
129
143
  }
130
144
  if (changed)
131
- (0, node_fs_1.writeFileSync)(manifestPath, `${JSON.stringify(pkg, null, 2)}\n`);
145
+ writes.push({ path: manifestPath, contents: `${JSON.stringify(pkg, null, 2)}\n` });
132
146
  }
147
+ return { writes, updated, lockfile: writes.length ? lockfilePath(cwd) : null };
148
+ }
149
+ /** Absolute paths the package step of `note` would write: changed manifests and the lockfile. */
150
+ function packageTargets(plan) {
151
+ return [...plan.writes.map((write) => write.path), ...(plan.lockfile ? [plan.lockfile] : [])];
152
+ }
153
+ function applyPackageReleases(cwd, note, plan) {
154
+ var _a, _b;
155
+ const releases = (_a = note.packageReleases) !== null && _a !== void 0 ? _a : [];
156
+ if (releases.some((release) => !release.targetVersion && !release.versionRange)) {
157
+ return { status: 'blocked', reason: 'Package release is missing targetVersion and versionRange (pending release).' };
158
+ }
159
+ for (const release of releases) {
160
+ const version = (_b = release.targetVersion) !== null && _b !== void 0 ? _b : release.versionRange;
161
+ if (!verifyPublishedPackage(release.name, version)) {
162
+ return { status: 'blocked', reason: `Cannot verify published version for ${release.name}@${version}.` };
163
+ }
164
+ }
165
+ const { updated } = plan;
166
+ for (const write of plan.writes)
167
+ (0, node_fs_1.writeFileSync)(write.path, write.contents);
133
168
  if (updated.length === 0) {
134
169
  const names = releases.map((r) => r.name).join(', ') || 'the referenced packages';
135
170
  return { status: 'not-applicable', reason: `Project does not consume ${names}.` };
@@ -214,7 +249,7 @@ function prBody(applied, channel, ceiling) {
214
249
  * advanced across every fully-completed release.
215
250
  */
216
251
  function applyRun(projectDir, options = {}) {
217
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
252
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
218
253
  const config = (0, baseline_1.readSiteConfig)(projectDir);
219
254
  const log = (0, baseline_1.readUpgradeLog)(projectDir);
220
255
  (_a = log.upgrades) !== null && _a !== void 0 ? _a : (log.upgrades = {});
@@ -233,6 +268,20 @@ function applyRun(projectDir, options = {}) {
233
268
  }
234
269
  return { status: 'up-to-date', channel, applied: [], baselineRelease: log.template.baselineRelease };
235
270
  }
271
+ // A note already recorded as blocked waits for a person: it was tried, or deliberately held, and
272
+ // re-attempting it unattended would redo exactly what was refused. Stop before creating a branch or
273
+ // touching the working tree (the feed itself has already been read, which may have fetched); the
274
+ // ledger entry is resolved by hand-editing it to a terminal outcome, as with `needs-review`.
275
+ const held = pending.notes.find((note) => note.status === 'blocked');
276
+ if (held && held === pending.notes[0]) {
277
+ return {
278
+ status: 'blocked',
279
+ channel,
280
+ applied: [],
281
+ blocked: { id: held.id, reason: 'Recorded as blocked; resolve it by hand, then record a terminal outcome.' },
282
+ baselineRelease: log.template.baselineRelease,
283
+ };
284
+ }
236
285
  if (!(0, git_1.isGitRepo)(projectDir)) {
237
286
  throw new Error('Project is not a git repository; cannot create an upgrade branch.');
238
287
  }
@@ -240,15 +289,129 @@ function applyRun(projectDir, options = {}) {
240
289
  if (!startedClean && !options.allowDirty) {
241
290
  throw new Error('Project has uncommitted changes. Commit them, or re-run with --allow-dirty.');
242
291
  }
292
+ // Everything below works in repository-root-relative paths, the form `git status` reports. Patch
293
+ // paths already are (git apply resolves them from the root, skipping any outside this directory).
294
+ const root = (0, git_1.gitOutput)(projectDir, ['rev-parse', '--show-toplevel']) || projectDir;
295
+ const prefix = (0, git_1.gitOutput)(projectDir, ['rev-parse', '--show-prefix']);
296
+ const fromAbsolute = (path) => {
297
+ const fromHere = (0, node_path_1.relative)(projectDir, path);
298
+ return node_path_1.posix.normalize(`${prefix}${node_path_1.sep === '/' ? fromHere : fromHere.split(node_path_1.sep).join('/')}`);
299
+ };
300
+ // What the user had uncommitted when we started is theirs: no note may write it, no rollback may revert it.
301
+ const dirtyAtStart = startedClean ? new Set() : (0, changes_1.dirtyPaths)(root);
302
+ // Git reports a dirty submodule (or other nested repository) as one directory, whose contents no
303
+ // snapshot here can protect from what a step might run inside it. Refuse before touching anything.
304
+ const isDir = (path) => { var _a; return (_a = (0, node_fs_1.lstatSync)((0, node_path_1.join)(root, path), { throwIfNoEntry: false })) === null || _a === void 0 ? void 0 : _a.isDirectory(); };
305
+ const nested = [...dirtyAtStart].filter(isDir);
306
+ if (nested.length) {
307
+ const what = nested.length === 1 ? 'is a submodule or nested repository' : 'are submodules or nested repositories';
308
+ throw new Error(`${nested.join(', ')} ${what} with uncommitted changes; commit or stash them first.`);
309
+ }
310
+ // A merge, cherry-pick, revert or rebase in progress is not a state to build upgrade commits on, and
311
+ // rolling back would have to guess which part of it was ours.
312
+ const inProgress = (0, git_1.operationsInProgress)(projectDir);
313
+ if (inProgress.length) {
314
+ throw new Error(`A git operation is in progress (${inProgress.join(', ')}); finish or abort it first.`);
315
+ }
243
316
  const branch = `nestled-update/${channel}-${pending.ceiling}`;
244
- (0, git_1.checkoutBranch)(projectDir, branch);
317
+ // Switch branches without running hooks: on a dirty tree one could rewrite the user's work, and on
318
+ // any tree it could create files before the run starts tracking what it changes.
319
+ (0, git_1.checkoutBranch)(projectDir, branch, { hooks: false });
245
320
  const startCommit = (0, git_1.gitOutput)(projectDir, ['rev-parse', 'HEAD']);
246
321
  const forked = new Set((_c = (_b = options.forkedAreas) !== null && _b !== void 0 ? _b : config.forkedAreas) !== null && _c !== void 0 ? _c : []);
322
+ const changes = new changes_1.RunChanges(root, startCommit);
323
+ // Our own bookkeeping (the project's `.nestled/`, and the repository root's when the project is a
324
+ // subdirectory) is never the run's to delete, whatever a step or a reset does to it: put it back
325
+ // after any rollback (the upgrade log is then rewritten from memory as usual).
326
+ const bookkeepingDirs = [...new Set([`${prefix}.nestled/`, '.nestled/'])];
327
+ const isBookkeeping = (path) => bookkeepingDirs.some((dir) => path.startsWith(dir));
328
+ // What is on disk, plus what the start commit tracks there (a staged deletion must come back as one).
329
+ const trackedBookkeeping = startCommit
330
+ ? (0, git_1.git)(root, ['ls-tree', '-r', '-z', '--name-only', '--full-tree', startCommit, '--', ...bookkeepingDirs])
331
+ .stdout.split('\0')
332
+ .filter(Boolean)
333
+ : [];
334
+ // ...and what is only in the index (a staged addition whose file has since been deleted).
335
+ const indexedBookkeeping = (0, git_1.git)(root, ['ls-files', '-z', '--full-name', '--', ...bookkeepingDirs])
336
+ .stdout.split('\0')
337
+ .filter(Boolean);
338
+ const bookkeepingAtStart = (0, changes_1.snapshotFiles)(root, [
339
+ ...bookkeepingDirs.flatMap((dir) => { var _a; return (_a = (0, changes_1.listFiles)(root, dir)) !== null && _a !== void 0 ? _a : []; }),
340
+ ...trackedBookkeeping,
341
+ ...indexedBookkeeping,
342
+ ]);
343
+ /** User state that could not be put back, and where it was saved instead; reported with any block. */
344
+ const unrecovered = [];
345
+ const withRecovery = (info) => {
346
+ if (!unrecovered.length)
347
+ return info;
348
+ const notes = unrecovered.map(({ path, savedTo }) => `could not restore ${path}; its saved state is in ${savedTo}`);
349
+ return Object.assign(Object.assign({}, info), { reason: `${info.reason} Also: ${notes.join('; ')}.` });
350
+ };
351
+ const uncommittedBlock = (id, paths) => {
352
+ // The user's: dirty at the start, or a pre-existing ignored file an earlier step surfaced.
353
+ const overlap = paths.filter((path) => dirtyAtStart.has(path) || changes.isPreserved(path));
354
+ if (!overlap.length)
355
+ return null;
356
+ const subject = `${overlap.join(', ')} ${overlap.length === 1 ? 'has' : 'have'}`;
357
+ const reason = `${subject} uncommitted changes this upgrade would overwrite; commit or stash them first, then re-run.`;
358
+ return { id, reason, uncommitted: overlap };
359
+ };
360
+ /**
361
+ * Run a step that executes third-party code (an install's lifecycle scripts, git hooks, verification):
362
+ * whatever it newly dirties or commits is recorded as the run's own (and returned as `sideEffects`),
363
+ * and any file the user had uncommitted changes in that it rewrote is put back (`clobbered`).
364
+ */
365
+ const guarded = (step) => {
366
+ const dirtyBefore = (0, changes_1.dirtyPaths)(root);
367
+ const ignoredBefore = (0, changes_1.ignoredPaths)(root);
368
+ const headBefore = (0, git_1.gitOutput)(root, ['rev-parse', 'HEAD']);
369
+ const userFiles = (0, changes_1.snapshotFiles)(root, dirtyAtStart);
370
+ const result = step();
371
+ // What it left uncommitted, and what it committed (a script, or a hook, can commit too).
372
+ const changed = new Set([...(0, changes_1.dirtyPaths)(root)].filter((path) => !dirtyBefore.has(path) && !isBookkeeping(path)));
373
+ const headAfter = (0, git_1.gitOutput)(root, ['rev-parse', 'HEAD']);
374
+ if (headBefore && headAfter && headAfter !== headBefore) {
375
+ const committed = (0, git_1.git)(root, ['diff', '--name-only', '-z', '--no-renames', headBefore, headAfter]).stdout;
376
+ for (const path of committed.split('\0').filter(Boolean))
377
+ if (!isBookkeeping(path))
378
+ changed.add(path);
379
+ }
380
+ // A user path the step committed counts as clobbered even when its file and index entry still
381
+ // match: the user's work is now inside a commit, which only a rollback takes back out.
382
+ const userRestore = (0, changes_1.restoreChangedFiles)(root, userFiles);
383
+ unrecovered.push(...userRestore.unrecovered);
384
+ const clobbered = new Set(userRestore.restored);
385
+ [...changed].filter((path) => dirtyAtStart.has(path)).forEach((path) => clobbered.add(path));
386
+ // The user's paths are protected above, never taken over as the run's own.
387
+ const sideEffects = changes.didChange([...changed].filter((path) => !dirtyAtStart.has(path)), ignoredBefore);
388
+ return { result, sideEffects, clobbered: [...clobbered] };
389
+ };
390
+ /**
391
+ * Undo the run: drop its commits and put back exactly the paths it touched. Every other file,
392
+ * including everything uncommitted at the start of an `--allow-dirty` run, is left as it is.
393
+ */
247
394
  const rollback = () => {
248
- if (startedClean && startCommit)
249
- (0, git_1.git)(projectDir, ['reset', '--hard', startCommit]);
250
- else
251
- (0, git_1.git)(projectDir, ['checkout', '--', '.']);
395
+ // None was in progress at the start, so any merge (or similar) a step left behind is the run's.
396
+ (0, git_1.quitOperations)(root);
397
+ if (startedClean && startCommit) {
398
+ // The tree was clean (outside `.nestled/`) when we started, so nothing here is anyone else's work.
399
+ const reset = (0, git_1.git)(projectDir, ['reset', '--hard', startCommit]);
400
+ if (reset.status !== 0)
401
+ throw new Error(`Rollback could not reset to ${startCommit}: ${reset.stderr}`);
402
+ changes.restore();
403
+ }
404
+ else {
405
+ // Keep the index and working tree: they hold the user's uncommitted changes as well as ours. Put
406
+ // the run's own paths back first, which also clears any conflict entries a step left on them.
407
+ changes.restore();
408
+ if (startCommit) {
409
+ const reset = (0, git_1.git)(root, ['reset', '--soft', startCommit]);
410
+ if (reset.status !== 0)
411
+ throw new Error(`Rollback could not move HEAD back to ${startCommit}: ${reset.stderr}`);
412
+ }
413
+ }
414
+ unrecovered.push(...(0, changes_1.restoreChangedFiles)(root, bookkeepingAtStart).unrecovered);
252
415
  };
253
416
  const applied = [];
254
417
  let blocked = null;
@@ -259,13 +422,35 @@ function applyRun(projectDir, options = {}) {
259
422
  */
260
423
  let reviewReleaseId = null;
261
424
  for (const note of pending.notes) {
425
+ if (note.status === 'blocked') {
426
+ blocked = { id: note.id, reason: 'Recorded as blocked; resolve it by hand, then record a terminal outcome.' };
427
+ break;
428
+ }
262
429
  if (note.area && forked.has(note.area)) {
263
430
  blocked = { id: note.id, reason: `Area "${note.area}" is marked forked; review intent before applying.` };
264
431
  break;
265
432
  }
266
433
  const entry = { id: note.id, title: note.title, delivery: note.delivery };
434
+ const noteTouched = new Set();
267
435
  if (includesPackage(note)) {
268
- const result = applyPackageReleases(projectDir, note);
436
+ const plan = planPackageReleases(projectDir, note);
437
+ // An install writes through a linked lockfile to a file elsewhere, which no rollback could find.
438
+ if (plan.lockfile && ((0, node_fs_1.lstatSync)(plan.lockfile).isSymbolicLink() || throughLink(projectDir, plan.lockfile))) {
439
+ blocked = { id: note.id, reason: `${fromAbsolute(plan.lockfile)} is a symlink; update the lockfile by hand.` };
440
+ break;
441
+ }
442
+ const targets = packageTargets(plan).map(fromAbsolute);
443
+ blocked = uncommittedBlock(note.id, targets);
444
+ if (blocked)
445
+ break;
446
+ changes.willTouch(targets);
447
+ targets.forEach((path) => noteTouched.add(path));
448
+ // The install may write more than the lockfile, and its scripts may write anything.
449
+ const { result, sideEffects, clobbered } = guarded(() => applyPackageReleases(projectDir, note, plan));
450
+ sideEffects.forEach((path) => noteTouched.add(path));
451
+ blocked = uncommittedBlock(note.id, clobbered);
452
+ if (blocked)
453
+ break;
269
454
  if (result.status === 'blocked') {
270
455
  blocked = { id: note.id, reason: (_d = result.reason) !== null && _d !== void 0 ? _d : 'Package release blocked.' };
271
456
  break;
@@ -286,7 +471,19 @@ function applyRun(projectDir, options = {}) {
286
471
  blocked = { id: note.id, reason: `Patch not found in feed: ${note.patch}` };
287
472
  break;
288
473
  }
289
- const patch = tryApplyPatch(projectDir, diff);
474
+ const paths = (0, changes_1.patchPaths)(diff, PATCH_EXCLUDES).filter((path) => path.startsWith(prefix));
475
+ blocked = uncommittedBlock(note.id, paths);
476
+ if (blocked)
477
+ break;
478
+ changes.willTouch(paths);
479
+ paths.forEach((path) => noteTouched.add(path));
480
+ // Guarded like any other step: a patch that drops an ignore rule surfaces the user's ignored files,
481
+ // which must be known as theirs before a later step can commit them.
482
+ const patchStep = guarded(() => tryApplyPatch(projectDir, diff, () => changes.restore(paths)));
483
+ blocked = uncommittedBlock(note.id, patchStep.clobbered);
484
+ if (blocked)
485
+ break;
486
+ const patch = patchStep.result;
290
487
  if (!patch.applied && !patch.alreadyApplied) {
291
488
  blocked = {
292
489
  id: note.id,
@@ -300,10 +497,21 @@ function applyRun(projectDir, options = {}) {
300
497
  }
301
498
  if (note.review)
302
499
  entry.review = note.review;
303
- (0, git_1.commitAll)(projectDir, `Apply Nestled upgrade ${note.id}`);
500
+ const message = `Apply Nestled upgrade ${note.id}`;
501
+ // Commit hooks run third-party code too (formatters, generators), so committing is guarded.
502
+ // Only the note's own paths, even on a clean start: `add -A` would also sweep in an ignored file a
503
+ // step merely un-ignored, which a later `reset --hard` would then delete.
504
+ const commit = guarded(() => (0, changes_1.commitPaths)(root, message, [...noteTouched]));
505
+ blocked = uncommittedBlock(note.id, commit.clobbered);
506
+ if (blocked)
507
+ break;
508
+ if (!commit.result) {
509
+ blocked = { id: note.id, reason: 'Committing the upgrade failed; a commit hook may have rejected it.' };
510
+ break;
511
+ }
304
512
  applied.push({ note, entry });
305
513
  // A note with no mechanical component at all (pure `intent-only`) still reaches here with
306
- // nothing to commit beyond a no-op; `commitAll` is a no-op when nothing changed. Either way,
514
+ // nothing to commit beyond a no-op; committing is a no-op when nothing changed. Either way,
307
515
  // stop climbing the release ladder here: later notes may build on the judgment call this one
308
516
  // is waiting on, so they stay pending rather than applying past it.
309
517
  if (entry.review) {
@@ -313,9 +521,18 @@ function applyRun(projectDir, options = {}) {
313
521
  }
314
522
  if (blocked) {
315
523
  rollback();
316
- (0, baseline_1.setOutcome)(log, blocked.id, 'blocked');
524
+ // Held back only by the user's uncommitted work: not a problem with the upgrade, so not recorded.
525
+ if (!blocked.uncommitted)
526
+ (0, baseline_1.setOutcome)(log, blocked.id, 'blocked');
317
527
  (0, baseline_1.writeUpgradeLog)(projectDir, log);
318
- return { status: 'blocked', channel, branch, applied: [], blocked, baselineRelease: log.template.baselineRelease };
528
+ return {
529
+ status: 'blocked',
530
+ channel,
531
+ branch,
532
+ applied: [],
533
+ blocked: withRecovery(blocked),
534
+ baselineRelease: log.template.baselineRelease,
535
+ };
319
536
  }
320
537
  // A note's own `verification` takes precedence over the consumer's auto-detected lint/test
321
538
  // scripts: the full suite may need infrastructure (a database, Docker) an unattended rollout
@@ -323,7 +540,8 @@ function applyRun(projectDir, options = {}) {
323
540
  // specific change. An explicit --verify still wins, for an operator forcing an ad-hoc check.
324
541
  const noteVerification = [...new Set(applied.flatMap(({ note }) => { var _a; return (_a = note.verification) !== null && _a !== void 0 ? _a : []; }))];
325
542
  const commands = (_e = options.verification) !== null && _e !== void 0 ? _e : (noteVerification.length ? noteVerification : (_f = config.verification) !== null && _f !== void 0 ? _f : inferVerification(projectDir));
326
- const verification = applied.length ? runVerification(projectDir, commands) : [];
543
+ const guardedVerification = applied.length ? guarded(() => runVerification(projectDir, commands)) : null;
544
+ const verification = (_g = guardedVerification === null || guardedVerification === void 0 ? void 0 : guardedVerification.result) !== null && _g !== void 0 ? _g : [];
327
545
  const failed = verification.find((item) => item.status !== 0);
328
546
  if (failed) {
329
547
  rollback();
@@ -336,7 +554,23 @@ function applyRun(projectDir, options = {}) {
336
554
  branch,
337
555
  applied: [],
338
556
  verification,
339
- blocked: { id: failed.command, reason: `Verification failed: ${failed.command}` },
557
+ blocked: withRecovery({ id: failed.command, reason: `Verification failed: ${failed.command}` }),
558
+ baselineRelease: log.template.baselineRelease,
559
+ };
560
+ }
561
+ // Verification passed, but rewrote or committed the user's uncommitted work: undo the run rather than
562
+ // ship it. Like any block caused by the user's work, it is not recorded against the notes.
563
+ const verificationBlock = uncommittedBlock(commands.join('; '), (_h = guardedVerification === null || guardedVerification === void 0 ? void 0 : guardedVerification.clobbered) !== null && _h !== void 0 ? _h : []);
564
+ if (verificationBlock) {
565
+ rollback();
566
+ (0, baseline_1.writeUpgradeLog)(projectDir, log);
567
+ return {
568
+ status: 'blocked',
569
+ channel,
570
+ branch,
571
+ applied: [],
572
+ verification,
573
+ blocked: withRecovery(verificationBlock),
340
574
  baselineRelease: log.template.baselineRelease,
341
575
  };
342
576
  }
@@ -353,10 +587,10 @@ function applyRun(projectDir, options = {}) {
353
587
  (0, baseline_1.advanceBaseline)(log, eligibleReleases);
354
588
  (0, baseline_1.writeUpgradeLog)(projectDir, log);
355
589
  let pr;
356
- if (((_g = options.autoPR) !== null && _g !== void 0 ? _g : config.autoPR) && applied.length) {
590
+ if (((_j = options.autoPR) !== null && _j !== void 0 ? _j : config.autoPR) && applied.length) {
357
591
  pr = (0, git_1.pushAndCreatePR)(projectDir, {
358
592
  branch,
359
- base: (_j = (_h = options.defaultBranch) !== null && _h !== void 0 ? _h : config.defaultBranch) !== null && _j !== void 0 ? _j : 'develop',
593
+ base: (_l = (_k = options.defaultBranch) !== null && _k !== void 0 ? _k : config.defaultBranch) !== null && _l !== void 0 ? _l : 'develop',
360
594
  title: `Nestled upgrades up to ${pending.ceiling}`,
361
595
  body: prBody(applied.map((a) => a.entry), channel, pending.ceiling),
362
596
  });
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../upgrades/src/lib/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../upgrades/src/lib/apply.ts"],"names":[],"mappings":"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"}