@mutmutco/cli 3.0.0 → 3.0.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 +10 -4
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -9684,6 +9684,12 @@ async function foldReleaseVersion(deps, model, tag, foldPaths) {
|
|
|
9684
9684
|
for (const path2 of foldPaths) {
|
|
9685
9685
|
await deps.run("git", ["add", "--", path2]).catch(() => void 0);
|
|
9686
9686
|
}
|
|
9687
|
+
const strayVersionEdits = (await deps.run("git", ["diff", "--name-only"])).split("\n").map((s) => s.trim()).filter(Boolean);
|
|
9688
|
+
if (strayVersionEdits.length > 0) {
|
|
9689
|
+
throw new Error(
|
|
9690
|
+
`version fold left tracked changes outside the fold set uncommitted: ${strayVersionEdits.join(", ")}. The repo's \`version\` script modified paths the train does not stage (fold set: ${foldPaths.join(", ") || "(none)"}). Add them to that script's git-add list (or the fold set) so the release commit is complete \u2014 shipping now would tag a main whose version-lockstep check is red.`
|
|
9691
|
+
);
|
|
9692
|
+
}
|
|
9687
9693
|
const staged = (await deps.run("git", ["diff", "--cached", "--name-only"])).trim();
|
|
9688
9694
|
if (!staged) return `version fold: manifests already at ${version} \u2014 nothing committed`;
|
|
9689
9695
|
await deps.run("git", ["commit", "-m", `chore(release): bump distribution to ${tag}`]);
|
|
@@ -10068,7 +10074,7 @@ async function rollDevelopmentForward(deps, ctx, tag) {
|
|
|
10068
10074
|
status: "pr-pending",
|
|
10069
10075
|
prNumber: existing.number,
|
|
10070
10076
|
prUrl: existing.url,
|
|
10071
|
-
note: `alignment PR already open: ${existing.url} \u2014 land it with \`
|
|
10077
|
+
note: `alignment PR already open: ${existing.url} \u2014 land it with \`mmi-cli pr merge ${existing.number} --auto --merge\``
|
|
10072
10078
|
};
|
|
10073
10079
|
}
|
|
10074
10080
|
const ahead = clean(await deps.run("git", ["rev-list", "--count", "origin/development..main"]));
|
|
@@ -10077,14 +10083,14 @@ async function rollDevelopmentForward(deps, ctx, tag) {
|
|
|
10077
10083
|
}
|
|
10078
10084
|
const body = `Carries the ${tag} release (including the version fold) from \`main\` back to \`development\`.
|
|
10079
10085
|
|
|
10080
|
-
\`development\` requires status checks, so the release train opens this alignment PR instead of a direct push of the un-checked merge commit (#1143). Land it with a **true merge**
|
|
10086
|
+
\`development\` requires status checks, so the release train opens this alignment PR instead of a direct push of the un-checked merge commit (#1143). Land it with a **true merge** \u2014 \`mmi-cli pr merge <n> --auto --merge\` (not squash) so the merge parentage survives and the misalignment guard stays satisfied. \`--auto\` waits out the checks this PR triggers, which otherwise block an immediate merge right after the release.`;
|
|
10081
10087
|
const url = clean(await deps.run("gh", ["pr", "create", "--repo", ctx.repo, "--base", "development", "--head", "main", "--title", `chore(release): align development to ${tag}`, "--body", body]));
|
|
10082
10088
|
const number = parsePrNumber(url);
|
|
10083
10089
|
return {
|
|
10084
10090
|
status: "pr-pending",
|
|
10085
10091
|
prNumber: number,
|
|
10086
10092
|
prUrl: url || void 0,
|
|
10087
|
-
note: `development requires checks (${required.join(", ")}); opened alignment PR ${url || "(url unavailable)"} \u2014 land it with \`
|
|
10093
|
+
note: `development requires checks (${required.join(", ")}); opened alignment PR ${url || "(url unavailable)"} \u2014 land it with \`mmi-cli pr merge ${number ?? "<number>"} --auto --merge\``
|
|
10088
10094
|
};
|
|
10089
10095
|
}
|
|
10090
10096
|
function resolveContextState(context, checkRuns, statuses) {
|
|
@@ -19625,7 +19631,7 @@ function renderTrainApply(commandName, r) {
|
|
|
19625
19631
|
if (r.rcRetirement) base = `${base}; rc retirement: ${r.rcRetirement.toUpperCase()} (${r.rcRetirementNote ?? ""})`;
|
|
19626
19632
|
if (r.devRollForward) {
|
|
19627
19633
|
const f = r.devRollForward;
|
|
19628
|
-
base = f.status === "pr-pending" ? `${base}; dev roll-forward: ALIGNMENT PR PENDING \u2014 land it with \`
|
|
19634
|
+
base = f.status === "pr-pending" ? `${base}; dev roll-forward: ALIGNMENT PR PENDING \u2014 land it with \`mmi-cli pr merge ${f.prNumber ?? "<number>"} --auto --merge\`${f.prUrl ? ` (${f.prUrl})` : ""}` : `${base}; dev roll-forward: ${f.note}`;
|
|
19629
19635
|
}
|
|
19630
19636
|
if (r.checkout) {
|
|
19631
19637
|
base = `${base}; checkout: ${r.checkout.note}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mutmutco/cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "MMI Future CLI — the org dev toolbox (board, registry, keyless secrets, release train, bootstrap, doctor) and the cross-IDE engine the plugin's session-start hook drives.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|