@intentius/chant 0.124.34 → 0.124.35
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/dist/cli/handlers/graph.js +2 -2
- package/dist/cli/handlers/pr.d.ts.map +1 -1
- package/dist/cli/handlers/pr.js +147 -51
- package/dist/cli/handlers/promote.d.ts.map +1 -1
- package/dist/cli/handlers/promote.js +23 -8
- package/dist/cli/handlers/release.d.ts +12 -0
- package/dist/cli/handlers/release.d.ts.map +1 -1
- package/dist/cli/handlers/release.js +125 -10
- package/dist/cli/handlers/run.d.ts +3 -1
- package/dist/cli/handlers/run.d.ts.map +1 -1
- package/dist/cli/handlers/run.js +12 -2
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +19 -1
- package/dist/cli/parse-args.d.ts.map +1 -1
- package/dist/cli/parse-args.js +17 -0
- package/dist/cli/registry.d.ts +14 -0
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/components/auto-release.d.ts +8 -1
- package/dist/components/auto-release.d.ts.map +1 -1
- package/dist/components/auto-release.js +3 -2
- package/dist/components/green-cover.d.ts +77 -0
- package/dist/components/green-cover.d.ts.map +1 -0
- package/dist/components/green-cover.js +153 -0
- package/dist/components/pr-pipeline.d.ts +34 -0
- package/dist/components/pr-pipeline.d.ts.map +1 -1
- package/dist/components/pr-pipeline.js +39 -5
- package/dist/components/promote.d.ts +4 -1
- package/dist/components/promote.d.ts.map +1 -1
- package/dist/components/promote.js +6 -3
- package/dist/components/release-promote.d.ts +9 -0
- package/dist/components/release-promote.d.ts.map +1 -1
- package/dist/components/release-promote.js +15 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/deep-observation.d.ts +11 -0
- package/dist/deep-observation.d.ts.map +1 -1
- package/dist/graph-declared.d.ts +5 -1
- package/dist/graph-declared.d.ts.map +1 -1
- package/dist/graph-declared.js +7 -2
- package/dist/graph-detail.d.ts.map +1 -1
- package/dist/graph-detail.js +30 -1
- package/dist/graph-ir.d.ts.map +1 -1
- package/dist/graph-ir.js +13 -2
- package/dist/lifecycle/__fixtures__/publish-fakes.d.ts.map +1 -1
- package/dist/lifecycle/__fixtures__/publish-fakes.js +5 -1
- package/dist/lifecycle/compose-refs.d.ts +52 -0
- package/dist/lifecycle/compose-refs.d.ts.map +1 -0
- package/dist/lifecycle/compose-refs.js +115 -0
- package/dist/lifecycle/deep-observe.d.ts.map +1 -1
- package/dist/lifecycle/deep-observe.js +3 -2
- package/dist/lifecycle/green-apply.d.ts +39 -0
- package/dist/lifecycle/green-apply.d.ts.map +1 -0
- package/dist/lifecycle/green-apply.js +51 -0
- package/dist/lifecycle/publish-declaration.d.ts +4 -0
- package/dist/lifecycle/publish-declaration.d.ts.map +1 -1
- package/dist/lifecycle/publish-declaration.js +15 -0
- package/dist/lifecycle/publish-npm.d.ts +7 -4
- package/dist/lifecycle/publish-npm.d.ts.map +1 -1
- package/dist/lifecycle/publish-npm.js +60 -13
- package/dist/lifecycle/release-compose.d.ts +91 -0
- package/dist/lifecycle/release-compose.d.ts.map +1 -0
- package/dist/lifecycle/release-compose.js +235 -0
- package/dist/lifecycle/release-cut.d.ts +8 -0
- package/dist/lifecycle/release-cut.d.ts.map +1 -1
- package/dist/lifecycle/release-cut.js +2 -0
- package/dist/lifecycle/release-publish.d.ts +2 -0
- package/dist/lifecycle/release-publish.d.ts.map +1 -1
- package/dist/lifecycle/release-publish.js +2 -1
- package/dist/lifecycle/release-store.d.ts +15 -0
- package/dist/lifecycle/release-store.d.ts.map +1 -1
- package/dist/lifecycle/release-store.js +5 -1
- package/dist/wave-runtime.mjs +225 -223
- package/dist/workspace/checks/ci-workflow.d.ts.map +1 -1
- package/dist/workspace/checks/ci-workflow.js +8 -1
- package/dist/workspace/ci-green-cli.d.ts.map +1 -1
- package/dist/workspace/ci-green-cli.js +5 -3
- package/dist/workspace/ci-green-workflow.d.ts +18 -2
- package/dist/workspace/ci-green-workflow.d.ts.map +1 -1
- package/dist/workspace/ci-green-workflow.js +27 -5
- package/dist/workspace/ci-green.d.ts +31 -0
- package/dist/workspace/ci-green.d.ts.map +1 -1
- package/dist/workspace/ci-green.js +78 -4
- package/dist/workspace/ci-run.d.ts +6 -0
- package/dist/workspace/ci-run.d.ts.map +1 -1
- package/dist/workspace/ci-run.js +2 -1
- package/dist/workspace/ci-serve.d.ts +94 -13
- package/dist/workspace/ci-serve.d.ts.map +1 -1
- package/dist/workspace/ci-serve.js +248 -30
- package/dist/workspace/ci-workflow.d.ts +4 -4
- package/dist/workspace/ci-workflow.d.ts.map +1 -1
- package/dist/workspace/ci-workflow.js +2 -2
- package/dist/workspace/delivery-metrics.d.ts +3 -1
- package/dist/workspace/delivery-metrics.d.ts.map +1 -1
- package/dist/workspace/delivery-metrics.js +12 -3
- package/dist/workspace/member-commands.d.ts.map +1 -1
- package/dist/workspace/member-commands.js +4 -0
- package/dist/workspace/nested-graph.d.ts.map +1 -1
- package/dist/workspace/nested-graph.js +1 -0
- package/dist/workspace/release-candidates.d.ts +28 -0
- package/dist/workspace/release-candidates.d.ts.map +1 -1
- package/dist/workspace/release-candidates.js +38 -2
- package/dist/workspace/release-candidates.schema.json +51 -0
- package/dist/workspace/releases.schema.json +30 -0
- package/package.json +1 -1
- package/src/cli/handlers/graph.ts +2 -2
- package/src/cli/handlers/pr-green.test.ts +230 -0
- package/src/cli/handlers/pr.ts +148 -66
- package/src/cli/handlers/promote.test.ts +34 -0
- package/src/cli/handlers/promote.ts +22 -8
- package/src/cli/handlers/release-compose.e2e.test.ts +133 -0
- package/src/cli/handlers/release.ts +112 -10
- package/src/cli/handlers/run.ts +12 -1
- package/src/cli/main.ts +19 -1
- package/src/cli/parse-args.ts +13 -0
- package/src/cli/registry.ts +14 -0
- package/src/codegen/release-wiring.test.ts +56 -9
- package/src/components/auto-release.test.ts +22 -0
- package/src/components/auto-release.ts +9 -2
- package/src/components/green-cover.test.ts +170 -0
- package/src/components/green-cover.ts +186 -0
- package/src/components/pr-pipeline.test.ts +14 -4
- package/src/components/pr-pipeline.ts +56 -5
- package/src/components/promote.test.ts +7 -0
- package/src/components/promote.ts +9 -4
- package/src/components/release-promote.test.ts +24 -1
- package/src/components/release-promote.ts +15 -0
- package/src/deep-observation.ts +8 -0
- package/src/graph-declared.test.ts +18 -0
- package/src/graph-declared.ts +8 -1
- package/src/graph-detail.test.ts +68 -1
- package/src/graph-detail.ts +29 -1
- package/src/graph-ir.ts +12 -4
- package/src/lifecycle/__fixtures__/publish-fakes.ts +5 -1
- package/src/lifecycle/compose-refs.ts +125 -0
- package/src/lifecycle/deep-observe.test.ts +20 -0
- package/src/lifecycle/deep-observe.ts +4 -2
- package/src/lifecycle/green-apply.ts +71 -0
- package/src/lifecycle/publish-declaration.ts +15 -0
- package/src/lifecycle/publish-npm.ts +55 -13
- package/src/lifecycle/publish-targets.test.ts +45 -0
- package/src/lifecycle/release-compose.test.ts +125 -0
- package/src/lifecycle/release-compose.ts +312 -0
- package/src/lifecycle/release-cut.ts +6 -0
- package/src/lifecycle/release-publish.ts +4 -1
- package/src/lifecycle/release-store.ts +16 -1
- package/src/workspace/checks/ci-workflow.test.ts +12 -2
- package/src/workspace/checks/ci-workflow.ts +7 -1
- package/src/workspace/ci-green-cli.ts +5 -3
- package/src/workspace/ci-green-workflow.test.ts +52 -0
- package/src/workspace/ci-green-workflow.ts +34 -5
- package/src/workspace/ci-green.test.ts +33 -0
- package/src/workspace/ci-green.ts +85 -4
- package/src/workspace/ci-run.test.ts +18 -13
- package/src/workspace/ci-run.ts +8 -1
- package/src/workspace/ci-serve-land.e2e.test.ts +138 -0
- package/src/workspace/ci-serve-land.test.ts +176 -0
- package/src/workspace/ci-serve.test.ts +77 -43
- package/src/workspace/ci-serve.ts +268 -34
- package/src/workspace/ci-workflow.ts +4 -4
- package/src/workspace/delivery-metrics.ts +12 -3
- package/src/workspace/graph-contract.test.ts +3 -2
- package/src/workspace/member-commands.test.ts +11 -4
- package/src/workspace/member-commands.ts +3 -0
- package/src/workspace/nested-graph.test.ts +4 -0
- package/src/workspace/nested-graph.ts +1 -0
- package/src/workspace/release-candidates.schema.json +51 -0
- package/src/workspace/release-candidates.test.ts +30 -3
- package/src/workspace/release-candidates.ts +54 -2
- package/src/workspace/releases.schema.json +30 -0
|
@@ -20,6 +20,11 @@
|
|
|
20
20
|
* release candidates [--env <env>] [--json]
|
|
21
21
|
* the green commits of trunk a release can be cut from, each with what it
|
|
22
22
|
* would ship, and what each environment runs (#4168 4.2)
|
|
23
|
+
* release compose <name> [--base <label|sha>] (--pr <n> | --work <id>)... [--yes] [--json]
|
|
24
|
+
* pick chosen trunk changes onto a base, each with a Chant-Composed-From
|
|
25
|
+
* trailer, on the pushed branch chant/compose/<name> (#4168 4.3); a dry
|
|
26
|
+
* run unless --yes. `release cut` takes a green commit of that branch,
|
|
27
|
+
* and `--channel <tag>` makes its publish move that tag, not latest
|
|
23
28
|
* release list [--json]
|
|
24
29
|
* every release of this member with its targets, its cuts and where it runs;
|
|
25
30
|
* `--json` prints the read contract's `releases` document
|
|
@@ -38,7 +43,7 @@ import { existsSync } from "node:fs";
|
|
|
38
43
|
import { resolve } from "node:path";
|
|
39
44
|
import { formatBold, formatError, formatSuccess, formatWarning } from "../format.js";
|
|
40
45
|
import { parseParamFlags } from "../build-params-cli.js";
|
|
41
|
-
const USAGE = "chant release cut [<label>] [--at <sha>] [--yes] [--build <command>] [--param <k=v>] [--params-file <file>] [--src <dir>] [-o <file>] [--lexicon <name>] [--actor <name>] [--sign [<key file>]] [--json] | release publish <label|digest> [--yes] [--allow-unsigned] [--require-provenance] [--json] | release verify <label|digest> [--json] | release candidates [--env <env>] [--json] | release list [--json] | release export <label|digest> --env <env> [-o <dir>] [--json]";
|
|
46
|
+
const USAGE = "chant release cut [<label>] [--at <sha>] [--yes] [--build <command>] [--param <k=v>] [--params-file <file>] [--src <dir>] [-o <file>] [--lexicon <name>] [--actor <name>] [--sign [<key file>]] [--channel <tag>] [--json] | release publish <label|digest> [--yes] [--allow-unsigned] [--require-provenance] [--json] | release verify <label|digest> [--json] | release candidates [--env <env>] [--json] | release compose <name> [--base <label|sha>] (--pr <n> | --work <id>)... [--yes] [--json] | release list [--json] | release export <label|digest> --env <env> [-o <dir>] [--json]";
|
|
42
47
|
/** The build inputs `release cut` and `release compile` share. */
|
|
43
48
|
function compileInputs(ctx, params, projectDir = resolve("."), releaseLabel) {
|
|
44
49
|
const { args } = ctx;
|
|
@@ -135,6 +140,7 @@ export async function runReleaseCut(ctx) {
|
|
|
135
140
|
let trunk = null;
|
|
136
141
|
let signers = [];
|
|
137
142
|
let member = null;
|
|
143
|
+
let composed;
|
|
138
144
|
if (args.at !== undefined && !top) {
|
|
139
145
|
return fail("not-a-git-repository", "--at names a commit, and this directory is not in a git repository");
|
|
140
146
|
}
|
|
@@ -150,7 +156,21 @@ export async function runReleaseCut(ctx) {
|
|
|
150
156
|
const { releaseRuleFrom } = await import("../../workspace/identity.js");
|
|
151
157
|
const source = scopeSource(cwd);
|
|
152
158
|
trunk = ws.resolveTrunk(top, source.declaration?.ci?.green?.branch ?? null);
|
|
153
|
-
|
|
159
|
+
try {
|
|
160
|
+
ws.checkOnTrunk(top, commit, trunk);
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
// #4168 4.3: a commit of a pushed compose branch is cut too, and the cut records what it carries.
|
|
164
|
+
if (!(err instanceof ws.WorkstationCheckError) || err.code !== "release-commit-not-on-trunk")
|
|
165
|
+
throw err;
|
|
166
|
+
const refs = await import("../../lifecycle/compose-refs.js");
|
|
167
|
+
const on = refs.composeBranchContaining(top, commit, trunk.remote);
|
|
168
|
+
const trunkRef = `refs/remotes/${trunk.remote}/${trunk.branch}`;
|
|
169
|
+
const composition = on ? refs.compositionOnTrunk(top, commit, trunkRef, on.branch) : null;
|
|
170
|
+
if (!on || !composition)
|
|
171
|
+
throw err;
|
|
172
|
+
composed = { branch: on.branch, base: composition.base, sources: composition.sources };
|
|
173
|
+
}
|
|
154
174
|
signers = releaseRuleFrom(source).rule.signers.signers;
|
|
155
175
|
const { resolveMemberLedger } = await import("../../lifecycle/member-ledger.js");
|
|
156
176
|
const ledger = await resolveMemberLedger(cwd);
|
|
@@ -191,7 +211,15 @@ export async function runReleaseCut(ctx) {
|
|
|
191
211
|
checkout = at.checkoutCommit(top, cwd, commit);
|
|
192
212
|
const cutCwd = checkout?.memberDir ?? cwd;
|
|
193
213
|
const compiler = spawnTargetCompiler(compileInputs(ctx, params, cutCwd, label));
|
|
194
|
-
const request = {
|
|
214
|
+
const request = {
|
|
215
|
+
cwd: cutCwd,
|
|
216
|
+
compiler,
|
|
217
|
+
label,
|
|
218
|
+
actor,
|
|
219
|
+
...(args.sign !== undefined ? { sign: args.sign } : {}),
|
|
220
|
+
...(composed ? { composed } : {}),
|
|
221
|
+
...(args.channel ? { channel: args.channel } : {}),
|
|
222
|
+
};
|
|
195
223
|
if (dryRun) {
|
|
196
224
|
const plan = await planRelease(request);
|
|
197
225
|
// Under the release gate, a key the signers file at base lists for someone else is refused now, not after the build.
|
|
@@ -210,6 +238,8 @@ export async function runReleaseCut(ctx) {
|
|
|
210
238
|
actorSource: who.source,
|
|
211
239
|
run: ci ? { runId: ci.runId, runOrigin: ci.runOrigin } : { runId: null, runOrigin: { forge: "local" } },
|
|
212
240
|
trunk,
|
|
241
|
+
composed: composed ?? null,
|
|
242
|
+
channel: args.channel ?? null,
|
|
213
243
|
at: args.at !== undefined ? { ref: args.at, commit } : null,
|
|
214
244
|
sign: args.sign !== undefined ? { key: publicKey !== null ? publicKey.split(" ")[0] : null, readable: publicKey !== null } : null,
|
|
215
245
|
tag: tag ? { name: tag.name, exists: tag.state === "present" } : null,
|
|
@@ -221,7 +251,14 @@ export async function runReleaseCut(ctx) {
|
|
|
221
251
|
return 0;
|
|
222
252
|
}
|
|
223
253
|
const name = plan.label ? formatBold(plan.label) : "an unlabelled release";
|
|
224
|
-
|
|
254
|
+
const where = composed
|
|
255
|
+
? ` (on ${trunk.remote}/${composed.branch}, composed on ${composed.base.slice(0, 12)} from ${composed.sources.length} trunk commit(s), green)`
|
|
256
|
+
: trunk
|
|
257
|
+
? ` (on ${trunk.remote}/${trunk.branch}, green)`
|
|
258
|
+
: "";
|
|
259
|
+
console.log(`Dry run: cut ${name} from commit ${plan.commit.slice(0, 12)}${where}`);
|
|
260
|
+
if (args.channel)
|
|
261
|
+
console.log(` channel ${args.channel}: a publish moves ${args.channel}, not latest`);
|
|
225
262
|
if (plan.alreadyCut)
|
|
226
263
|
console.log(` already cut as ${plan.alreadyCut}: the cut would record nothing new`);
|
|
227
264
|
console.log(` actor ${actor} (from ${describeActorSource(who.source)})`);
|
|
@@ -282,7 +319,7 @@ export async function runReleaseCut(ctx) {
|
|
|
282
319
|
noComponents: result.release.targets.every((t) => t.templates.every((tpl) => tpl.component === null)) && result.release.artifactDigests.length === 0,
|
|
283
320
|
});
|
|
284
321
|
if (args.json) {
|
|
285
|
-
console.log(JSON.stringify({ dryRun: false, release: result.release, label: result.label, cut: result.cut, stored: result.stored, reused: result.reused, actor, actorSource: who.source, tag: tagged, next }, null, 2));
|
|
322
|
+
console.log(JSON.stringify({ dryRun: false, release: result.release, label: result.label, cut: result.cut, stored: result.stored, reused: result.reused, actor, actorSource: who.source, tag: tagged, composed: composed ?? null, channel: args.channel ?? null, next }, null, 2));
|
|
286
323
|
}
|
|
287
324
|
else {
|
|
288
325
|
const name = result.label ? formatBold(result.label) : "unlabelled release";
|
|
@@ -290,7 +327,9 @@ export async function runReleaseCut(ctx) {
|
|
|
290
327
|
console.error(formatSuccess(`Cut ${name}: ${result.release.releaseDigest}`));
|
|
291
328
|
else
|
|
292
329
|
console.error(formatSuccess(`Already cut${result.label ? ` as ${formatBold(result.label)}` : ""}: ${result.release.releaseDigest}`));
|
|
293
|
-
console.error(` commit ${result.release.commit}`);
|
|
330
|
+
console.error(` commit ${result.release.commit}${composed ? `, composed on ${composed.base.slice(0, 12)} on ${composed.branch}` : ""}`);
|
|
331
|
+
if (args.channel)
|
|
332
|
+
console.error(` channel ${args.channel}`);
|
|
294
333
|
if (result.cut)
|
|
295
334
|
console.error(` ${result.cut.signature ? `signed by ${result.cut.actor}` : `not signed; actor ${result.cut.actor}`}, run ${result.cut.runId}`);
|
|
296
335
|
console.error(` artifacts ${result.release.artifactDigests.length}, targets ${result.release.targets.map((t) => `${t.env} (${t.templates.length} template${t.templates.length === 1 ? "" : "s"})`).join(", ")}`);
|
|
@@ -377,7 +416,8 @@ export async function runReleasePublish(ctx) {
|
|
|
377
416
|
console.error(formatWarning({ message: signatureWarning }));
|
|
378
417
|
if (warning)
|
|
379
418
|
console.error(formatWarning({ message: warning }));
|
|
380
|
-
|
|
419
|
+
// #4168 4.3: a release cut with --channel moves that tag, not latest.
|
|
420
|
+
const pctx = publishContext(prepared, { cwd, tag: prepared.channel, log: (line) => (args.json ? undefined : console.error(` ${line}`)) });
|
|
381
421
|
// Every target is planned before any publishes, so a missing file or credential stops the publish with nothing sent.
|
|
382
422
|
const progress = publishProgress(await readPublishRecords(release.releaseDigest, { cwd }).catch(() => []));
|
|
383
423
|
const planned = [];
|
|
@@ -537,9 +577,15 @@ export async function runReleaseCandidates(ctx) {
|
|
|
537
577
|
for (const c of doc.candidates) {
|
|
538
578
|
const tags = [...(c.newFor.length > 0 ? [`new for ${c.newFor.join(", ")}`] : []), ...(c.cut.length > 0 ? [`cut as ${c.cut.join(", ")}`] : [])];
|
|
539
579
|
console.log(`${c.commit.slice(0, 12)} ${c.subject}${tags.length > 0 ? ` (${tags.join("; ")})` : ""}`);
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
580
|
+
// #4168 4.4: by work item, then pull request, then commit.
|
|
581
|
+
const subjectOf = new Map(c.changes.map((ch) => [ch.commit, ch.subject]));
|
|
582
|
+
for (const g of c.groups) {
|
|
583
|
+
console.log(` ${g.work !== null ? `work:${g.work}` : "no work item"}`);
|
|
584
|
+
for (const p of g.pullRequests) {
|
|
585
|
+
console.log(` ${p.pr !== null ? `#${p.pr}` : "no pull request"}`);
|
|
586
|
+
for (const sha of p.commits)
|
|
587
|
+
console.log(` ${sha.slice(0, 12)} ${subjectOf.get(sha) ?? ""}`);
|
|
588
|
+
}
|
|
543
589
|
}
|
|
544
590
|
for (const f of c.flags)
|
|
545
591
|
console.log(` flag ${f.id} (${f.member} ${f.param}) changed`);
|
|
@@ -659,3 +705,72 @@ export async function runReleaseUnknown(ctx) {
|
|
|
659
705
|
console.error(formatError({ message: `Unknown release subcommand: ${ctx.args.path}`, hint: USAGE }));
|
|
660
706
|
return 1;
|
|
661
707
|
}
|
|
708
|
+
/**
|
|
709
|
+
* `release compose <name> [--base <label|sha>] (--pr <n> | --work <id>)... [--yes] [--json]`
|
|
710
|
+
* (#4168 4.3): pick the chosen trunk changes onto a base, on
|
|
711
|
+
* `chant/compose/<name>` (../../lifecycle/release-compose.ts). A dry run
|
|
712
|
+
* unless `--yes`, which moves the branch and pushes it so CI builds it.
|
|
713
|
+
*/
|
|
714
|
+
export async function runReleaseCompose(ctx) {
|
|
715
|
+
const { args } = ctx;
|
|
716
|
+
const name = args.extraPositional;
|
|
717
|
+
if (!name) {
|
|
718
|
+
console.error(formatError({ message: "release compose needs a name for the compose branch", hint: USAGE }));
|
|
719
|
+
return 1;
|
|
720
|
+
}
|
|
721
|
+
const cwd = resolve(".");
|
|
722
|
+
const { composeRelease, ComposeError } = await import("../../lifecycle/release-compose.js");
|
|
723
|
+
const ws = await import("../../lifecycle/release-workstation.js");
|
|
724
|
+
const { scopeSource } = await import("../../workspace/write-scope.js");
|
|
725
|
+
const top = (() => {
|
|
726
|
+
try {
|
|
727
|
+
return execFileSync("git", ["rev-parse", "--show-toplevel"], { cwd, encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
728
|
+
}
|
|
729
|
+
catch {
|
|
730
|
+
return null;
|
|
731
|
+
}
|
|
732
|
+
})();
|
|
733
|
+
if (!top) {
|
|
734
|
+
console.error(formatError({ message: "a compose picks commits, and this directory is not in a git repository [not-a-git-repository]" }));
|
|
735
|
+
return 1;
|
|
736
|
+
}
|
|
737
|
+
const trunk = ws.resolveTrunk(top, scopeSource(cwd).declaration?.ci?.green?.branch ?? null);
|
|
738
|
+
try {
|
|
739
|
+
const r = await composeRelease({
|
|
740
|
+
cwd,
|
|
741
|
+
name,
|
|
742
|
+
...(args.base !== undefined ? { base: args.base } : {}),
|
|
743
|
+
prs: args.prs ?? [],
|
|
744
|
+
works: args.works ?? [],
|
|
745
|
+
yes: args.yes === true,
|
|
746
|
+
trunk,
|
|
747
|
+
});
|
|
748
|
+
if (args.json) {
|
|
749
|
+
console.log(JSON.stringify({ dryRun: args.yes !== true, ...r, next: r.written || r.pushed ? [`chant release cut <label> --at ${r.tip}`] : [sameWithYes(process.argv.slice(2))] }, null, 2));
|
|
750
|
+
return 0;
|
|
751
|
+
}
|
|
752
|
+
const verb = args.yes === true ? "Composed" : "Dry run: would compose";
|
|
753
|
+
console.log(`${verb} ${formatBold(r.branch)} on ${r.base.slice(0, 12)}${r.from ? `, after ${r.from.slice(0, 12)}` : ""}`);
|
|
754
|
+
for (const s of r.picked)
|
|
755
|
+
console.log(` pick ${s.commit.slice(0, 12)} ${s.subject} [${s.chosenBy.join(", ")}]`);
|
|
756
|
+
for (const s of r.already)
|
|
757
|
+
console.log(` carried already ${s.commit.slice(0, 12)} ${s.subject}`);
|
|
758
|
+
if (r.picked.length === 0)
|
|
759
|
+
console.log(" nothing new to pick");
|
|
760
|
+
console.log(` tip ${r.tip.slice(0, 12)}${r.pushed ? `, pushed to ${trunk.remote}` : ""}`);
|
|
761
|
+
if (args.yes !== true)
|
|
762
|
+
console.error(`Dry run: no branch was moved or pushed. Run again with --yes: ${sameWithYes(process.argv.slice(2))}`);
|
|
763
|
+
else
|
|
764
|
+
console.error(`Next: once CI tags ${r.tip.slice(0, 12)} green, cut it: chant release cut <label> --at ${r.tip} --channel <channel>`);
|
|
765
|
+
return 0;
|
|
766
|
+
}
|
|
767
|
+
catch (err) {
|
|
768
|
+
if (err instanceof ComposeError) {
|
|
769
|
+
if (args.json)
|
|
770
|
+
console.log(JSON.stringify({ error: { code: err.code, message: err.message, ...(err.conflict ? { conflict: err.conflict } : {}) } }, null, 2));
|
|
771
|
+
console.error(formatError({ message: `${err.message} [${err.code}]`, ...(err.fix ? { hint: err.fix } : {}) }));
|
|
772
|
+
return 1;
|
|
773
|
+
}
|
|
774
|
+
throw err;
|
|
775
|
+
}
|
|
776
|
+
}
|
|
@@ -110,7 +110,9 @@ export declare function autoReleaseRun(localId: string): {
|
|
|
110
110
|
*
|
|
111
111
|
* Returns the records it wrote, for `--digest-file` (#2602).
|
|
112
112
|
*/
|
|
113
|
-
export declare function recordAutoReleasesForRun(results: DriverComponentResult[], env: string, runId: string, disabled: boolean, runOrigin?: RunOrigin, releaseDigest?: string
|
|
113
|
+
export declare function recordAutoReleasesForRun(results: DriverComponentResult[], env: string, runId: string, disabled: boolean, runOrigin?: RunOrigin, releaseDigest?: string,
|
|
114
|
+
/** #4222: the digest of the templates the release records for a component in `env`, for one that publishes no artifact. */
|
|
115
|
+
templatesDigestOf?: (component: string) => string | null): Promise<ReleaseRecord[]>;
|
|
114
116
|
/**
|
|
115
117
|
* `chant run --components <name|all|a,b,c> [--env <env>]` (#585) — the
|
|
116
118
|
* interpret driver's CLI entrypoint, and since #2116 the only component run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAkD,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAI1G,OAAO,KAAK,EAAqB,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAMpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAIlG;;;;;GAKG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AA+BjC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,GAAG,OAAO,CAMjF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAChC,eAAe,EAAE,OAAO,GAAG,SAAS,EACpC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,GACzC,MAAM,CAQR;AAuLD,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpE;AAuED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAetE;AA8BD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAenE;AA2CD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAWrD;AAOD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CtE;AAOD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CvE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvE;AAID,iGAAiG;AACjG,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtE;AAsMD,wBAAsB,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BhE;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAEvF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,qBAAqB,EAAE,EAChC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EACjB,SAAS,GAAE,SAA8B,EACzC,aAAa,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/run.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/handlers/run.js
CHANGED
|
@@ -829,7 +829,9 @@ export function autoReleaseRun(localId) {
|
|
|
829
829
|
*
|
|
830
830
|
* Returns the records it wrote, for `--digest-file` (#2602).
|
|
831
831
|
*/
|
|
832
|
-
export async function recordAutoReleasesForRun(results, env, runId, disabled, runOrigin = { forge: "local" }, releaseDigest
|
|
832
|
+
export async function recordAutoReleasesForRun(results, env, runId, disabled, runOrigin = { forge: "local" }, releaseDigest,
|
|
833
|
+
/** #4222: the digest of the templates the release records for a component in `env`, for one that publishes no artifact. */
|
|
834
|
+
templatesDigestOf) {
|
|
833
835
|
const recorded = [];
|
|
834
836
|
for (const componentResult of results) {
|
|
835
837
|
if (!componentResult.ok)
|
|
@@ -847,6 +849,7 @@ export async function recordAutoReleasesForRun(results, env, runId, disabled, ru
|
|
|
847
849
|
...(gateAdmission(componentResult) ? { admission: gateAdmission(componentResult) } : {}),
|
|
848
850
|
// #4043: the release the deploy was made under, when `--release` named one.
|
|
849
851
|
...(releaseDigest !== undefined ? { releaseDigest } : {}),
|
|
852
|
+
...(releaseDigest !== undefined && templatesDigestOf?.(componentResult.component) ? { templatesDigest: templatesDigestOf(componentResult.component) } : {}),
|
|
850
853
|
}, { disabled });
|
|
851
854
|
if (!outcome.recorded && outcome.reason === "error") {
|
|
852
855
|
console.error(formatWarning({
|
|
@@ -973,6 +976,12 @@ export async function resolveRunRelease(ref, env, cwd) {
|
|
|
973
976
|
return { releaseDigest: found.release.releaseDigest, label: found.label, release: found.release };
|
|
974
977
|
}
|
|
975
978
|
/** A rebuilt image need not digest as the release's own did; say so, as promote does. Never fails the run. */
|
|
979
|
+
/** #4222: a component's templates digest in the release's target for `env`, or null when the release has no such target. */
|
|
980
|
+
async function releaseTemplatesDigestOf(release, env) {
|
|
981
|
+
const { targetFor, releaseTemplatesDigest } = await import("../../components/release-promote.js");
|
|
982
|
+
const found = targetFor(release, env);
|
|
983
|
+
return (component) => ("target" in found ? releaseTemplatesDigest(found.target, component) : null);
|
|
984
|
+
}
|
|
976
985
|
async function warnOnArtifactMismatch(release, recorded) {
|
|
977
986
|
try {
|
|
978
987
|
const { releaseArtifactMismatches } = await import("../../components/release-promote.js");
|
|
@@ -1159,7 +1168,8 @@ async function runComponentSelection(ctx) {
|
|
|
1159
1168
|
if (result.success && result.run) {
|
|
1160
1169
|
// #3955: a run that records nothing has no release to report either.
|
|
1161
1170
|
const disabled = resolveAutoReleaseDisabled(config, ctx.args.noReleaseRecord) || ledgerRecordingOff();
|
|
1162
|
-
const
|
|
1171
|
+
const templatesDigestOf = underRelease ? await releaseTemplatesDigestOf(underRelease.release, env) : undefined;
|
|
1172
|
+
const recorded = await recordAutoReleasesForRun(result.run.results, env, release.runId, disabled, release.runOrigin, underRelease?.releaseDigest, templatesDigestOf);
|
|
1163
1173
|
if (underRelease)
|
|
1164
1174
|
await warnOnArtifactMismatch(underRelease.release, recorded);
|
|
1165
1175
|
// `--digest-file` (#2602): the releases this run recorded, one
|
package/dist/cli/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AAKA,OAAO,EAAkB,KAAK,UAAU,EAAmB,MAAM,YAAY,CAAC;AAa9E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAgB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AAKA,OAAO,EAAkB,KAAK,UAAU,EAAmB,MAAM,YAAY,CAAC;AAa9E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAgB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;AAs1CzC;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBzE;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,EAgNvC,CAAC"}
|
package/dist/cli/main.js
CHANGED
|
@@ -355,7 +355,7 @@ CI:
|
|
|
355
355
|
Releases:
|
|
356
356
|
release cut [<label>] [--at <sha>] [--yes] [--build <command>] [--param <k=v>]
|
|
357
357
|
[--params-file <file>] [--src <dir>] [-o <file>] [--lexicon <name>]
|
|
358
|
-
[--actor <name>] [--sign [<key file>]] [--json]
|
|
358
|
+
[--actor <name>] [--sign [<key file>]] [--channel <tag>] [--json]
|
|
359
359
|
A dry run of a cut of this member from HEAD, which
|
|
360
360
|
must be clean, on trunk and pushed, and carry a
|
|
361
361
|
ci/green tag: compile every environment in the
|
|
@@ -376,6 +376,18 @@ Releases:
|
|
|
376
376
|
trunk from a temporary worktree instead of HEAD, so
|
|
377
377
|
the checkout need not be clean. The label reaches
|
|
378
378
|
every compile and build as CHANT_RELEASE_LABEL.
|
|
379
|
+
A green commit of a pushed chant/compose/<name>
|
|
380
|
+
branch is cut too, recording its base and sources.
|
|
381
|
+
--channel <tag> records the tag a publish moves in
|
|
382
|
+
place of latest.
|
|
383
|
+
release compose <name> [--base <label|sha>] (--pr <n> | --work <id>)...
|
|
384
|
+
[--yes] [--json]
|
|
385
|
+
Cherry-pick the chosen trunk changes, in trunk order,
|
|
386
|
+
onto the base, each with a Chant-Composed-From
|
|
387
|
+
trailer, on chant/compose/<name>. Appends to a branch
|
|
388
|
+
that exists; stops on a conflict, naming the change
|
|
389
|
+
and files, and writes nothing. A dry run unless --yes,
|
|
390
|
+
which moves the branch and pushes it.
|
|
379
391
|
release candidates [--env <env>] [--json]
|
|
380
392
|
The green commits of trunk a release can be cut from,
|
|
381
393
|
newest first, each with the commits, work items, pull
|
|
@@ -997,6 +1009,10 @@ Component release ledger + status:
|
|
|
997
1009
|
planned after the one before applied, a moved
|
|
998
1010
|
wave waiting at <name>-wave-<k>, with --wave <k>
|
|
999
1011
|
for one wave per CI job;
|
|
1012
|
+
--green: apply the green commit at HEAD, measured
|
|
1013
|
+
from the one last applied to --env, under the
|
|
1014
|
+
approved plans of the merges since, else at gate
|
|
1015
|
+
op green-<sha>;
|
|
1000
1016
|
--events-json, both commands: the run-event
|
|
1001
1017
|
stream on stdout; --report-url <s3 or file URL>,
|
|
1002
1018
|
both commands: copy the report, the change set
|
|
@@ -1450,6 +1466,8 @@ export const commandRegistry = [
|
|
|
1450
1466
|
// #4049: check a release's signature offline.
|
|
1451
1467
|
{ name: "release verify", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseVerify(ctx) },
|
|
1452
1468
|
{ name: "release workflow", runsNoConfig: true, handler: async (ctx) => (await import("../workspace/release-workflow.js")).runReleaseWorkflow(ctx) },
|
|
1469
|
+
// #4168 4.3: mode (b), chosen changes composed onto a base on chant/compose/<name>.
|
|
1470
|
+
{ name: "release compose", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseCompose(ctx) },
|
|
1453
1471
|
{ name: "release candidates", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseCandidates(ctx) },
|
|
1454
1472
|
{ name: "release list", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseList(ctx) },
|
|
1455
1473
|
{ name: "release export", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseExport(ctx) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../../src/cli/parse-args.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0F7C;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../../src/cli/parse-args.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0F7C;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAy2BpD"}
|
package/dist/cli/parse-args.js
CHANGED
|
@@ -482,6 +482,14 @@ export function parseArgs(args) {
|
|
|
482
482
|
if (!Number.isInteger(pr) || pr < 1)
|
|
483
483
|
throw new Error(`--pr needs a pull or merge request number: got "${raw ?? ""}"`);
|
|
484
484
|
result.pr = pr;
|
|
485
|
+
// `chant release compose --pr <n>...` (#4168 4.3) reads every one.
|
|
486
|
+
(result.prs ?? (result.prs = [])).push(pr);
|
|
487
|
+
}
|
|
488
|
+
else if (arg === "--channel") {
|
|
489
|
+
// `chant release cut --channel <tag>` (#4168 4.3): the tag a publish moves in place of latest.
|
|
490
|
+
result.channel = args[++i];
|
|
491
|
+
if (!result.channel || !/^[A-Za-z][A-Za-z0-9._-]*$/.test(result.channel))
|
|
492
|
+
throw new Error(`--channel needs a channel name, such as next or hotfix: got "${result.channel ?? ""}"`);
|
|
485
493
|
}
|
|
486
494
|
else if (arg === "--forge") {
|
|
487
495
|
result.forge = args[++i];
|
|
@@ -519,6 +527,10 @@ export function parseArgs(args) {
|
|
|
519
527
|
else if (arg === "--pr-loop") {
|
|
520
528
|
result.prLoop = true;
|
|
521
529
|
}
|
|
530
|
+
else if (arg === "--green") {
|
|
531
|
+
// `chant components pr-apply --green` (#4168 step 9): apply the green commit at HEAD.
|
|
532
|
+
result.green = true;
|
|
533
|
+
}
|
|
522
534
|
else if (arg === "--apply-on-merge") {
|
|
523
535
|
// `chant build --pr-loop --apply-on-merge` and `chant ci serve --apply-on-merge` (#4168): opt into applying on merge.
|
|
524
536
|
result.applyOnMerge = true;
|
|
@@ -534,6 +546,10 @@ export function parseArgs(args) {
|
|
|
534
546
|
throw new Error("--build-command needs a shell line: --build-command '<line>'");
|
|
535
547
|
result.ciBuildCommand = line;
|
|
536
548
|
}
|
|
549
|
+
else if (arg === "--land") {
|
|
550
|
+
// `chant ci serve --land` (#4168 4.4): fast-forward the target to a chant/land/<name> branch once its pre-merge phases pass.
|
|
551
|
+
result.ciLand = true;
|
|
552
|
+
}
|
|
537
553
|
else if (arg === "--pr-build-command") {
|
|
538
554
|
const line = args[++i];
|
|
539
555
|
if (line === undefined || line === "")
|
|
@@ -1101,6 +1117,7 @@ export function parseArgs(args) {
|
|
|
1101
1117
|
if (!value || value.startsWith("-"))
|
|
1102
1118
|
throw new Error("--work needs a work item id: --work <id>");
|
|
1103
1119
|
result.work = value;
|
|
1120
|
+
(result.works ?? (result.works = [])).push(value);
|
|
1104
1121
|
}
|
|
1105
1122
|
else if (arg === "--holder" || arg === "--ttl" || arg === "--token" || arg === "--outcome") {
|
|
1106
1123
|
// `chant workspace work claim|renew|release <id>` (#2732)
|
package/dist/cli/registry.d.ts
CHANGED
|
@@ -301,6 +301,10 @@ export interface ParsedArgs {
|
|
|
301
301
|
* pr-apply finds it from the commit through `--forge` when omitted.
|
|
302
302
|
*/
|
|
303
303
|
pr?: number;
|
|
304
|
+
/** Every `--pr <n>`, in order: `chant release compose` (#4168 4.3) takes several. */
|
|
305
|
+
prs?: number[];
|
|
306
|
+
/** `chant release cut --channel <tag>` (#4168 4.3): the tag a publish of the release moves in place of `latest`. */
|
|
307
|
+
channel?: string;
|
|
304
308
|
/**
|
|
305
309
|
* `chant components pr-plan|pr-apply --forge github|gitlab|forgejo` (#3183)
|
|
306
310
|
* — post the note and the commit status on this forge, with the client
|
|
@@ -334,10 +338,18 @@ export interface ParsedArgs {
|
|
|
334
338
|
* #4168, in place of recording it. Opt-in: a merge deploys nothing without it.
|
|
335
339
|
*/
|
|
336
340
|
applyOnMerge?: boolean;
|
|
341
|
+
/**
|
|
342
|
+
* `chant components pr-apply --green` (#4168 step 9): apply the green commit
|
|
343
|
+
* at HEAD, measured from the one last applied to the environment, under the
|
|
344
|
+
* approved plans of the merges between or a gate of its own.
|
|
345
|
+
*/
|
|
346
|
+
green?: boolean;
|
|
337
347
|
/** `chant build --pr-loop --pr-build` (#4088) — build and lint before pr-plan and pr-apply. */
|
|
338
348
|
prBuild?: boolean;
|
|
339
349
|
/** `chant ci serve --build-command <line>` (#4169) — the line that builds a commit a `ci/build/<sha>` tag asks for, in a worktree of it. */
|
|
340
350
|
ciBuildCommand?: string;
|
|
351
|
+
/** `chant ci serve --land` (#4168 4.4) — fast-forward the target branch to each pushed `chant/land/<name>` branch whose `ci.green.preMerge` phases pass on it. */
|
|
352
|
+
ciLand?: boolean;
|
|
341
353
|
/** `chant build --pr-loop --pr-build-command <line>` (#4088) — the build line to run in place of `chant build --env <env>`. */
|
|
342
354
|
prBuildCommand?: string;
|
|
343
355
|
/**
|
|
@@ -699,6 +711,8 @@ export interface ParsedArgs {
|
|
|
699
711
|
holder?: string;
|
|
700
712
|
/** `chant run <op> --work <id>` (#2748): the work item an Op with a work lease runs under. `chant workspace check --changes --work <id>` (#2773): the work item in hand. */
|
|
701
713
|
work?: string;
|
|
714
|
+
/** Every `--work <id>`, in order: `chant release compose` (#4168 4.3) takes several. */
|
|
715
|
+
works?: string[];
|
|
702
716
|
/** `chant workspace work claim|renew <id> --ttl <seconds|duration>` (#2732): how long the lease lasts unless renewed. */
|
|
703
717
|
ttl?: string;
|
|
704
718
|
/** `chant workspace work renew|release <id> --token <token>` (#2732): the fencing token the caller holds. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,12 @@ export interface AutoReleaseRunInfo {
|
|
|
67
67
|
inputDigest?: string;
|
|
68
68
|
/** The release the deploy was made under (#4043), recorded as the release record's `releaseDigest`. Set only when the caller named a release; never inferred. */
|
|
69
69
|
releaseDigest?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The digest of the templates the release records for this component in
|
|
72
|
+
* this environment (#4222, `releaseTemplatesDigest`), recorded as `digest`
|
|
73
|
+
* when the run published no artifact. Set only with `releaseDigest`.
|
|
74
|
+
*/
|
|
75
|
+
templatesDigest?: string;
|
|
70
76
|
}
|
|
71
77
|
/** Opt-out + field-override knobs for auto-release recording, threaded from CLI flags/config (#597: "opt-out-able (flag/config), documented default"). */
|
|
72
78
|
export interface AutoReleaseOptions {
|
|
@@ -93,7 +99,8 @@ export interface AutoReleaseOptions {
|
|
|
93
99
|
* - `options.disabled` — the opt-out flag/config was set.
|
|
94
100
|
* - `run.success` false — defensive; callers should not reach here on failure.
|
|
95
101
|
* - no digest found in the run's records — a component with no publish step
|
|
96
|
-
* has nothing to bind a release record to
|
|
102
|
+
* has nothing to bind a release record to, unless the run was made under a
|
|
103
|
+
* release that records its templates (`templatesDigest`, #4222).
|
|
97
104
|
* - no resolvable actor — mirrors `runComponentsReleaseRecord`'s hard
|
|
98
105
|
* requirement; an unattributed record defeats the ledger's purpose.
|
|
99
106
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-release.d.ts","sourceRoot":"","sources":["../../src/components/auto-release.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAkD,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxJ,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAE9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,GAAG,SAAS,CAShF;AAED,8KAA8K;AAC9K,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,oBAAoB,GACpB,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACzD;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,uIAAuI;IACvI,OAAO,EAAE,OAAO,CAAC;IACjB,2LAA2L;IAC3L,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,kHAAkH;IAClH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4JAA4J;IAC5J,KAAK,EAAE,MAAM,CAAC;IACd,yLAAyL;IACzL,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qMAAqM;IACrM,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,sMAAsM;IACtM,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oQAAoQ;IACpQ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iKAAiK;IACjK,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-release.d.ts","sourceRoot":"","sources":["../../src/components/auto-release.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAkD,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxJ,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAE9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,GAAG,SAAS,CAShF;AAED,8KAA8K;AAC9K,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,oBAAoB,GACpB,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACzD;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,uIAAuI;IACvI,OAAO,EAAE,OAAO,CAAC;IACjB,2LAA2L;IAC3L,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,kHAAkH;IAClH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4JAA4J;IAC5J,KAAK,EAAE,MAAM,CAAC;IACd,yLAAyL;IACzL,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qMAAqM;IACrM,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,sMAAsM;IACtM,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oQAAoQ;IACpQ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iKAAiK;IACjK,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,0JAA0J;AAC1J,MAAM,WAAW,kBAAkB;IACjC,iIAAiI;IACjI,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sHAAsH;IACtH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qIAAqI;IACrI,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,kBAAkB,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsD5B"}
|
|
@@ -82,7 +82,8 @@ function resolveActor(override) {
|
|
|
82
82
|
* - `options.disabled` — the opt-out flag/config was set.
|
|
83
83
|
* - `run.success` false — defensive; callers should not reach here on failure.
|
|
84
84
|
* - no digest found in the run's records — a component with no publish step
|
|
85
|
-
* has nothing to bind a release record to
|
|
85
|
+
* has nothing to bind a release record to, unless the run was made under a
|
|
86
|
+
* release that records its templates (`templatesDigest`, #4222).
|
|
86
87
|
* - no resolvable actor — mirrors `runComponentsReleaseRecord`'s hard
|
|
87
88
|
* requirement; an unattributed record defeats the ledger's purpose.
|
|
88
89
|
*
|
|
@@ -102,7 +103,7 @@ export async function maybeRecordAutoRelease(run, options = {}) {
|
|
|
102
103
|
if (!run.success) {
|
|
103
104
|
return { recorded: false, reason: "run-not-successful" };
|
|
104
105
|
}
|
|
105
|
-
const digest = run.digest ?? extractRunDigest(run.records ?? []);
|
|
106
|
+
const digest = run.digest ?? extractRunDigest(run.records ?? []) ?? (run.releaseDigest ? run.templatesDigest : undefined);
|
|
106
107
|
if (!digest) {
|
|
107
108
|
return { recorded: false, reason: "no-digest", detail: `component "${run.component}" published no digest-bearing artifact` };
|
|
108
109
|
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply on merge per green commit (#4168 step 9): whether the change sets
|
|
3
|
+
* approved for the merges since the last applied green commit cover the plan
|
|
4
|
+
* at the green one.
|
|
5
|
+
*
|
|
6
|
+
* Each member of the fresh plan is checked against the newest approved change
|
|
7
|
+
* set that planned it, with the same rule `pr-apply` uses for one pull request
|
|
8
|
+
* (`planCoveredBy`, ./pr-run.ts). A member with nothing to do is covered by
|
|
9
|
+
* nothing. Any member left uncovered sends the whole plan to a gate of its own,
|
|
10
|
+
* bound to the combined digest.
|
|
11
|
+
*/
|
|
12
|
+
import type { ChangeSetDocument } from "../change-set.js";
|
|
13
|
+
import type { GateLedgerPort } from "../op/gate.js";
|
|
14
|
+
/** One merge's approved change set, with who approved it. */
|
|
15
|
+
export interface ApprovedMerge {
|
|
16
|
+
commit: string;
|
|
17
|
+
pr?: number;
|
|
18
|
+
doc: ChangeSetDocument;
|
|
19
|
+
approvedBy: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
export interface GreenCover {
|
|
22
|
+
covered: boolean;
|
|
23
|
+
/** Why each uncovered member is not covered, one line each. */
|
|
24
|
+
uncovered: string[];
|
|
25
|
+
/** The approvers of the change sets that covered a member, sorted. */
|
|
26
|
+
approvedBy: string[];
|
|
27
|
+
/** The merges whose approval covered a member, in trunk order. */
|
|
28
|
+
coveredBy: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Check `fresh` against `merges`, given oldest first, as the first-parent
|
|
32
|
+
* history between the last applied green commit and this one runs.
|
|
33
|
+
*/
|
|
34
|
+
export declare function coverByMerges(fresh: ChangeSetDocument, merges: readonly ApprovedMerge[]): GreenCover;
|
|
35
|
+
/** The green commit `pr-apply --green` applies, what it is measured from, and the approved merges between. */
|
|
36
|
+
export interface GreenTarget {
|
|
37
|
+
commit: string;
|
|
38
|
+
/** The last green commit applied to the environment, else `--base`, else the green commit before this one, else its parent. */
|
|
39
|
+
base: string;
|
|
40
|
+
/** Where `base` came from. */
|
|
41
|
+
baseFrom: "applied" | "flag" | "previous-green" | "parent";
|
|
42
|
+
/** The first-parent commits after `base` up to `commit`, oldest first. */
|
|
43
|
+
merges: string[];
|
|
44
|
+
/** Their pull requests, from the merge records, in trunk order. */
|
|
45
|
+
prs: number[];
|
|
46
|
+
/** The merges whose approved change set still stands, oldest first. */
|
|
47
|
+
approved: ApprovedMerge[];
|
|
48
|
+
}
|
|
49
|
+
export type GreenTargetResult = {
|
|
50
|
+
status: "target";
|
|
51
|
+
target: GreenTarget;
|
|
52
|
+
}
|
|
53
|
+
/** The checkout is the green commit last applied. */
|
|
54
|
+
| {
|
|
55
|
+
status: "applied";
|
|
56
|
+
commit: string;
|
|
57
|
+
} | {
|
|
58
|
+
status: "error";
|
|
59
|
+
message: string;
|
|
60
|
+
hint?: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Resolve the green target for `env` at `cwd`'s HEAD (#4168 step 9). HEAD must
|
|
64
|
+
* carry a counting `ci/green` tag and no `ci/revoked` one, judged by the
|
|
65
|
+
* declaration's `ci.green` as `release cut` judges them. Reads the local tags
|
|
66
|
+
* and `chant/lifecycle` and never fetches.
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolveGreenTarget(req: {
|
|
69
|
+
cwd: string;
|
|
70
|
+
env: string;
|
|
71
|
+
base?: string;
|
|
72
|
+
gate: string;
|
|
73
|
+
ledger?: GateLedgerPort;
|
|
74
|
+
}): Promise<GreenTargetResult>;
|
|
75
|
+
/** The op a green commit's own gate is recorded under: `green-<sha>`, or `green-<sha>-<member>` for a workspace member. */
|
|
76
|
+
export declare function greenOp(commit: string, member?: string): string;
|
|
77
|
+
//# sourceMappingURL=green-cover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"green-cover.d.ts","sourceRoot":"","sources":["../../src/components/green-cover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,iBAAiB,CAAC;IACvB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sEAAsE;IACtE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAUD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,UAAU,CAyBpG;AAED,8GAA8G;AAC9G,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,+HAA+H;IAC/H,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAC3D,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mEAAmE;IACnE,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,uEAAuE;IACvE,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE;AAC3C,qDAAqD;GACnD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAUxD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuE5J;AAED,2HAA2H;AAC3H,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|