@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 +1 -1
- package/src/bin/nestled-update.js +0 -0
- package/src/lib/apply.d.ts +6 -0
- package/src/lib/apply.js +267 -33
- package/src/lib/apply.js.map +1 -1
- package/src/lib/changes.d.ts +119 -0
- package/src/lib/changes.js +624 -0
- package/src/lib/changes.js.map +1 -0
- package/src/lib/git.d.ts +25 -4
- package/src/lib/git.js +59 -7
- package/src/lib/git.js.map +1 -1
- package/CHANGELOG.md +0 -3
package/package.json
CHANGED
|
File without changes
|
package/src/lib/apply.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
|
36
|
-
(
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
for (const
|
|
108
|
-
|
|
109
|
-
|
|
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 = (
|
|
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 ((
|
|
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
|
-
(
|
|
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
|
-
|
|
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
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
(
|
|
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
|
|
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
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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 {
|
|
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
|
|
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 (((
|
|
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: (
|
|
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
|
});
|
package/src/lib/apply.js.map
CHANGED
|
@@ -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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"}
|