@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.
Files changed (2) hide show
  1. package/dist/main.cjs +10 -4
  2. 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 \`gh pr merge ${existing.number} --merge\``
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** (\`gh pr merge --merge\`, not squash) so the merge parentage survives and the misalignment guard stays satisfied.`;
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 \`gh pr merge ${number ?? "<number>"} --merge\``
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 \`gh pr merge ${f.prNumber ?? "<number>"} --merge\`${f.prUrl ? ` (${f.prUrl})` : ""}` : `${base}; dev roll-forward: ${f.note}`;
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.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",