Skip to content

Commit 4dc6617

Browse files
committed
fix(scripts): catch style/perf/refactor commits in changelog
The changelog script missed commits with style, perf, and refactor prefixes—they fell into "Other" without scope parsing. Group them under a new "Improvements" section. Also fix unbound variable crash when arrays are empty under set -u. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 1f2f730 commit 4dc6617

1 file changed

Lines changed: 17 additions & 15 deletions

File tree

scripts/changelog.sh

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,22 @@ parse_cc() {
4040
CC_DESC="$rest"
4141
}
4242

43-
declare -a FEATS FIXES REFACTORS CHORES BUILDS OTHERS
43+
FEATS=() FIXES=() IMPROVEMENTS=() CHORES=() BUILDS=() OTHERS=()
4444

4545
while IFS= read -r line; do
4646
hash="${line%% *}"
4747
short=$(git rev-parse --short "$hash")
4848
msg="${line#* }"
4949

5050
case "$msg" in
51-
feat*:*) parse_cc "$msg"; bucket=FEATS;;
52-
fix*:*) parse_cc "$msg"; bucket=FIXES;;
53-
refactor*:*) parse_cc "$msg"; bucket=REFACTORS;;
54-
chore*:*) parse_cc "$msg"; bucket=CHORES;;
55-
build*:*) parse_cc "$msg"; bucket=BUILDS;;
56-
*) CC_SCOPE=""; CC_DESC="$msg"; bucket=OTHERS;;
51+
feat*:*) parse_cc "$msg"; bucket=FEATS;;
52+
fix*:*) parse_cc "$msg"; bucket=FIXES;;
53+
refactor*:*) parse_cc "$msg"; bucket=IMPROVEMENTS;;
54+
style*:*) parse_cc "$msg"; bucket=IMPROVEMENTS;;
55+
perf*:*) parse_cc "$msg"; bucket=IMPROVEMENTS;;
56+
chore*:*) parse_cc "$msg"; bucket=CHORES;;
57+
build*:*) parse_cc "$msg"; bucket=BUILDS;;
58+
*) CC_SCOPE=""; CC_DESC="$msg"; bucket=OTHERS;;
5759
esac
5860

5961
if [ -n "$CC_SCOPE" ]; then
@@ -63,12 +65,12 @@ while IFS= read -r line; do
6365
fi
6466

6567
case "$bucket" in
66-
FEATS) FEATS+=("$entry");;
67-
FIXES) FIXES+=("$entry");;
68-
REFACTORS) REFACTORS+=("$entry");;
69-
CHORES) CHORES+=("$entry");;
70-
BUILDS) BUILDS+=("$entry");;
71-
OTHERS) OTHERS+=("$entry");;
68+
FEATS) FEATS+=("$entry");;
69+
FIXES) FIXES+=("$entry");;
70+
IMPROVEMENTS) IMPROVEMENTS+=("$entry");;
71+
CHORES) CHORES+=("$entry");;
72+
BUILDS) BUILDS+=("$entry");;
73+
OTHERS) OTHERS+=("$entry");;
7274
esac
7375
done <<< "$COMMITS"
7476

@@ -80,7 +82,7 @@ echo ""
8082
section() {
8183
local title="$1"; shift
8284
local -n items="$1"
83-
if [ ${#items[@]} -gt 0 ]; then
85+
if [ "${#items[@]}" -gt 0 ]; then
8486
echo "### $title"
8587
echo ""
8688
printf '%s\n' "${items[@]}"
@@ -90,7 +92,7 @@ section() {
9092

9193
section "Features" FEATS
9294
section "Bug Fixes" FIXES
93-
section "Refactors" REFACTORS
95+
section "Improvements" IMPROVEMENTS
9496
section "Chores" CHORES
9597
section "Build" BUILDS
9698
section "Other" OTHERS

0 commit comments

Comments
 (0)