| name | create-release |
| description | Prepare, dry-run, and publish BlockInputKit Swift package releases. Use when the user asks to release BlockInputKit, run a release dry run, create a patch/minor/major release, push a version tag, or prepare GitHub release notes. |
Create Release
Overview
Release BlockInputKit as a Swift Package by validating main, creating a semantic version tag, and publishing GitHub release notes. The package is SPM-first; do not use app signing, notarization, app ZIP, project.yml, or XcodeGen release flow here.
Workflow
- Start from the repo root and read
AGENTS.md.
- Confirm
git status --short --branch is clean. Stop if unrelated changes exist.
- Confirm the local branch is
main and up to date with origin/main.
- Ask which release bump to make when the user did not specify one:
patch, minor, or major.
- Determine the latest
vX.Y.Z tag from Git.
- Compute the next semantic version:
- patch:
X.Y.Z -> X.Y.(Z + 1)
- minor:
X.Y.Z -> X.(Y + 1).0
- major:
X.Y.Z -> (X + 1).0.0
- Run the project validation commands.
- Confirm the target tag does not already exist locally or remotely.
- Create an annotated tag for the release.
- Push
main and the new tag.
- Create or update the GitHub Release for the tag, including concise release notes.
Commands
Use the repo validation scripts:
git fetch origin main --tags
git status --short --branch
./scripts/build.sh
./scripts/test.sh
./scripts/lint.sh
git diff --check
Inspect and create tags:
git tag --list 'v*' --sort=-version:refname
git ls-remote --tags origin 'vX.Y.Z'
git tag -a vX.Y.Z -m "Release BlockInputKit vX.Y.Z"
git push origin main
git push origin vX.Y.Z
Create release notes with GitHub CLI when available:
gh release create vX.Y.Z --title "BlockInputKit vX.Y.Z" --generate-notes
gh release view vX.Y.Z --web
Rules
- Keep releases tag-driven.
- Do not create app archives, DMGs, PKGs, notarized ZIPs, or Developer ID artifacts for this package release flow.
- Do not print, commit, or rewrite secrets.
- Stop if the target release tag already exists.
- Stop if validation fails.
- Commit release-preparation file changes, if any, with the appropriate trailer from the root
AGENTS.md.