-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathversion-bump.sh
More file actions
executable file
·87 lines (67 loc) · 2.3 KB
/
version-bump.sh
File metadata and controls
executable file
·87 lines (67 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash
# Version bump script for GetStream Ruby SDK
# Usage: ./scripts/version-bump.sh [major|minor|patch] [release_notes]
set -e
VERSION_TYPE="${1:-patch}"
RELEASE_NOTES="${2:-}"
if [[ ! "$VERSION_TYPE" =~ ^(major|minor|patch)$ ]]; then
echo "Error: Version type must be major, minor, or patch"
echo "Usage: $0 [major|minor|patch] [release_notes]"
exit 1
fi
# Get current version
CURRENT_VERSION=$(ruby -r "./lib/getstream_ruby/version.rb" -e "puts GetStreamRuby::VERSION")
echo "Current version: $CURRENT_VERSION"
# Parse version components
IFS='.' read -r major minor patch <<< "$CURRENT_VERSION"
# Calculate new version
case "$VERSION_TYPE" in
"major")
NEW_VERSION="$((major + 1)).0.0"
;;
"minor")
NEW_VERSION="$major.$((minor + 1)).0"
;;
"patch")
NEW_VERSION="$major.$minor.$((patch + 1))"
;;
esac
echo "New version: $NEW_VERSION"
# Update version.rb (gemspec loads version dynamically from here)
if [[ "$OSTYPE" == "darwin"* ]]; then
sed -i '' "s/VERSION = '[^']*'/VERSION = '$NEW_VERSION'/" "lib/getstream_ruby/version.rb"
else
sed -i "s/VERSION = '[^']*'/VERSION = '$NEW_VERSION'/" "lib/getstream_ruby/version.rb"
fi
echo "Updated version files to $NEW_VERSION"
# Update CHANGELOG
CHANGELOG_FILE="CHANGELOG.md"
# Create CHANGELOG.md if it doesn't exist
if [ ! -f "$CHANGELOG_FILE" ]; then
cat > "$CHANGELOG_FILE" << 'EOF'
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
EOF
fi
# Add new version entry
TEMP_FILE=$(mktemp)
echo "## [$NEW_VERSION] - $(date +%Y-%m-%d)" >> "$TEMP_FILE"
echo "" >> "$TEMP_FILE"
if [ -n "$RELEASE_NOTES" ]; then
echo "$RELEASE_NOTES" >> "$TEMP_FILE"
else
echo "### $VERSION_TYPE^2 changes" >> "$TEMP_FILE"
echo "- " >> "$TEMP_FILE"
fi
echo "" >> "$TEMP_FILE"
cat "$CHANGELOG_FILE" >> "$TEMP_FILE"
mv "$TEMP_FILE" "$CHANGELOG_FILE"
echo "Updated CHANGELOG.md"
echo "✅ Version bump complete: $CURRENT_VERSION → $NEW_VERSION"
echo "Files updated:"
echo " - lib/getstream_ruby/version.rb"
echo " - CHANGELOG.md"
echo ""
echo "Note: getstream-ruby.gemspec loads version dynamically from version.rb"