|
| 1 | +--- |
| 2 | +name: prep-release |
| 3 | +description: Prepare a new Mud release — bump version and draft release notes. |
| 4 | +disable-model-invocation: true |
| 5 | +argument-hint: <version> |
| 6 | +--- |
| 7 | + |
| 8 | +Prepare a release for Mud |
| 9 | +=============================================================================== |
| 10 | + |
| 11 | +The user has invoked `/prep-release $ARGUMENTS`. |
| 12 | + |
| 13 | +The argument is the new version number (e.g. `1.3.0`). If no argument was |
| 14 | +provided, ask for the version number before proceeding. |
| 15 | + |
| 16 | + |
| 17 | +## Steps |
| 18 | + |
| 19 | +### 1. Validate |
| 20 | + |
| 21 | +- Confirm the argument looks like a version number (X.Y.Z). |
| 22 | +- Read `Mud.xcodeproj/project.pbxproj` and find the current |
| 23 | + `MARKETING_VERSION`. Confirm the new version is higher. |
| 24 | +- Check `Doc/RELEASES.md` to make sure a section for this version doesn't |
| 25 | + already exist. |
| 26 | + |
| 27 | +If any check fails, stop and explain. |
| 28 | + |
| 29 | + |
| 30 | +### 2. Bump the version |
| 31 | + |
| 32 | +Update **every** `MARKETING_VERSION = ...;` line in |
| 33 | +`Mud.xcodeproj/project.pbxproj` to the new version. There are multiple |
| 34 | +occurrences (one per build configuration) — update them all. |
| 35 | + |
| 36 | + |
| 37 | +### 3. Draft release notes |
| 38 | + |
| 39 | +Gather context for writing release notes: |
| 40 | + |
| 41 | +- Run `git log --oneline` from the last version tag to HEAD. |
| 42 | +- Read any recent plan files in `Doc/Plans/` that are marked Underway or |
| 43 | + recently completed. |
| 44 | + |
| 45 | +Then draft a new section for `Doc/RELEASES.md`. Follow the existing style: |
| 46 | + |
| 47 | +- Insert the new section at the top, after the `===` heading rule. |
| 48 | +- Heading format: `## vX.Y.Z` |
| 49 | +- Bulleted list of user-facing changes. |
| 50 | +- Concise, compelling prose — these are user-facing notes, not a changelog. |
| 51 | + Lead each bullet with the feature or fix, not the file or module. |
| 52 | +- Don't mention internal refactors, code cleanup, or implementation details |
| 53 | + unless they have user-visible impact. |
| 54 | +- Omit changes that are only relevant to developers (CI, build scripts, etc). |
| 55 | +- Wrap lines at 78 characters. |
| 56 | + |
| 57 | +Present the draft to the user for review. Incorporate any feedback. |
| 58 | + |
| 59 | + |
| 60 | +### 4. Hand off |
| 61 | + |
| 62 | +Tell the user what remains for them to do: |
| 63 | + |
| 64 | +1. Review and edit `Doc/RELEASES.md` if needed. |
| 65 | +2. Run `.github/scripts/build-release-notes` to render the HTML. |
| 66 | +3. Commit with message: `VERSION: X.Y.Z.` |
| 67 | +4. Merge to `main`, tag as `vX.Y.Z`, and push to trigger the release workflow. |
0 commit comments