The install command is pinned to a release tag, so cutting a release means bumping that pinned version everywhere and publishing a new tag.
./release.sh v0.2.0 "What changed in this release."That script:
- Validates the version (
vX.Y.Z) and checks preconditions — clean working tree, the tag doesn't already exist, andtests/test_ccline.shpasses. - Bumps the pinned version in
install.sh(theREFdefault) andREADME.md(the one-liner URL). - Commits and pushes
main. - Creates and pushes the git tag.
- Creates the GitHub release, including the pinned install one-liner.
Release notes are optional; pass them as the second argument (otherwise a generic note is used). Edit them afterward on the release page if you like.
If you'd rather do it by hand (current version is $CUR, new is $NEW):
# 1. bump both references
perl -i -pe 's/\Q$CUR\E/$NEW/g' install.sh README.md
# 2. commit + push
git add -A && git commit -m "Release $NEW" && git push origin main
# 3. tag + push
git tag -a "$NEW" -m "ccline $NEW" && git push origin "$NEW"
# 4. GitHub release
gh release create "$NEW" --title "ccline $NEW" --notes "…"- Versioning: semantic versioning (
vMAJOR.MINOR.PATCH). Bump PATCH for fixes, MINOR for new features, MAJOR for breaking changes to the install path or behavior. - Why pin: the published
curl … | bashURL points at a tag, so existing install instructions keep producing the same result even asmainmoves on. Users who want the latest dev build can override withCCLINE_REF=main. - Requirements to release:
ghauthenticated, push access tojianshuo/ccline,perl(ships with macOS).