@mutmutco/cli 4.4.0 → 4.4.1
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/main.cjs +37 -11
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -15870,10 +15870,10 @@ var rollout_plan_default = {
|
|
|
15870
15870
|
note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
|
|
15871
15871
|
},
|
|
15872
15872
|
baseline: {
|
|
15873
|
-
version: "4.4.
|
|
15874
|
-
tag: "v4.4.
|
|
15875
|
-
commit: "
|
|
15876
|
-
npm: "@mutmutco/cli@4.4.
|
|
15873
|
+
version: "4.4.1",
|
|
15874
|
+
tag: "v4.4.1",
|
|
15875
|
+
commit: "a4bb2ac4bdb4",
|
|
15876
|
+
npm: "@mutmutco/cli@4.4.1"
|
|
15877
15877
|
},
|
|
15878
15878
|
exitCriterion: "fleet-n-of-n",
|
|
15879
15879
|
hubOnlyShortcut: "forbidden",
|
|
@@ -15890,14 +15890,14 @@ var rollout_plan_default = {
|
|
|
15890
15890
|
repo: "mutmutco/mmi-hub",
|
|
15891
15891
|
role: "canary",
|
|
15892
15892
|
schedule: "train",
|
|
15893
|
-
v3Target: "v4.4.
|
|
15893
|
+
v3Target: "v4.4.1"
|
|
15894
15894
|
}
|
|
15895
15895
|
],
|
|
15896
15896
|
rollbackTrigger: "Any red inside the post-contract soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a pre-v4 client admitted instead of receiving actionable HTTP 426, or npm consumer install/doctor failure on the v4-only dist.",
|
|
15897
15897
|
rollback: {
|
|
15898
15898
|
independent: true,
|
|
15899
|
-
mechanism: "npm dist-tag latest -> 4.4.
|
|
15900
|
-
v3Target: "v4.4.
|
|
15899
|
+
mechanism: "npm dist-tag latest -> 4.4.1 and redeploy the Hub Lambda from tag v4.4.1 (a4bb2ac4bdb4); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
15900
|
+
v3Target: "v4.4.1 (@mutmutco/cli@4.4.1, tag commit a4bb2ac4bdb4 \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
15901
15901
|
}
|
|
15902
15902
|
},
|
|
15903
15903
|
{
|
|
@@ -21628,6 +21628,9 @@ async function supersedeContentCausedDeployLeg(deps, cwd) {
|
|
|
21628
21628
|
function supersedeablePublishLegShape(rec) {
|
|
21629
21629
|
return rec.state === "failed" || rec.state === "pending" && rec.runId == null;
|
|
21630
21630
|
}
|
|
21631
|
+
function deferredGatewayDeployLegShape(rec) {
|
|
21632
|
+
return rec.state === "pending" && rec.runId == null && rec.workflow === "jerv-gateway";
|
|
21633
|
+
}
|
|
21631
21634
|
async function supersedeContentCausedPublishLeg(deps, cwd) {
|
|
21632
21635
|
const path2 = releaseLedgerPath(cwd);
|
|
21633
21636
|
return withFileLock(`${path2}.lock`, { label: "release ledger" }, async () => {
|
|
@@ -21653,7 +21656,9 @@ async function supersedeContentCausedPublishLeg(deps, cwd) {
|
|
|
21653
21656
|
const closed = await alignmentLegClosedLive(deps, prior);
|
|
21654
21657
|
if (closed) phases.alignment = closed;
|
|
21655
21658
|
}
|
|
21656
|
-
|
|
21659
|
+
let gatewayDeploy;
|
|
21660
|
+
const deferredGateway = isJervHubRepo(prior.repo) && deferredGatewayDeployLegShape(phases.deploy);
|
|
21661
|
+
const unresolved = ["promotion", "ordinaryCi", "githubRelease", "deploy", "alignment"].filter((phase) => !(phase === "deploy" && deferredGateway)).filter((phase) => phases[phase].state === "pending" || phases[phase].state === "failed");
|
|
21657
21662
|
if (unresolved.length > 0) {
|
|
21658
21663
|
throw new Error(
|
|
21659
21664
|
`release --supersede-publish: ${prior.tag} has unresolved legs besides publish (${unresolved.map((p) => `${p}=${phases[p].state}`).join(", ")}) \u2014 the supersession closes only the publish leg of an otherwise-complete release; resolve those first, nothing was written (#6638)`
|
|
@@ -21706,6 +21711,25 @@ async function supersedeContentCausedPublishLeg(deps, cwd) {
|
|
|
21706
21711
|
note: `closed the deleted ${prior.tag} publish failure by archiving its ledger after origin and GitHub both proved absent; start a fresh release train to carry the cause fix`
|
|
21707
21712
|
};
|
|
21708
21713
|
}
|
|
21714
|
+
if (deferredGateway) {
|
|
21715
|
+
const dispatch = await appendJervGatewayReleaseDeploy(
|
|
21716
|
+
deps,
|
|
21717
|
+
prior.repo,
|
|
21718
|
+
prior.tag,
|
|
21719
|
+
prior.tagSha,
|
|
21720
|
+
{ note: `Jerv Gateway operator-host deploy leg for ${prior.tag} run during the publish supersession`, deployStatus: "success" }
|
|
21721
|
+
);
|
|
21722
|
+
phases.deploy = {
|
|
21723
|
+
...phaseEntry(deployPhaseInput("registry-publish", dispatch, { releaseSha: prior.tagSha })),
|
|
21724
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
21725
|
+
};
|
|
21726
|
+
if (dispatch.deployStatus !== "success") {
|
|
21727
|
+
throw new Error(
|
|
21728
|
+
`release --supersede-publish: the deferred ${prior.tag} Jerv Gateway operator-host deploy leg did not verify (${dispatch.note}) \u2014 run \`scripts/jerv-gateway-release-deploy.sh --tag ${prior.tag}\` to a healthy receipt naming the released tag and commit, then retry; nothing was written (#6742)`
|
|
21729
|
+
);
|
|
21730
|
+
}
|
|
21731
|
+
gatewayDeploy = { workflow: "jerv-gateway", state: "complete", note: dispatch.note };
|
|
21732
|
+
}
|
|
21709
21733
|
const note = `superseded: content-caused publish failure on the immutable promoted ${prior.tag} \u2014 the cause fix rides the next patch train (master-approved closure, #6638)`;
|
|
21710
21734
|
atomicWriteJson(path2, {
|
|
21711
21735
|
...prior,
|
|
@@ -21720,7 +21744,8 @@ async function supersedeContentCausedPublishLeg(deps, cwd) {
|
|
|
21720
21744
|
repo: prior.repo,
|
|
21721
21745
|
tag: prior.tag,
|
|
21722
21746
|
tagSha: prior.tagSha,
|
|
21723
|
-
note: `closed the ${prior.tag} publish leg as superseded (skipped) \u2014 the ledger is phases-green; rerun the train doctor to confirm, then run the next patch train (hotfix or release) to carry the cause fix
|
|
21747
|
+
note: `closed the ${prior.tag} publish leg as superseded (skipped) \u2014 the ledger is phases-green; rerun the train doctor to confirm, then run the next patch train (hotfix or release) to carry the cause fix`,
|
|
21748
|
+
...gatewayDeploy ? { gatewayDeploy } : {}
|
|
21724
21749
|
};
|
|
21725
21750
|
});
|
|
21726
21751
|
}
|
|
@@ -44613,7 +44638,8 @@ function renderReleaseSupersedeDeploy(r) {
|
|
|
44613
44638
|
return `mmi-cli devops release --supersede-deploy --apply: ${r.repo} ${r.tag} (${r.tagSha.slice(0, 12)}) \u2014 ${r.note}`;
|
|
44614
44639
|
}
|
|
44615
44640
|
function renderReleaseSupersedePublish(r) {
|
|
44616
|
-
|
|
44641
|
+
const base = `mmi-cli devops release --supersede-publish --apply: ${r.repo} ${r.tag} (${r.tagSha.slice(0, 12)}) \u2014 ${r.note}`;
|
|
44642
|
+
return r.gatewayDeploy ? `${base}; the deferred Jerv Gateway operator-host deploy leg was run and verified during the supersession (jerv-gateway=complete): ${r.gatewayDeploy.note}` : base;
|
|
44617
44643
|
}
|
|
44618
44644
|
function renderReleasePublishRetry(r) {
|
|
44619
44645
|
return `mmi-cli devops release --retry-publish: ${r.repo} ${r.tag} (${r.tagSha.slice(0, 12)}) \u2014 ${r.note}; ${r.runUrl}`;
|
|
@@ -44845,7 +44871,7 @@ function registerTrainOperationsCommands(program3, runProjectInfoSyncCallback) {
|
|
|
44845
44871
|
{ flags: "--dev", description: "full-track repos release development -> main directly, skipping rc (refuses if rc carries content not in development; no-op on direct-track repos) (#1062)" },
|
|
44846
44872
|
{ flags: "--abort", description: "with --apply, delete only a proven unpublished failed release candidate on any registered deploy model and restore local main for a same-version recut (#3944/#5650/#5657)" },
|
|
44847
44873
|
{ flags: "--supersede-deploy", description: "with --apply, master-approved closure of a content-caused failed deploy leg on a PUBLISHED release whose immutable tag can never deploy green \u2014 the next patch train then carries the fix (#6553)" },
|
|
44848
|
-
{ flags: "--supersede-publish", description: "with --apply, master-approved closure of a content-caused failed publish leg on a fully PROMOTED release whose immutable tag can never publish green \u2014 the next patch train then carries the fix (#6638)" },
|
|
44874
|
+
{ flags: "--supersede-publish", description: "with --apply, master-approved closure of a content-caused failed publish leg on a fully PROMOTED release whose immutable tag can never publish green \u2014 a deferred Jerv-Hub operator-host Gateway deploy leg is run and verified as part of the closure \u2014 the next patch train then carries the fix (#6638/#6742)" },
|
|
44849
44875
|
{ flags: "--retry-publish <run-id>", description: "with --apply, retry one proven failed or cancelled Hub publish release run (#3949/#5797)" }
|
|
44850
44876
|
];
|
|
44851
44877
|
for (const f of RELEASE_ONLY_FLAGS) {
|
package/package.json
CHANGED