Publish a release to CurseForge and GitHub. Use when the user asks to publish, release, or tag a version.
NEVER run this without explicit user instruction to publish.
$ARGUMENTS, or ask the user. Suggest based on ## Unreleased content in CHANGELOG.md: all bug fixes → patch bump, any new features → minor bump.1.2.0 = Release, 1.2.0-beta1 = Beta, 1.2.0-alpha1 = Alpha.CHANGELOG.md and confirm there are entries under ## Unreleased. If empty, stop and ask.git status — working tree must be clean. If not, stop and ask.git log --oneline -5 — confirm we're on main (or a hotfix/* branch if doing a hotfix release).1.2.0)CHANGELOG.md:
## Unreleased → ## X.Y.Z - YYYY-MM-DD (today's date).## Unreleased section with no entries above it.## X.Y.Z - date heading and its bullet points) into RELEASE_NOTES.md, replacing its entire contents."Release X.Y.Z"git tag X.Y.Z && git push --tags1.2.0-beta1)Pre-releases do NOT rename the Unreleased section — 1.2.0 isn't final yet.
CHANGELOG.md headings. The ## Unreleased section stays as-is.## Unreleased content (just the bullet points, not the heading) into RELEASE_NOTES.md, replacing its entire contents. Add a heading like ## 1.2.0-beta1 at the top."Pre-release X.Y.Z-betaN"git tag X.Y.Z-betaN && git push --tagsgh run list --limit 1