brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
create-github-releaseCreate a GitHub release with proper tagging, release notes, and optional build artifacts. Covers semantic versioning, changelog generation, and GitHub CLI usage. Use when marking a stable version of software for distribution, publishing a new library or application version, creating release notes for stakeholders, or distributing build artifacts (binaries, …
Independent GitHub snapshot · Automated classification · Original documentation governs
Tag + notes + artifacts → GitHub release.
Semver (MAJOR.MINOR.PATCH):
| Change | Example | When |
|---|---|---|
| MAJOR | 1.0.0 -> 2.0.0 | Breaking |
| MINOR | 1.0.0 -> 1.1.0 | New feat, backward compat |
| PATCH | 1.0.0 -> 1.0.1 | Bug fix only |
Got: Ver matches change scope.
If err: Doubt breaking → review public API diff. Any removal / signature change of exported fn → breaking → MAJOR.
DESCRIPTION (R pkgs)package.json (Node)Cargo.toml (Rust)pyproject.toml (Python)Got: Ver updated + committed.
If err: Already updated (usethis::use_version()) → verify match.
Changelog by cat:
## What's Changed
### New Features
- Added user authentication (#42)
- Support for custom themes (#45)
### Bug Fixes
- Fixed crash on empty input (#38)
- Corrected date parsing in UTC (#41)
### Improvements
- Improved error messages
- Updated dependencies
### Breaking Changes
- `old_function()` renamed to `new_function()` (#50)
**Full Changelog**: https://github.com/user/repo/compare/v1.0.0...v1.1.0
Got: Notes by cat (feat/fix/breaking) + issue/PR refs.
If err: Hard to categorize → git log v1.0.0..HEAD --oneline → reconstruct.
git tag -a v1.1.0 -m "Release v1.1.0"
git push origin v1.1.0
Got: Tag local + remote. git tag -l shows.
If err: Tag exists → git tag -d v1.1.0 && git push origin :refs/tags/v1.1.0 + recreate. Push rejected → check write access.
gh CLI (rec):
gh release create v1.1.0 \
--title "v1.1.0" \
--notes-file CHANGELOG.md
Artifacts:
gh release create v1.1.0 \
--title "v1.1.0" \
--notes "Release notes here" \
build/app-v1.1.0.tar.gz \
build/app-v1.1.0.zip
Pre-release:
gh release create v2.0.0-beta.1 \
--title "v2.0.0 Beta 1" \
--prerelease \
--notes "Beta release for testing"
Got: Release on GitHub w/ tag + notes + artifacts.
If err: gh not auth → gh auth login. Tag not on remote → git push origin v1.1.0.
gh release create v1.1.0 \
--title "v1.1.0" \
--generate-notes
Cats in .github/release.yml:
changelog:
categories:
- title: New Features
labels:
- enhancement
- title: Bug Fixes
labels:
- bug
- title: Documentation
labels:
- documentation
- title: Other Changes
labels:
- "*"
Got: Notes from merged PR titles by label. .github/release.yml → cats.
If err: Empty notes → PRs merged (not closed) + labels. Manual fallback.
# List releases
gh release list
# View specific release
gh release view v1.1.0
Got: List shows. View shows correct title/tag/notes/assets.
If err: Missing → check Actions workflows. Verify tag: git tag -l.
git log pre-tag. Tag after ver-bump commit.git push doesn't. Use git push --tags / git push origin v1.1.0.v1.0.0 vs 1.0.0 → pick + stick.commit-changes — stage + commitmanage-git-branches — branch mgmt for release preprelease-package-version — R-specificconfigure-git-repository — git setupsetup-github-actions-ci — auto releases via CI