@bluewombat/runtime 0.9.0 → 0.10.0
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 +122 -52
- package/SPECS.md +36 -14
- package/dist/cli.js +4 -4
- package/dist/config/agent-shorthand.d.ts +24 -3
- package/dist/config/agent-shorthand.d.ts.map +1 -1
- package/dist/config/agent-shorthand.js +64 -19
- package/dist/config/agent-shorthand.js.map +1 -1
- package/dist/config/home.d.ts +2 -0
- package/dist/config/home.d.ts.map +1 -1
- package/dist/config/home.js +2 -0
- package/dist/config/home.js.map +1 -1
- package/dist/config/load-config.d.ts.map +1 -1
- package/dist/config/load-config.js +298 -46
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/parse-args.d.ts +1 -1
- package/dist/config/parse-args.d.ts.map +1 -1
- package/dist/config/parse-args.js +83 -56
- package/dist/config/parse-args.js.map +1 -1
- package/dist/config/types.d.ts +104 -16
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +13 -1
- package/dist/config/types.js.map +1 -1
- package/dist/loop/authority.d.ts +38 -1
- package/dist/loop/authority.d.ts.map +1 -1
- package/dist/loop/authority.js +41 -2
- package/dist/loop/authority.js.map +1 -1
- package/dist/loop/context.d.ts +16 -1
- package/dist/loop/context.d.ts.map +1 -1
- package/dist/loop/drive.d.ts +9 -3
- package/dist/loop/drive.d.ts.map +1 -1
- package/dist/loop/drive.js +17 -7
- package/dist/loop/drive.js.map +1 -1
- package/dist/loop/features.d.ts.map +1 -1
- package/dist/loop/features.js +322 -59
- package/dist/loop/features.js.map +1 -1
- package/dist/loop/open-host.d.ts.map +1 -1
- package/dist/loop/open-host.js +109 -7
- package/dist/loop/open-host.js.map +1 -1
- package/dist/loop/report.d.ts.map +1 -1
- package/dist/loop/report.js +21 -9
- package/dist/loop/report.js.map +1 -1
- package/dist/loop/trace.js +1 -1
- package/dist/loop/trace.js.map +1 -1
- package/dist/loop/transformers.d.ts +16 -2
- package/dist/loop/transformers.d.ts.map +1 -1
- package/dist/loop/transformers.js +137 -22
- package/dist/loop/transformers.js.map +1 -1
- package/dist/loop/warm.js +1 -1
- package/dist/loop/warm.js.map +1 -1
- package/dist/operator/agent-plugins.d.ts.map +1 -1
- package/dist/operator/agent-plugins.js +14 -8
- package/dist/operator/agent-plugins.js.map +1 -1
- package/dist/operator/doctor.d.ts +1 -1
- package/dist/operator/doctor.d.ts.map +1 -1
- package/dist/operator/doctor.js +79 -29
- package/dist/operator/doctor.js.map +1 -1
- package/dist/operator/explain.d.ts.map +1 -1
- package/dist/operator/explain.js +37 -8
- package/dist/operator/explain.js.map +1 -1
- package/dist/operator/film.js +0 -3
- package/dist/operator/film.js.map +1 -1
- package/dist/operator/init.js +13 -8
- package/dist/operator/init.js.map +1 -1
- package/dist/operator/log.js +9 -2
- package/dist/operator/log.js.map +1 -1
- package/dist/operator/setup.d.ts.map +1 -1
- package/dist/operator/setup.js +2 -0
- package/dist/operator/setup.js.map +1 -1
- package/package.json +14 -14
package/dist/loop/features.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { rm } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { pathSegment } from "@bluewombat/conductor";
|
|
5
|
+
import { publish, refreshWorkLine } from "./authority.js";
|
|
2
6
|
import { cancelTicket, handleCancel as cancelTicketByKey, handleResume as resumeTicketByKey, } from "./deliveries.js";
|
|
3
7
|
import { driveUntilBlocked } from "./drive.js";
|
|
4
8
|
import { pushReport } from "./report.js";
|
|
@@ -69,6 +73,19 @@ async function admitFeature(input, feature) {
|
|
|
69
73
|
// about work already made: nothing here restarts it.
|
|
70
74
|
const before = await input.ledger.getFeature(feature.key);
|
|
71
75
|
if (before.ok && before.aggregate.state !== "waiting") {
|
|
76
|
+
// The label that leaves the e2e check out is the one thing a human can still change: it is
|
|
77
|
+
// honoured until the Feature is submitted, and read again by the check each time it runs.
|
|
78
|
+
if (before.aggregate.intention.skip_e2e !== feature.skip_e2e) {
|
|
79
|
+
const moved = await input.ledger.setFeatureSkipE2e({
|
|
80
|
+
key: feature.key,
|
|
81
|
+
skip: feature.skip_e2e,
|
|
82
|
+
});
|
|
83
|
+
if (moved.ok) {
|
|
84
|
+
input.journal.append({ event: "skip-e2e", key: feature.key, skip: feature.skip_e2e });
|
|
85
|
+
input.trace(`feature ${feature.key} ${feature.skip_e2e ? "now" : "no longer"} skips the e2e check`);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
72
89
|
input.journal.append({ event: "skipped", key: feature.key, state: before.aggregate.state });
|
|
73
90
|
return;
|
|
74
91
|
}
|
|
@@ -82,6 +99,7 @@ async function admitFeature(input, feature) {
|
|
|
82
99
|
external_id: feature.external_id,
|
|
83
100
|
blocked_by: feature.blocked_by,
|
|
84
101
|
merge_when_ready: feature.merge_when_ready,
|
|
102
|
+
...(feature.skip_e2e ? { skip_e2e: true } : {}),
|
|
85
103
|
...(feature.title === undefined ? {} : { title: feature.title }),
|
|
86
104
|
...(feature.source === undefined ? {} : { source: feature.source }),
|
|
87
105
|
};
|
|
@@ -131,6 +149,9 @@ export async function cancelFeatureFlow(input, key) {
|
|
|
131
149
|
if (feature.line !== undefined) {
|
|
132
150
|
await input.tickets.dropLine?.(feature.line);
|
|
133
151
|
}
|
|
152
|
+
if (input.featureDelivery !== undefined) {
|
|
153
|
+
await rm(featureWorkspace(input.featureDelivery, key), { recursive: true, force: true });
|
|
154
|
+
}
|
|
134
155
|
const cancelled = await input.ledger.cancelFeature(key);
|
|
135
156
|
if (!cancelled.ok) {
|
|
136
157
|
return;
|
|
@@ -174,6 +195,10 @@ export async function advanceProject(input, project) {
|
|
|
174
195
|
return undefined;
|
|
175
196
|
}
|
|
176
197
|
}
|
|
198
|
+
/** What the tracker says of a Ticket beside its words. */
|
|
199
|
+
function marksOf(entry) {
|
|
200
|
+
return { noTests: entry.no_tests, e2e: entry.e2e === true };
|
|
201
|
+
}
|
|
177
202
|
function refOf(feature) {
|
|
178
203
|
const { intention } = feature;
|
|
179
204
|
return {
|
|
@@ -188,7 +213,7 @@ function lineOf(feature) {
|
|
|
188
213
|
const id = feature.intention.external_id ?? feature.intention.key;
|
|
189
214
|
return `feature/${id.replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "")}`;
|
|
190
215
|
}
|
|
191
|
-
function admissionOf(ticket, feature, among) {
|
|
216
|
+
function admissionOf(ticket, feature, among, marks) {
|
|
192
217
|
return {
|
|
193
218
|
key: ticket.key,
|
|
194
219
|
project: ticket.project,
|
|
@@ -202,8 +227,46 @@ function admissionOf(ticket, feature, among) {
|
|
|
202
227
|
...(feature.line === undefined ? {} : { line: feature.line }),
|
|
203
228
|
...(ticket.title === undefined ? {} : { title: ticket.title }),
|
|
204
229
|
...(ticket.source === undefined ? {} : { source: ticket.source }),
|
|
230
|
+
// The Ticket that holds the acceptance suite writes the tests itself: none are written first.
|
|
231
|
+
...(marks.noTests || marks.e2e ? { no_tests: true } : {}),
|
|
232
|
+
...(marks.e2e ? { e2e: true } : {}),
|
|
205
233
|
};
|
|
206
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* What is wrong with a Feature of a Project that proves its Features by an e2e suite: it holds
|
|
237
|
+
* no e2e Ticket and is not marked to skip the check, holds several, or its e2e Ticket may start
|
|
238
|
+
* before the others have landed. Nothing: a Project without the check, or a Feature that skips it.
|
|
239
|
+
*/
|
|
240
|
+
function e2eRefusal(input, feature, live) {
|
|
241
|
+
if (input.options.builder.e2e === undefined || feature.intention.skip_e2e === true) {
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
244
|
+
const holding = live.filter((entry) => entry.e2e);
|
|
245
|
+
const head = "This Project proves each Feature by an e2e acceptance suite, run once on the whole Feature.";
|
|
246
|
+
if (holding.length === 0) {
|
|
247
|
+
return `${head} The Feature has no e2e Ticket and is not marked skip-test-e2e: add the e2e Ticket (the scenarios agreed with the operator, blocked by every other Ticket), or mark the Feature to skip the check.`;
|
|
248
|
+
}
|
|
249
|
+
if (holding.length > 1) {
|
|
250
|
+
return `${head} The Feature holds ${holding.length} e2e Tickets: it holds one, with all its scenarios.`;
|
|
251
|
+
}
|
|
252
|
+
const only = holding[0];
|
|
253
|
+
const others = live.filter((entry) => !entry.e2e).map((entry) => entry.ticket.key);
|
|
254
|
+
const missing = others.filter((key) => !only?.ticket.blocked_by.includes(key));
|
|
255
|
+
if (only !== undefined && missing.length > 0) {
|
|
256
|
+
return `${head} The e2e Ticket ${only.ticket.key} must be blocked by every other Ticket of the Feature, so that it lands last. It is not blocked by: ${missing.join(", ")}.`;
|
|
257
|
+
}
|
|
258
|
+
return undefined;
|
|
259
|
+
}
|
|
260
|
+
/** Whether a Feature still holds an e2e Ticket that was not cancelled. */
|
|
261
|
+
async function holdsLiveE2eTicket(input, feature) {
|
|
262
|
+
for (const key of feature.tickets) {
|
|
263
|
+
const got = await input.ledger.get(key);
|
|
264
|
+
if (got.ok && got.aggregate.intention.e2e === true && got.aggregate.state !== "cancelled") {
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
207
270
|
/**
|
|
208
271
|
* Open the next Feature that may: waiting, nothing blocking it, and every one
|
|
209
272
|
* of its Tickets written. Until then it waits and nothing is made.
|
|
@@ -232,6 +295,18 @@ async function openNextFeature(input, project) {
|
|
|
232
295
|
});
|
|
233
296
|
return;
|
|
234
297
|
}
|
|
298
|
+
const refusal = e2eRefusal(input, feature, live);
|
|
299
|
+
if (refusal !== undefined) {
|
|
300
|
+
input.journal.append({ event: "invalid", key: feature.intention.key, reason: refusal });
|
|
301
|
+
await pushReport(input, {
|
|
302
|
+
event: "invalid",
|
|
303
|
+
key: feature.intention.key,
|
|
304
|
+
project,
|
|
305
|
+
eventId: `${feature.intention.key}:invalid:e2e:${refusal}`,
|
|
306
|
+
fields: { reason: refusal },
|
|
307
|
+
}, TO);
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
235
310
|
const target = input.workLine.target;
|
|
236
311
|
let line;
|
|
237
312
|
if (input.authority !== undefined &&
|
|
@@ -269,7 +344,7 @@ async function openNextFeature(input, project) {
|
|
|
269
344
|
}
|
|
270
345
|
const withLine = { ...feature, ...(line === undefined ? {} : { line }) };
|
|
271
346
|
for (const entry of live) {
|
|
272
|
-
await input.ledger.admit(admissionOf(entry.ticket, withLine, among));
|
|
347
|
+
await input.ledger.admit(admissionOf(entry.ticket, withLine, among, marksOf(entry)));
|
|
273
348
|
}
|
|
274
349
|
input.journal.append({
|
|
275
350
|
event: "feature-opened",
|
|
@@ -306,6 +381,9 @@ async function refreshOnto(input, branch) {
|
|
|
306
381
|
const refreshed = await refreshWorkLine({
|
|
307
382
|
workLineStable: input.workLine.stable,
|
|
308
383
|
workLineTarget: branch,
|
|
384
|
+
// A Feature's line that has not moved is brought up to the final branch
|
|
385
|
+
// first, so its Tickets read the code as it now is.
|
|
386
|
+
workLineBase: branch === input.workLine.target ? undefined : input.workLine.target,
|
|
309
387
|
refreshArgv: input.options.authority?.refreshArgv ?? [],
|
|
310
388
|
timeoutMs: input.options.timeoutMs,
|
|
311
389
|
env: input.workLine.env,
|
|
@@ -356,8 +434,27 @@ async function syncTicket(input, feature, entry, known) {
|
|
|
356
434
|
}
|
|
357
435
|
// Only a Ticket that has not started takes the new words: the tracker's
|
|
358
436
|
// fingerprint moves with every comment, and a unit in flight is not rewritten.
|
|
359
|
-
|
|
360
|
-
|
|
437
|
+
// The label that says no tests are written first is not in the words, so it moves no
|
|
438
|
+
// fingerprint: it is compared on its own.
|
|
439
|
+
const marks = marksOf(entry);
|
|
440
|
+
const flagged = current.aggregate.intention.no_tests === true;
|
|
441
|
+
const holdsE2e = current.aggregate.intention.e2e === true;
|
|
442
|
+
if (state === "received" &&
|
|
443
|
+
(current.aggregate.intention.fingerprint !== ticket.fingerprint ||
|
|
444
|
+
flagged !== (marks.noTests || marks.e2e) ||
|
|
445
|
+
holdsE2e !== marks.e2e)) {
|
|
446
|
+
await input.ledger.admit(admissionOf(ticket, feature, known, marks));
|
|
447
|
+
}
|
|
448
|
+
// A Feature that is not put through the e2e check has no use of the Ticket that holds it.
|
|
449
|
+
if (feature.intention.skip_e2e === true && marks.e2e && LIVE.has(state)) {
|
|
450
|
+
input.journal.append({
|
|
451
|
+
event: "e2e-ticket-cancelled",
|
|
452
|
+
key: ticket.key,
|
|
453
|
+
feature: feature.intention.key,
|
|
454
|
+
});
|
|
455
|
+
input.trace(`feature ${feature.intention.key} skips the e2e check: ticket ${ticket.key} is cancelled`);
|
|
456
|
+
await cancelTicketByKey({ key: ticket.key, project: ticket.project }, input);
|
|
457
|
+
return;
|
|
361
458
|
}
|
|
362
459
|
if (entry.resume && state === "escalated") {
|
|
363
460
|
await resumeTicketByKey({ key: ticket.key, project: ticket.project }, input);
|
|
@@ -366,31 +463,21 @@ async function syncTicket(input, feature, entry, known) {
|
|
|
366
463
|
async function advanceOpenFeature(input, feature) {
|
|
367
464
|
const project = feature.intention.project;
|
|
368
465
|
await syncTickets(input, feature);
|
|
369
|
-
const
|
|
370
|
-
|
|
466
|
+
const limit = input.options.ticket.maxParallel ?? 1;
|
|
467
|
+
// A Ticket waiting for a person holds its place. When every place is held
|
|
468
|
+
// that way, nothing can move until someone answers.
|
|
469
|
+
const holding = await input.ledger.activeTickets(project);
|
|
470
|
+
if (holding.length >= limit && holding.every((summary) => summary.state === "escalated")) {
|
|
371
471
|
return undefined;
|
|
372
472
|
}
|
|
373
|
-
|
|
374
|
-
|
|
473
|
+
// Nothing is taken if the line cannot be reached. Conductor refreshes it again
|
|
474
|
+
// for each Ticket it cuts and aligns, which is what keeps a Ticket current
|
|
475
|
+
// while others land; this is the check that starts nothing at all.
|
|
476
|
+
if (!(await refreshOnto(input, feature.line ?? input.workLine.target))) {
|
|
375
477
|
return undefined;
|
|
376
478
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
let pending = tickets.find((summary) => LIVE.has(summary.state));
|
|
380
|
-
// A Ticket that landed moved the line: the next one is cut from where it is
|
|
381
|
-
// now, in this same pass, not a poll later.
|
|
382
|
-
while (pending !== undefined) {
|
|
383
|
-
run = await driveUntilBlocked(input, project, pending.key);
|
|
384
|
-
tickets = await ticketsOf(input, feature);
|
|
385
|
-
pending = tickets.find((summary) => LIVE.has(summary.state));
|
|
386
|
-
const interrupted = input.options.interruptFlag?.interrupted === true;
|
|
387
|
-
if (run.outcome !== "done" ||
|
|
388
|
-
interrupted ||
|
|
389
|
-
pending === undefined ||
|
|
390
|
-
!(await refreshOnto(input, feature.line ?? input.workLine.target))) {
|
|
391
|
-
break;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
479
|
+
const run = await driveTickets(input, feature, project, limit);
|
|
480
|
+
const tickets = await ticketsOf(input, feature);
|
|
394
481
|
await reportLanded(input, feature, tickets);
|
|
395
482
|
const settled = tickets.every((summary) => summary.state === "done" || summary.state === "cancelled");
|
|
396
483
|
if (settled && tickets.length > 0) {
|
|
@@ -402,6 +489,53 @@ async function advanceOpenFeature(input, feature) {
|
|
|
402
489
|
}
|
|
403
490
|
return run;
|
|
404
491
|
}
|
|
492
|
+
/** Where a Ticket is while Host has something to drive it through. */
|
|
493
|
+
const DRIVEN = new Set([
|
|
494
|
+
"running",
|
|
495
|
+
"integrating",
|
|
496
|
+
"submitted",
|
|
497
|
+
"merging",
|
|
498
|
+
]);
|
|
499
|
+
/**
|
|
500
|
+
* Work the Tickets of an open Feature, up to `limit` at a time.
|
|
501
|
+
*
|
|
502
|
+
* Each place is a worker: it drives a Ticket the Project already holds, else
|
|
503
|
+
* takes the next one that may start, and goes on to another when its own is
|
|
504
|
+
* done or is only waiting for the outside. A Ticket waiting on a check holds a
|
|
505
|
+
* place but not a worker, so the others do not wait with it. With a limit of 1
|
|
506
|
+
* this is one Ticket after the other.
|
|
507
|
+
*/
|
|
508
|
+
async function driveTickets(input, feature, project, limit) {
|
|
509
|
+
// Once, before anything runs at the same time: it clears what a dead process
|
|
510
|
+
// left, which must not be done under a Ticket that is being driven.
|
|
511
|
+
await input.conductor.reconcile(project);
|
|
512
|
+
const interrupted = () => input.options.interruptFlag?.interrupted === true;
|
|
513
|
+
const queue = (await ticketsOf(input, feature))
|
|
514
|
+
.filter((summary) => DRIVEN.has(summary.state))
|
|
515
|
+
.map((summary) => summary.key);
|
|
516
|
+
let last;
|
|
517
|
+
const worker = async () => {
|
|
518
|
+
while (!interrupted()) {
|
|
519
|
+
const key = queue.shift() ?? (await input.conductor.claimNext(project))?.key;
|
|
520
|
+
if (key === undefined) {
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
const run = await driveUntilBlocked(input, project, key, true);
|
|
524
|
+
last = run;
|
|
525
|
+
// A refusal is about the run, not the Ticket: the next one would meet it too.
|
|
526
|
+
if (run.outcome === "refused") {
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
await Promise.all(Array.from({ length: Math.max(1, limit) }, worker));
|
|
532
|
+
if (last === undefined && (await input.ledger.activeTickets(project)).length === 0) {
|
|
533
|
+
const waiting = (await ticketsOf(input, feature)).some((s) => s.state === "received");
|
|
534
|
+
// Nothing held and nothing could start: what remains waits on what cannot finish.
|
|
535
|
+
return waiting ? { outcome: "idle" } : undefined;
|
|
536
|
+
}
|
|
537
|
+
return last;
|
|
538
|
+
}
|
|
405
539
|
/** One `progress` per Ticket that landed, in the words the tracker already has. */
|
|
406
540
|
async function reportLanded(input, feature, tickets) {
|
|
407
541
|
const total = feature.tickets.length;
|
|
@@ -434,9 +568,83 @@ async function escalateFeature(input, feature, report) {
|
|
|
434
568
|
fields: { reason: report, stage: "submitting" },
|
|
435
569
|
}, TO);
|
|
436
570
|
}
|
|
571
|
+
/** Where a Feature's own work is done: apart from every Ticket's workspace, which Host clears of strays. */
|
|
572
|
+
function featureWorkspace(delivery, key) {
|
|
573
|
+
return join(delivery.workspaces, pathSegment(key));
|
|
574
|
+
}
|
|
575
|
+
/** Where the Feature's work is, and where it goes: the Feature stands where a Ticket stood, the final line where the Feature's was. */
|
|
576
|
+
function featureUnit(input, delivery, feature) {
|
|
577
|
+
return {
|
|
578
|
+
key: feature.intention.key,
|
|
579
|
+
intention: feature.intention.intention,
|
|
580
|
+
title: feature.intention.title,
|
|
581
|
+
noun: "feature",
|
|
582
|
+
workspace: featureWorkspace(delivery, feature.intention.key),
|
|
583
|
+
// The Gates read the published branch, and the copy of the Feature's line is on it.
|
|
584
|
+
judgeWorkspace: input.workLine.stable,
|
|
585
|
+
target: input.workLine.target ?? "",
|
|
586
|
+
line: delivery.targetStable,
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
/** What a Feature's delivery reads of it, and how the Feature keeps what the delivery decides. */
|
|
590
|
+
function featureStore(input, feature) {
|
|
591
|
+
const key = feature.intention.key;
|
|
592
|
+
const failed = (result) => result.ok ? undefined : { outcome: "refused", code: "illegal-transition" };
|
|
593
|
+
return {
|
|
594
|
+
async read() {
|
|
595
|
+
const got = await input.ledger.getFeature(key);
|
|
596
|
+
if (!got.ok) {
|
|
597
|
+
return undefined;
|
|
598
|
+
}
|
|
599
|
+
const aggregate = got.aggregate;
|
|
600
|
+
const parked = aggregate.parked_refusal;
|
|
601
|
+
const report = parked?.report ?? aggregate.submission?.last_report;
|
|
602
|
+
const refusedBy = parked?.refused_by ?? aggregate.submission?.last_refused_by;
|
|
603
|
+
return {
|
|
604
|
+
sentBack: report === undefined ? undefined : { report, refusedBy },
|
|
605
|
+
spent: (aggregate.submission?.refusals ?? 0) +
|
|
606
|
+
(aggregate.parked_refusals ?? 0) +
|
|
607
|
+
(aggregate.submission?.realigns ?? 0),
|
|
608
|
+
submission: aggregate.submission === undefined
|
|
609
|
+
? undefined
|
|
610
|
+
: { reference: aggregate.submission.reference },
|
|
611
|
+
};
|
|
612
|
+
},
|
|
613
|
+
async freeze(frozen) {
|
|
614
|
+
await escalateFeature(input, feature, frozen.report ?? "The line was stopped, with no reason given.");
|
|
615
|
+
return { outcome: "escalated", key };
|
|
616
|
+
},
|
|
617
|
+
async park(why) {
|
|
618
|
+
return failed(await input.ledger.recordFeatureParkedRefusal({
|
|
619
|
+
key,
|
|
620
|
+
report: why.report,
|
|
621
|
+
...(why.refusedBy === undefined ? {} : { refusedBy: why.refusedBy }),
|
|
622
|
+
}));
|
|
623
|
+
},
|
|
624
|
+
async unpark() {
|
|
625
|
+
return failed(await input.ledger.clearFeatureParkedRefusal(key));
|
|
626
|
+
},
|
|
627
|
+
async refuse(why) {
|
|
628
|
+
return failed(await input.ledger.recordFeatureRefusal({
|
|
629
|
+
key,
|
|
630
|
+
report: why.report,
|
|
631
|
+
...(why.refusedBy === undefined ? {} : { refusedBy: why.refusedBy }),
|
|
632
|
+
}));
|
|
633
|
+
},
|
|
634
|
+
async realign() {
|
|
635
|
+
return failed(await input.ledger.recordFeatureRealign(key));
|
|
636
|
+
},
|
|
637
|
+
};
|
|
638
|
+
}
|
|
437
639
|
/**
|
|
438
|
-
* Every Ticket has landed: the line
|
|
640
|
+
* Every Ticket has landed: the line is brought up to date with the one it is
|
|
641
|
+
* folded into, checked, and put in front of the Authority. With none, the work
|
|
439
642
|
* is already in the work line and the Feature is done.
|
|
643
|
+
*
|
|
644
|
+
* It is delivered the way a Ticket is — see `openDelivery` — with the final line
|
|
645
|
+
* merged into the Feature's work, its own checks run on the result, and a fix
|
|
646
|
+
* when something refuses it. Only where the work is offered differs: the line
|
|
647
|
+
* is pushed under its own name rather than a name made for it.
|
|
440
648
|
*/
|
|
441
649
|
async function closeFeature(input, feature, tickets) {
|
|
442
650
|
const key = feature.intention.key;
|
|
@@ -445,18 +653,90 @@ async function closeFeature(input, feature, tickets) {
|
|
|
445
653
|
await escalateFeature(input, feature, "Every Ticket was abandoned, so nothing was made.");
|
|
446
654
|
return;
|
|
447
655
|
}
|
|
656
|
+
if (input.options.builder.e2e !== undefined &&
|
|
657
|
+
feature.intention.skip_e2e !== true &&
|
|
658
|
+
!(await holdsLiveE2eTicket(input, feature))) {
|
|
659
|
+
await escalateFeature(input, feature, "This Feature is not marked skip-test-e2e and holds no e2e Ticket: it was cancelled while the Feature skipped the check, and the mark was taken off since. Mark the Feature skip-test-e2e again to leave the check out.");
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
448
662
|
if (input.authority === undefined || feature.line === undefined) {
|
|
449
663
|
await input.ledger.markFeatureSubmitted({ key, reference: "local" });
|
|
450
664
|
await input.ledger.markFeatureDone(key);
|
|
451
665
|
await reportDone(input, feature, undefined, undefined);
|
|
452
666
|
return;
|
|
453
667
|
}
|
|
454
|
-
|
|
455
|
-
|
|
668
|
+
const delivery = input.featureDelivery;
|
|
669
|
+
const target = input.workLine.target;
|
|
670
|
+
const publishArgv = input.options.authority?.publishArgv;
|
|
671
|
+
if (delivery === undefined || target === undefined || publishArgv === undefined) {
|
|
456
672
|
return;
|
|
457
673
|
}
|
|
458
|
-
const
|
|
459
|
-
|
|
674
|
+
const unit = featureUnit(input, delivery, feature);
|
|
675
|
+
const clean = async () => {
|
|
676
|
+
await rm(unit.workspace, { recursive: true, force: true });
|
|
677
|
+
};
|
|
678
|
+
// The Feature's work is cut from its line the way a Ticket's is, once; a
|
|
679
|
+
// pass that sent it to the fix finds it where it was left.
|
|
680
|
+
if (!existsSync(unit.workspace)) {
|
|
681
|
+
if (!(await refreshOnto(input, feature.line))) {
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
684
|
+
const isolated = await input.transformers.isolate({
|
|
685
|
+
id: `${key}:close`,
|
|
686
|
+
context: key,
|
|
687
|
+
parent: input.workLine.stable,
|
|
688
|
+
child: unit.workspace,
|
|
689
|
+
durationMs: input.options.timeoutMs,
|
|
690
|
+
});
|
|
691
|
+
if (isolated.outcome !== "isolated") {
|
|
692
|
+
// Nothing was spent: the next pass tries again.
|
|
693
|
+
await clean();
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
// The checks run here, so it is prepared the way a Ticket's workspace is.
|
|
697
|
+
const warmed = await delivery.warm?.prepare({
|
|
698
|
+
workspace: unit.workspace,
|
|
699
|
+
durationMs: delivery.warm.durationMs,
|
|
700
|
+
});
|
|
701
|
+
if (warmed !== undefined && warmed.outcome !== "warmed") {
|
|
702
|
+
await clean();
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
const prepared = await delivery.delivery.prepare(unit, featureStore(input, feature));
|
|
707
|
+
if (prepared !== "ready") {
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
710
|
+
// Offer it. What was made in the workspace goes back into the Feature's line
|
|
711
|
+
// and the line is pushed under its own name, which is where the Authority
|
|
712
|
+
// reads it and where its Submission is.
|
|
713
|
+
const folded = await input.transformers.integrate({
|
|
714
|
+
id: `${key}:close`,
|
|
715
|
+
context: key,
|
|
716
|
+
parent: input.workLine.stable,
|
|
717
|
+
child: unit.workspace,
|
|
718
|
+
durationMs: input.options.timeoutMs,
|
|
719
|
+
subject: `Merge ${target} into ${feature.line}`,
|
|
720
|
+
mergeSubject: `Merge ${target} into ${feature.line}`,
|
|
721
|
+
});
|
|
722
|
+
if (folded.outcome === "interrupted") {
|
|
723
|
+
return;
|
|
724
|
+
}
|
|
725
|
+
if (folded.outcome !== "integrated") {
|
|
726
|
+
await escalateFeature(input, feature, "The Feature's work could not be folded into its line.");
|
|
727
|
+
return;
|
|
728
|
+
}
|
|
729
|
+
const published = await publish({
|
|
730
|
+
argv: publishArgv,
|
|
731
|
+
cwd: input.workLine.stable,
|
|
732
|
+
id: key,
|
|
733
|
+
ref: feature.line,
|
|
734
|
+
target,
|
|
735
|
+
timeoutMs: input.options.timeoutMs,
|
|
736
|
+
env: input.workLine.env,
|
|
737
|
+
});
|
|
738
|
+
if (!published.ok) {
|
|
739
|
+
await escalateFeature(input, feature, published.reason);
|
|
460
740
|
return;
|
|
461
741
|
}
|
|
462
742
|
const submitted = await input.authority.submit({
|
|
@@ -477,6 +757,7 @@ async function closeFeature(input, feature, tickets) {
|
|
|
477
757
|
return;
|
|
478
758
|
}
|
|
479
759
|
await input.ledger.markFeatureSubmitted({ key, reference: submitted.reference });
|
|
760
|
+
await clean();
|
|
480
761
|
await pushReport(input, {
|
|
481
762
|
event: "submitted",
|
|
482
763
|
key,
|
|
@@ -486,8 +767,10 @@ async function closeFeature(input, feature, tickets) {
|
|
|
486
767
|
}, TO);
|
|
487
768
|
}
|
|
488
769
|
/**
|
|
489
|
-
* The line is with the Authority. If the Feature merges by itself,
|
|
490
|
-
* decide
|
|
770
|
+
* The line is with the Authority. If the Feature merges by itself, its gates
|
|
771
|
+
* decide, and a line the target moved on from goes back to be brought up to
|
|
772
|
+
* date, exactly as a Ticket does; otherwise a human folds it and the system
|
|
773
|
+
* waits, starting nothing.
|
|
491
774
|
*/
|
|
492
775
|
async function settleFeature(input, feature) {
|
|
493
776
|
const submission = feature.submission;
|
|
@@ -506,36 +789,16 @@ async function settleFeature(input, feature) {
|
|
|
506
789
|
}
|
|
507
790
|
return;
|
|
508
791
|
}
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
}
|
|
512
|
-
const judged = await input.transformers.implement({
|
|
513
|
-
id: `${key}:judgement`,
|
|
514
|
-
context: key,
|
|
515
|
-
stage: "assembly",
|
|
516
|
-
produce: false,
|
|
517
|
-
intention: feature.intention.intention,
|
|
518
|
-
workspace: input.workLine.stable,
|
|
519
|
-
});
|
|
520
|
-
if (judged.outcome === "interrupted" || judged.outcome === "invalid-invocation") {
|
|
521
|
-
return;
|
|
522
|
-
}
|
|
523
|
-
if (judged.outcome === "escalated") {
|
|
524
|
-
const last = judged.traces.at(-1);
|
|
525
|
-
const why = last?.report ?? "The line was refused, with no reason given.";
|
|
526
|
-
await escalateFeature(input, feature, last?.refusedBy === undefined ? why : `${last.refusedBy}: ${why}`);
|
|
527
|
-
return;
|
|
528
|
-
}
|
|
529
|
-
const folded = await input.authority.fold({ reference: submission.reference });
|
|
530
|
-
if (folded.outcome === "unavailable") {
|
|
792
|
+
const delivery = input.featureDelivery;
|
|
793
|
+
if (delivery === undefined || !(await refreshOnto(input, feature.line))) {
|
|
531
794
|
return;
|
|
532
795
|
}
|
|
533
|
-
|
|
534
|
-
|
|
796
|
+
const settled = await delivery.delivery.settle(featureUnit(input, delivery, feature), featureStore(input, feature));
|
|
797
|
+
if (!("folded" in settled)) {
|
|
535
798
|
return;
|
|
536
799
|
}
|
|
537
|
-
await input.ledger.markFeatureDone(key, { reference:
|
|
538
|
-
await reportDone(input, feature, submission.reference,
|
|
800
|
+
await input.ledger.markFeatureDone(key, { reference: settled.reference });
|
|
801
|
+
await reportDone(input, feature, submission.reference, settled.reference);
|
|
539
802
|
}
|
|
540
803
|
async function reportDone(input, feature, reference, integrationReference) {
|
|
541
804
|
const key = feature.intention.key;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/loop/features.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/loop/features.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAetD,OAAO,EAAiB,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAMpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAqBtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkV3F"}
|