log_bench 0.2.5 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/log_bench/log/entry.rb +1 -1
- data/lib/log_bench/railtie.rb +1 -1
- data/lib/log_bench/version.rb +1 -1
- data/release_gem.sh +208 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08b5b0c6673f13c5ef68af14e5699ac8591d46605a0783e9d9ad70036feaf10e'
|
4
|
+
data.tar.gz: '06338df9398f01ba5c0235c01952c1ee4c59a3ee1b56f555d18441363ecea820'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d9c1e13307b411dc4da7839102ef7751414567f066893a1b405b9f4e16a2cd6300da26ecaa1af492ed64ba9d2ccd6134c89a37d596a4faa1b8fc5447239127c
|
7
|
+
data.tar.gz: 0307b86cc997309aba98fc81c93cb0a01ac87c78866d227b9d86716eb8a7486837547516913188af41cc85c331e2dfa85e34985112c71281c59336253392b00c
|
data/lib/log_bench/log/entry.rb
CHANGED
data/lib/log_bench/railtie.rb
CHANGED
data/lib/log_bench/version.rb
CHANGED
data/release_gem.sh
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -euo pipefail
|
3
|
+
|
4
|
+
############################################
|
5
|
+
# Config — tweak if your gem/repo differs
|
6
|
+
############################################
|
7
|
+
GEM_NAME="log_bench"
|
8
|
+
DEFAULT_BRANCH="main"
|
9
|
+
VERSION_FILE="lib/${GEM_NAME}/version.rb"
|
10
|
+
GEMSPEC_FILE="${GEM_NAME}.gemspec"
|
11
|
+
TAG_PREFIX="v"
|
12
|
+
|
13
|
+
# Bump mode: patch | minor | major (default patch)
|
14
|
+
BUMP="${BUMP:-patch}"
|
15
|
+
|
16
|
+
############################################
|
17
|
+
# Arg parsing (optional)
|
18
|
+
############################################
|
19
|
+
while [[ $# -gt 0 ]]; do
|
20
|
+
case "$1" in
|
21
|
+
--bump) BUMP="${2:-patch}"; shift 2 ;;
|
22
|
+
--bump=*) BUMP="${1#*=}"; shift 1 ;;
|
23
|
+
-h|--help)
|
24
|
+
cat <<EOF
|
25
|
+
Usage: $0 [--bump patch|minor|major]
|
26
|
+
Defaults to --bump patch (e.g., 0.2.6 -> 0.2.7).
|
27
|
+
EOF
|
28
|
+
exit 0 ;;
|
29
|
+
*) echo "Unknown arg: $1" >&2; exit 1 ;;
|
30
|
+
esac
|
31
|
+
done
|
32
|
+
|
33
|
+
case "$BUMP" in
|
34
|
+
patch|minor|major) : ;;
|
35
|
+
*) echo "Invalid --bump: $BUMP (use patch|minor|major)"; exit 1 ;;
|
36
|
+
esac
|
37
|
+
|
38
|
+
############################################
|
39
|
+
# Pretty logging
|
40
|
+
############################################
|
41
|
+
if command -v tput >/dev/null 2>&1 && [ -n "${TERM:-}" ]; then
|
42
|
+
BOLD=$(tput bold) || BOLD=""
|
43
|
+
RESET=$(tput sgr0) || RESET=""
|
44
|
+
GREEN=$(tput setaf 2) || GREEN=""
|
45
|
+
YELLOW=$(tput setaf 3) || YELLOW=""
|
46
|
+
RED=$(tput setaf 1) || RED=""
|
47
|
+
BLUE=$(tput setaf 4) || BLUE=""
|
48
|
+
else
|
49
|
+
BOLD=""; RESET=""; GREEN=""; YELLOW=""; RED=""; BLUE=""
|
50
|
+
fi
|
51
|
+
|
52
|
+
log() { printf "%b\n" "${BLUE}▸${RESET} $*"; }
|
53
|
+
success() { printf "%b\n" "${GREEN}✔${RESET} $*"; }
|
54
|
+
warn() { printf "%b\n" "${YELLOW}⚠${RESET} $*"; }
|
55
|
+
error() { printf "%b\n" "${RED}✖${RESET} $*"; }
|
56
|
+
die() { error "$*"; exit 1; }
|
57
|
+
|
58
|
+
############################################
|
59
|
+
# Helpers
|
60
|
+
############################################
|
61
|
+
require_cmd() { command -v "$1" >/dev/null 2>&1 || die "Missing required command: $1"; }
|
62
|
+
|
63
|
+
current_version() {
|
64
|
+
# Extract the first X.Y.Z from the VERSION file
|
65
|
+
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' "$VERSION_FILE" | head -n1
|
66
|
+
}
|
67
|
+
|
68
|
+
validate_semver() { [[ "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; }
|
69
|
+
|
70
|
+
bump_version() {
|
71
|
+
local mode="$1" ver="$2"
|
72
|
+
IFS='.' read -r MA MI PA <<<"$ver"
|
73
|
+
case "$mode" in
|
74
|
+
patch) echo "${MA}.${MI}.$((PA+1))" ;;
|
75
|
+
minor) echo "${MA}.$((MI+1)).0" ;;
|
76
|
+
major) echo "$((MA+1)).0.0" ;;
|
77
|
+
esac
|
78
|
+
}
|
79
|
+
|
80
|
+
update_version_file() {
|
81
|
+
local new="$1"
|
82
|
+
# Robust sed (preserves indentation, quote style, optional .freeze)
|
83
|
+
sed -E "s/^([[:space:]]*)VERSION[[:space:]]*=[[:space:]]*(['\"])[0-9]+\.[0-9]+\.[0-9]+(['\"])(\.freeze)?/\1VERSION = \2${new}\3\4/" \
|
84
|
+
"$VERSION_FILE" > "${VERSION_FILE}.tmp"
|
85
|
+
mv "${VERSION_FILE}.tmp" "$VERSION_FILE"
|
86
|
+
}
|
87
|
+
|
88
|
+
ensure_clean_worktree() {
|
89
|
+
if [ -n "$(git status --porcelain)" ]; then
|
90
|
+
warn "Your working tree has uncommitted changes:"
|
91
|
+
git status --short
|
92
|
+
read -rp "$(printf '%b' "${YELLOW}Proceed anyway? [y/N] ${RESET}")" ans
|
93
|
+
[[ "${ans:-}" =~ ^[Yy]$ ]] || die "Aborted due to dirty working tree."
|
94
|
+
fi
|
95
|
+
}
|
96
|
+
|
97
|
+
############################################
|
98
|
+
# Checks
|
99
|
+
############################################
|
100
|
+
require_cmd git
|
101
|
+
require_cmd bundle
|
102
|
+
require_cmd gem
|
103
|
+
require_cmd sed
|
104
|
+
|
105
|
+
if ! command -v gh >/dev/null 2>&1; then
|
106
|
+
warn "GitHub CLI (gh) not found. GitHub release creation will be skipped."
|
107
|
+
GH_AVAILABLE="false"
|
108
|
+
else
|
109
|
+
GH_AVAILABLE="true"
|
110
|
+
fi
|
111
|
+
|
112
|
+
[ -f "$VERSION_FILE" ] || die "Version file not found: $VERSION_FILE"
|
113
|
+
[ -f "$GEMSPEC_FILE" ] || die "Gemspec not found: $GEMSPEC_FILE"
|
114
|
+
|
115
|
+
############################################
|
116
|
+
# Start
|
117
|
+
############################################
|
118
|
+
log "${BOLD}Publishing ${GEM_NAME}${RESET}"
|
119
|
+
ensure_clean_worktree
|
120
|
+
|
121
|
+
log "Pulling latest from origin/${DEFAULT_BRANCH}…"
|
122
|
+
git checkout "$DEFAULT_BRANCH" >/dev/null 2>&1 || true
|
123
|
+
git pull origin "$DEFAULT_BRANCH"
|
124
|
+
success "Up to date."
|
125
|
+
|
126
|
+
CURR_VER="$(current_version)"
|
127
|
+
[ -n "$CURR_VER" ] || die "Could not determine current version from $VERSION_FILE"
|
128
|
+
|
129
|
+
log "Current version detected in ${VERSION_FILE}: ${BOLD}${CURR_VER}${RESET}"
|
130
|
+
PROPOSED="$(bump_version "$BUMP" "$CURR_VER")"
|
131
|
+
read -rp "$(printf '%b' "${BLUE}Proposed next ${BOLD}${BUMP}${RESET}${BLUE} version is ${BOLD}${PROPOSED}${RESET}${BLUE}. Press Enter to accept or type a different semver (X.Y.Z): ${RESET}")" NEW_VER
|
132
|
+
NEW_VER="${NEW_VER:-$PROPOSED}"
|
133
|
+
validate_semver "$NEW_VER" || die "Invalid semver: $NEW_VER"
|
134
|
+
|
135
|
+
TAG="${TAG_PREFIX}${NEW_VER}"
|
136
|
+
|
137
|
+
# Guard against existing tag
|
138
|
+
if git rev-parse -q --verify "refs/tags/${TAG}" >/dev/null; then
|
139
|
+
die "Tag ${TAG} already exists."
|
140
|
+
fi
|
141
|
+
|
142
|
+
log "Updating version file to ${BOLD}${NEW_VER}${RESET}…"
|
143
|
+
before_contents="$(cat "$VERSION_FILE")"
|
144
|
+
update_version_file "$NEW_VER"
|
145
|
+
after_contents="$(cat "$VERSION_FILE")"
|
146
|
+
if [ "$before_contents" = "$after_contents" ]; then
|
147
|
+
AFTER_VER="$(current_version || true)"
|
148
|
+
if [ "$AFTER_VER" = "$NEW_VER" ]; then
|
149
|
+
warn "Version file already at ${NEW_VER}; nothing to change."
|
150
|
+
else
|
151
|
+
die "Failed to update ${VERSION_FILE}. Ensure it has a line like:
|
152
|
+
VERSION = \"${CURR_VER}\"
|
153
|
+
(or with single quotes / optional .freeze)."
|
154
|
+
fi
|
155
|
+
else
|
156
|
+
success "Updated ${VERSION_FILE}."
|
157
|
+
fi
|
158
|
+
|
159
|
+
log "Installing gems (bundle install)…"
|
160
|
+
bundle install
|
161
|
+
success "Dependencies installed."
|
162
|
+
|
163
|
+
log "Committing version bump (including Gemfile.lock if changed)…"
|
164
|
+
FILES_TO_COMMIT=()
|
165
|
+
if ! git diff --quiet -- "$VERSION_FILE"; then
|
166
|
+
FILES_TO_COMMIT+=("$VERSION_FILE")
|
167
|
+
fi
|
168
|
+
if [ -f "Gemfile.lock" ] && ! git diff --quiet -- "Gemfile.lock"; then
|
169
|
+
FILES_TO_COMMIT+=("Gemfile.lock")
|
170
|
+
fi
|
171
|
+
|
172
|
+
if [ "${#FILES_TO_COMMIT[@]}" -gt 0 ]; then
|
173
|
+
git add "${FILES_TO_COMMIT[@]}"
|
174
|
+
git commit -m "Bump version to ${NEW_VER}"
|
175
|
+
success "Committed: ${FILES_TO_COMMIT[*]}"
|
176
|
+
else
|
177
|
+
warn "No changes to commit (version file and Gemfile.lock unchanged)."
|
178
|
+
fi
|
179
|
+
|
180
|
+
log "Creating tag ${BOLD}${TAG}${RESET}…"
|
181
|
+
git tag "${TAG}" -m "Release version ${NEW_VER}"
|
182
|
+
success "Tag created."
|
183
|
+
|
184
|
+
log "Pushing branch & tag to origin…"
|
185
|
+
git push origin "$DEFAULT_BRANCH"
|
186
|
+
git push origin "${TAG}"
|
187
|
+
success "Pushed."
|
188
|
+
|
189
|
+
if [ "$GH_AVAILABLE" = "true" ]; then
|
190
|
+
log "Creating GitHub release ${BOLD}${TAG}${RESET} with auto-generated notes…"
|
191
|
+
gh release create "${TAG}" --title "Release version ${NEW_VER}" --generate-notes || warn "Failed to create GitHub release via gh."
|
192
|
+
success "GitHub release created."
|
193
|
+
else
|
194
|
+
warn "Skipping GitHub release creation (gh not installed)."
|
195
|
+
fi
|
196
|
+
|
197
|
+
log "Building gem…"
|
198
|
+
gem build "$GEMSPEC_FILE"
|
199
|
+
GEM_FILE="${GEM_NAME}-${NEW_VER}.gem"
|
200
|
+
[ -f "$GEM_FILE" ] || die "Gem file not found after build: $GEM_FILE"
|
201
|
+
success "Built ${GEM_FILE}."
|
202
|
+
|
203
|
+
log "Pushing gem to RubyGems…"
|
204
|
+
gem push "$GEM_FILE"
|
205
|
+
success "Gem pushed to RubyGems."
|
206
|
+
|
207
|
+
success "${BOLD}${GEM_NAME} ${NEW_VER}${RESET} has been published! 🎉"
|
208
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log_bench
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamín Silva
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-08-20 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: zeitwerk
|
@@ -155,6 +155,7 @@ files:
|
|
155
155
|
- lib/log_bench/version_checker.rb
|
156
156
|
- lib/tasks/log_bench.rake
|
157
157
|
- logbench-preview.png
|
158
|
+
- release_gem.sh
|
158
159
|
homepage: https://github.com/silva96/log_bench
|
159
160
|
licenses:
|
160
161
|
- MIT
|