@nestledjs/upgrades 0.3.1 → 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/lib/apply.d.ts +6 -0
- package/src/lib/apply.js +249 -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/package.json
CHANGED
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` });
|
|
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
|
+
}
|
|
132
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 = {});
|
|
@@ -254,15 +289,129 @@ function applyRun(projectDir, options = {}) {
|
|
|
254
289
|
if (!startedClean && !options.allowDirty) {
|
|
255
290
|
throw new Error('Project has uncommitted changes. Commit them, or re-run with --allow-dirty.');
|
|
256
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
|
+
}
|
|
257
316
|
const branch = `nestled-update/${channel}-${pending.ceiling}`;
|
|
258
|
-
|
|
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 });
|
|
259
320
|
const startCommit = (0, git_1.gitOutput)(projectDir, ['rev-parse', 'HEAD']);
|
|
260
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
|
+
*/
|
|
261
394
|
const rollback = () => {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
(
|
|
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);
|
|
266
415
|
};
|
|
267
416
|
const applied = [];
|
|
268
417
|
let blocked = null;
|
|
@@ -282,8 +431,26 @@ function applyRun(projectDir, options = {}) {
|
|
|
282
431
|
break;
|
|
283
432
|
}
|
|
284
433
|
const entry = { id: note.id, title: note.title, delivery: note.delivery };
|
|
434
|
+
const noteTouched = new Set();
|
|
285
435
|
if (includesPackage(note)) {
|
|
286
|
-
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;
|
|
287
454
|
if (result.status === 'blocked') {
|
|
288
455
|
blocked = { id: note.id, reason: (_d = result.reason) !== null && _d !== void 0 ? _d : 'Package release blocked.' };
|
|
289
456
|
break;
|
|
@@ -304,7 +471,19 @@ function applyRun(projectDir, options = {}) {
|
|
|
304
471
|
blocked = { id: note.id, reason: `Patch not found in feed: ${note.patch}` };
|
|
305
472
|
break;
|
|
306
473
|
}
|
|
307
|
-
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;
|
|
308
487
|
if (!patch.applied && !patch.alreadyApplied) {
|
|
309
488
|
blocked = {
|
|
310
489
|
id: note.id,
|
|
@@ -318,10 +497,21 @@ function applyRun(projectDir, options = {}) {
|
|
|
318
497
|
}
|
|
319
498
|
if (note.review)
|
|
320
499
|
entry.review = note.review;
|
|
321
|
-
|
|
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
|
+
}
|
|
322
512
|
applied.push({ note, entry });
|
|
323
513
|
// A note with no mechanical component at all (pure `intent-only`) still reaches here with
|
|
324
|
-
// 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,
|
|
325
515
|
// stop climbing the release ladder here: later notes may build on the judgment call this one
|
|
326
516
|
// is waiting on, so they stay pending rather than applying past it.
|
|
327
517
|
if (entry.review) {
|
|
@@ -331,9 +521,18 @@ function applyRun(projectDir, options = {}) {
|
|
|
331
521
|
}
|
|
332
522
|
if (blocked) {
|
|
333
523
|
rollback();
|
|
334
|
-
|
|
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');
|
|
335
527
|
(0, baseline_1.writeUpgradeLog)(projectDir, log);
|
|
336
|
-
return {
|
|
528
|
+
return {
|
|
529
|
+
status: 'blocked',
|
|
530
|
+
channel,
|
|
531
|
+
branch,
|
|
532
|
+
applied: [],
|
|
533
|
+
blocked: withRecovery(blocked),
|
|
534
|
+
baselineRelease: log.template.baselineRelease,
|
|
535
|
+
};
|
|
337
536
|
}
|
|
338
537
|
// A note's own `verification` takes precedence over the consumer's auto-detected lint/test
|
|
339
538
|
// scripts: the full suite may need infrastructure (a database, Docker) an unattended rollout
|
|
@@ -341,7 +540,8 @@ function applyRun(projectDir, options = {}) {
|
|
|
341
540
|
// specific change. An explicit --verify still wins, for an operator forcing an ad-hoc check.
|
|
342
541
|
const noteVerification = [...new Set(applied.flatMap(({ note }) => { var _a; return (_a = note.verification) !== null && _a !== void 0 ? _a : []; }))];
|
|
343
542
|
const commands = (_e = options.verification) !== null && _e !== void 0 ? _e : (noteVerification.length ? noteVerification : (_f = config.verification) !== null && _f !== void 0 ? _f : inferVerification(projectDir));
|
|
344
|
-
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 : [];
|
|
345
545
|
const failed = verification.find((item) => item.status !== 0);
|
|
346
546
|
if (failed) {
|
|
347
547
|
rollback();
|
|
@@ -354,7 +554,23 @@ function applyRun(projectDir, options = {}) {
|
|
|
354
554
|
branch,
|
|
355
555
|
applied: [],
|
|
356
556
|
verification,
|
|
357
|
-
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),
|
|
358
574
|
baselineRelease: log.template.baselineRelease,
|
|
359
575
|
};
|
|
360
576
|
}
|
|
@@ -371,10 +587,10 @@ function applyRun(projectDir, options = {}) {
|
|
|
371
587
|
(0, baseline_1.advanceBaseline)(log, eligibleReleases);
|
|
372
588
|
(0, baseline_1.writeUpgradeLog)(projectDir, log);
|
|
373
589
|
let pr;
|
|
374
|
-
if (((
|
|
590
|
+
if (((_j = options.autoPR) !== null && _j !== void 0 ? _j : config.autoPR) && applied.length) {
|
|
375
591
|
pr = (0, git_1.pushAndCreatePR)(projectDir, {
|
|
376
592
|
branch,
|
|
377
|
-
base: (
|
|
593
|
+
base: (_l = (_k = options.defaultBranch) !== null && _k !== void 0 ? _k : config.defaultBranch) !== null && _l !== void 0 ? _l : 'develop',
|
|
378
594
|
title: `Nestled upgrades up to ${pending.ceiling}`,
|
|
379
595
|
body: prBody(applied.map((a) => a.entry), channel, pending.ceiling),
|
|
380
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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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every path with uncommitted changes at this moment — staged, unstaged, or untracked (each file of an
|
|
3
|
+
* untracked directory individually) — excluding our own `.nestled/` bookkeeping, the same exclusion
|
|
4
|
+
* `hasUncommittedChanges` makes. Both sides of a staged rename are included.
|
|
5
|
+
*/
|
|
6
|
+
export declare function dirtyPaths(cwd: string): Set<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Ignored paths that exist right now, as `git status --ignored` reports them, as a test of whether a
|
|
9
|
+
* path existed (as an ignored file) at this moment. Git collapses an ignored directory to one entry,
|
|
10
|
+
* so its files are listed here directly, up to a limit; inside a directory too large to list (a
|
|
11
|
+
* `node_modules`), every path counts as pre-existing, which can only ever leave a file behind.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ignoredPaths(cwd: string): (path: string) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Every path a unified diff would create, modify, delete or rename (both sides), relative to the
|
|
16
|
+
* directory `git apply` runs in, minus paths matching `excludes` (the `--exclude` globs passed to
|
|
17
|
+
* `git apply`). Hunk bodies are skipped by their line counts, so a removed line that happens to read
|
|
18
|
+
* `-- a/x` is never mistaken for a header.
|
|
19
|
+
*/
|
|
20
|
+
export declare function patchPaths(diffText: string, excludes?: string[]): string[];
|
|
21
|
+
/** What is at a path on disk, captured so it can be put back exactly. */
|
|
22
|
+
type FileState = {
|
|
23
|
+
kind: 'absent';
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'file';
|
|
26
|
+
contents: Buffer;
|
|
27
|
+
mode: number;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'link';
|
|
30
|
+
target: string;
|
|
31
|
+
}
|
|
32
|
+
/** A directory or special file: never captured, never overwritten. A directory above a path keeps its mode. */
|
|
33
|
+
| {
|
|
34
|
+
kind: 'other';
|
|
35
|
+
mode?: number;
|
|
36
|
+
};
|
|
37
|
+
/** A path's state together with the state of each directory above it (a real directory, or a link). */
|
|
38
|
+
interface Captured {
|
|
39
|
+
state: FileState;
|
|
40
|
+
ancestors: {
|
|
41
|
+
absolute: string;
|
|
42
|
+
state: FileState;
|
|
43
|
+
}[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The paths one apply run changes, each with how it looked before the run first touched it, so a
|
|
47
|
+
* rollback can put back exactly those paths and leave every other file alone.
|
|
48
|
+
*
|
|
49
|
+
* Call `willTouch` before writing a path. Its state at that moment is the pre-run state, because
|
|
50
|
+
* the run never writes a path it has not declared, and a path the user had uncommitted is refused
|
|
51
|
+
* before it gets here.
|
|
52
|
+
*/
|
|
53
|
+
export declare class RunChanges {
|
|
54
|
+
private readonly root;
|
|
55
|
+
private readonly startCommit;
|
|
56
|
+
private readonly prior;
|
|
57
|
+
/** Pre-existing ignored files a step surfaced: restored on rollback, never committed as the run's. */
|
|
58
|
+
private readonly preserved;
|
|
59
|
+
/** A pre-existing ignored file a step surfaced: the user's, so no later note may write it. */
|
|
60
|
+
isPreserved(path: string): boolean;
|
|
61
|
+
/** `root` is the repository root; `startCommit` is HEAD before the run ('' on an unborn branch). */
|
|
62
|
+
constructor(root: string, startCommit: string);
|
|
63
|
+
get paths(): string[];
|
|
64
|
+
has(path: string): boolean;
|
|
65
|
+
willTouch(paths: Iterable<string>): void;
|
|
66
|
+
/**
|
|
67
|
+
* Record paths something the run did has already changed (an install's or a hook's side effects).
|
|
68
|
+
* Only paths that were clean before that step may be passed. Each was tracked at the start commit,
|
|
69
|
+
* did not exist, or existed but was ignored (`existedIgnored`): a step that changes an ignore rule,
|
|
70
|
+
* or force-adds and commits, can surface a file it never wrote. That last kind is the user's: it is
|
|
71
|
+
* kept as it is now and, after a rollback, put back the same way, unstaged. Returns the paths among
|
|
72
|
+
* `paths` that the run now owns, which never include the user's.
|
|
73
|
+
*/
|
|
74
|
+
didChange(paths: Iterable<string>, existedIgnored?: (path: string) => boolean): string[];
|
|
75
|
+
/**
|
|
76
|
+
* Put `paths` (default: every path this run touched) back to their pre-run state, in both the
|
|
77
|
+
* index and the working tree. Nothing outside them is read or written.
|
|
78
|
+
*/
|
|
79
|
+
restore(paths?: Iterable<string>): void;
|
|
80
|
+
/** Paths of `paths` present in the start commit's tree. */
|
|
81
|
+
private trackedAtStart;
|
|
82
|
+
/** Remove directories a created file left empty, up to (never including) the repository root. */
|
|
83
|
+
private pruneEmptyParents;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Every file and link under `dir` (repository-root-relative, ending in `/`), as root-relative paths,
|
|
87
|
+
* without following directory links. With `limit`, null once more than that many are found.
|
|
88
|
+
*/
|
|
89
|
+
export declare function listFiles(root: string, dir: string, limit?: number): string[] | null;
|
|
90
|
+
/** The user's uncommitted work at a set of paths: what is on disk, and what is staged. */
|
|
91
|
+
export interface UserState {
|
|
92
|
+
files: Map<string, Captured>;
|
|
93
|
+
index: Map<string, string[]>;
|
|
94
|
+
}
|
|
95
|
+
/** Capture `paths` as they are now, on disk and in the index. */
|
|
96
|
+
export declare function snapshotFiles(root: string, paths: Iterable<string>): UserState;
|
|
97
|
+
/**
|
|
98
|
+
* Put back every snapshotted path whose file (contents, mode, symlink target, or presence) or index
|
|
99
|
+
* entry no longer matches, and return those paths. Used around steps that run third-party code (a
|
|
100
|
+
* package install, verification commands) on a dirty tree, so a script that rewrites, replaces or
|
|
101
|
+
* re-stages a file the user has uncommitted work in cannot cost them that work.
|
|
102
|
+
*/
|
|
103
|
+
export interface RestoreResult {
|
|
104
|
+
/** Paths found changed and put back (or attempted): the caller blocks on any. */
|
|
105
|
+
restored: string[];
|
|
106
|
+
/** Paths that could not be put back, with where their saved state was written instead. */
|
|
107
|
+
unrecovered: {
|
|
108
|
+
path: string;
|
|
109
|
+
savedTo: string;
|
|
110
|
+
}[];
|
|
111
|
+
}
|
|
112
|
+
export declare function restoreChangedFiles(root: string, snapshot: UserState): RestoreResult;
|
|
113
|
+
/**
|
|
114
|
+
* Commit only `paths`, leaving anything else the user has staged or modified out of the commit and
|
|
115
|
+
* exactly as it was. Returns the new HEAD (short), the unchanged HEAD when none of `paths` changed,
|
|
116
|
+
* or '' when staging or committing failed (a commit hook rejecting it, say), like `commitAll`.
|
|
117
|
+
*/
|
|
118
|
+
export declare function commitPaths(root: string, message: string, paths: string[]): string;
|
|
119
|
+
export {};
|