Skip to content

Commit 9bb0195

Browse files
committed
Add script for bumping CHANGELOGS post-release
1 parent 3a986b4 commit 9bb0195

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

Diff for: scripts/bump-changelogs.sh

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env bash
2+
3+
CHAP=./cardano-haskell-packages
4+
# Download a shallow copy of CHaP
5+
git clone --depth 1 [email protected]:IntersectMBO/cardano-haskell-packages.git $CHAP
6+
7+
cd $CHAP || exit
8+
# Save all the available packages from CHaP
9+
CHAP_PACKAGES=$(./scripts/list-packages.sh)
10+
cd - || exit
11+
echo "The following packages are available in CHaP:"
12+
echo "$CHAP_PACKAGES"
13+
14+
# Save the paths to every `cardano-ledger` cabal file
15+
CABAL_FILES=$(find . -wholename '*/eras/*.cabal' -o -wholename '*/libs/*.cabal')
16+
17+
for i in $CABAL_FILES;
18+
do
19+
# Extract the name of the package (without the path and the extension)
20+
PACKAGE=$(basename "$i" .cabal)
21+
# Construct the path to the package's `CHANGELOG`
22+
CHANGELOG=${i/$PACKAGE.cabal/CHANGELOG.md}
23+
24+
# Check if package has a `CHANGELOG`
25+
if [[ -f "$CHANGELOG" ]]; then
26+
# Get the most recent version number in the `CHANGELOG`
27+
VERSION=$(grep -m 1 -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" "$CHANGELOG")
28+
29+
# Check if the package had a release with
30+
# the most recent `CHANGELOG` version number
31+
printf "Looking for %s with version %s in CHaP\n" "$PACKAGE" "$VERSION"
32+
RESULT=$(echo "$CHAP_PACKAGES" | grep -o "$PACKAGE $VERSION")
33+
if [[ -n "$RESULT" ]]; then
34+
# A release was found and thus the `CHANGELOG` has to be bumped
35+
# with the incremented patch version
36+
NEXT_VERSION=$(echo "$VERSION" | awk -F. -v OFS=. '{$NF += 1 ; print}')
37+
printf "Bumping %s to %s\n" "$CHANGELOG" "$NEXT_VERSION"
38+
sed -i "s/## $VERSION/## $NEXT_VERSION\n\n*\n\n## $VERSION/" "$CHANGELOG"
39+
fi
40+
fi
41+
done
42+
43+
rm -rf $CHAP

0 commit comments

Comments
 (0)