#!/usr/bin/env bash # Parse arguments bump_type=${1:-minor} if [[ "$bump_type" != "minor" && "$bump_type" != "patch" ]]; then echo "Usage: $0 [minor|patch]" echo " minor (default): bumps the minor version (e.g., 0.1.0 -> 0.2.0)" echo " patch: bumps the patch version (e.g., 0.1.0 -> 0.1.1)" exit 1 fi # Ensure we're in a clean state on an up-to-date `main` branch. if [[ -n $(git status --short --untracked-files=no) ]]; then echo "can't bump versions with uncommitted changes" exit 1 fi if [[ $(git rev-parse --abbrev-ref HEAD) != "main" ]]; then echo "this command must be run on main" exit 1 fi git pull -q --ff-only origin main # Parse the current version version=$(script/get-crate-version gpui) major=$(echo $version | cut -d. -f1) minor=$(echo $version | cut -d. -f2) patch=$(echo $version | cut -d. -f3) if [[ "$bump_type" == "minor" ]]; then next_minor=$(expr $minor + 1) next_version="${major}.${next_minor}.0" else next_patch=$(expr $patch + 1) next_version="${major}.${minor}.${next_patch}" fi branch_name="bump-gpui-to-v${next_version}" git checkout -b ${branch_name} script/lib/bump-version.sh gpui gpui-v "" $bump_type true git checkout -q main