Skip to content

Commit 22cecba

Browse files
authored
chore: Adds release notes to minor versions release notes (#583)
1 parent cc4f87a commit 22cecba

File tree

3 files changed

+54
-21
lines changed

3 files changed

+54
-21
lines changed

tools/releaser/scripts/breaking-changes.sh

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,26 +37,48 @@ RAW_CHANGES=$(gorelease -base "$BASE_VERSION")
3737
echo "Changes detected from BASE_VERSION $BASE_VERSION:"
3838
echo "$RAW_CHANGES"
3939

40-
BREAKING_CHANGES=$(echo "$RAW_CHANGES" | awk '
41-
/## incompatible changes/ {print "### incompatible changes"; collecting=1; next}
42-
collecting && /^#/ {collecting=0}
43-
collecting && NF {print "- "$0}
44-
')
40+
# Function to extract changes by section
41+
extract_changes() {
42+
local section=$1
43+
echo "$RAW_CHANGES" | awk -v section="$section" '
44+
$0 ~ section {print "### " section; collecting=1; next}
45+
collecting && /^#/ {collecting=0}
46+
collecting && NF {print "- "$0}
47+
'
48+
}
49+
50+
# Extract different types of changes
51+
BREAKING_CHANGES=$(extract_changes "incompatible changes")
52+
NEW_FEATURES=$(extract_changes "new features")
53+
BUG_FIXES=$(extract_changes "bug fixes")
54+
DEPRECATIONS=$(extract_changes "deprecations")
55+
OTHER_CHANGES=$(extract_changes "other changes")
56+
57+
# Combine non-breaking changes for release notes
58+
NON_BREAKING_CHANGES=""
59+
[ -n "$NEW_FEATURES" ] && NON_BREAKING_CHANGES+="\n## New Features\n$NEW_FEATURES"
60+
[ -n "$BUG_FIXES" ] && NON_BREAKING_CHANGES+="\n## Bug Fixes\n$BUG_FIXES"
61+
[ -n "$DEPRECATIONS" ] && NON_BREAKING_CHANGES+="\n## Deprecations\n$DEPRECATIONS"
62+
[ -n "$OTHER_CHANGES" ] && NON_BREAKING_CHANGES+="\n## Other Changes\n$OTHER_CHANGES"
4563

4664
set -e
4765
popd || exit
4866

49-
if [ -z "$BREAKING_CHANGES" ]; then
50-
echo "No major breaking changes detected"
67+
if [ -z "$BREAKING_CHANGES" ] && [ -z "$NON_BREAKING_CHANGES" ]; then
68+
echo "No changes detected"
5169
else
52-
echo "Detected major breaking changes in the release"
70+
echo "Detected changes in the release"
5371
if [ -z "$TARGET_BREAKING_CHANGES_FILE" ]; then
54-
echo "Breaking changes for the major release"
55-
echo "$BREAKING_CHANGES"
72+
echo "Changes for the release:"
73+
[ -n "$BREAKING_CHANGES" ] && echo -e "\nBreaking Changes:\n$BREAKING_CHANGES"
74+
[ -n "$NON_BREAKING_CHANGES" ] && echo -e "\nNon-Breaking Changes:$NON_BREAKING_CHANGES"
5675
else
57-
echo "Creating the breaking changes file with following breaking changes:"
58-
echo "$BREAKING_CHANGES"
59-
echo -e "# Breaking Changes\n## SDK changes\n$BREAKING_CHANGES\n## API Changelog\n https://www.mongodb.com/docs/atlas/reference/api-resources-spec/changelog" \
60-
>"$script_path/../breaking_changes/${TARGET_BREAKING_CHANGES_FILE}.md"
76+
# Only create breaking changes file for major version bumps
77+
if [ -n "$BREAKING_CHANGES" ]; then
78+
echo "Creating the breaking changes file with following breaking changes:"
79+
echo "$BREAKING_CHANGES"
80+
echo -e "# Breaking Changes\n## SDK changes\n$BREAKING_CHANGES\n## API Changelog\n https://www.mongodb.com/docs/atlas/reference/api-resources-spec/changelog" \
81+
>"$script_path/../breaking_changes/${TARGET_BREAKING_CHANGES_FILE}.md"
82+
fi
6183
fi
6284
fi

tools/releaser/scripts/extract-version.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ SDK_VERSION=$(grep -o 'Version = "[^"]*"' "$file_path" | awk -F'"' '{print $2}')
99
SDK_RESOURCE_VERSION=$(grep -o 'Resource = "[^"]*"' "$file_path" | awk -F'"' '{print $2}')
1010

1111
# Extract the minor and major parts of the version
12+
SDK_PATCH_VERSION=$(echo "$SDK_VERSION" | awk -F'.' '{print $3}')
1213
SDK_MINOR_VERSION=$(echo "$SDK_VERSION" | awk -F'.' '{print $2}')
1314
SDK_MAJOR_VERSION=$(echo "$SDK_VERSION" | awk -F'.' '{print $1}')
1415

@@ -17,7 +18,7 @@ HYPEN_RESOURCE_VERSION=$(cat $versions_file_path | jq -r ' .[-1]')
1718
NEW_RESOURCE_VERSION=$(echo "$HYPEN_RESOURCE_VERSION" | tr -d '-')
1819

1920
echo "Extracted version from version.go file: '$SDK_VERSION'. Resource Version: '$SDK_RESOURCE_VERSION'"
20-
echo "Major: $SDK_MAJOR_VERSION' Minor: $SDK_MINOR_VERSION"
21+
echo "Major: $SDK_MAJOR_VERSION' Minor: $SDK_MINOR_VERSION Patch: $SDK_PATCH_VERSION"
2122
echo "Extracted version versions.json: '$NEW_RESOURCE_VERSION'."
2223

2324

tools/releaser/scripts/setghenv.sh

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,23 @@ export HYPEN_RESOURCE_VERSION="${HYPEN_RESOURCE_VERSION}"
2222
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
2323

2424
RELEASE_NOTES=$(envsubst < "$script_path/../templates/RELEASE_NOTES.tmpl")
25-
breaking_changes_path="$script_path/../breaking_changes/${SDK_MAJOR_VERSION}.md"
26-
if [ -f "$breaking_changes_path" ]; then
27-
echo "Found breaking changes file for $SDK_MAJOR_VERSION"
28-
BREAKING_CHANGES=$(cat "$breaking_changes_path")
29-
RELEASE_NOTES=$(echo -e "${RELEASE_NOTES}\n\n${BREAKING_CHANGES}")
30-
fi
3125

26+
# Check if this is a major version bump (when MINOR is 0)
27+
if [ "$SDK_MINOR_VERSION" = "0" ] && [ "$SDK_PATCH_VERSION" = "0" ]; then
28+
# For major versions, include breaking changes from the file
29+
breaking_changes_path="$script_path/../breaking_changes/${SDK_MAJOR_VERSION}.md"
30+
if [ -f "$breaking_changes_path" ]; then
31+
echo "Found breaking changes file for $SDK_MAJOR_VERSION"
32+
BREAKING_CHANGES=$(cat "$breaking_changes_path")
33+
RELEASE_NOTES=$(echo -e "${RELEASE_NOTES}\n\n${BREAKING_CHANGES}")
34+
fi
35+
else
36+
# For minor versions, include non-breaking changes directly
37+
if [ -n "$NON_BREAKING_CHANGES" ]; then
38+
echo "Adding non-breaking changes to release notes"
39+
RELEASE_NOTES=$(echo -e "${RELEASE_NOTES}\n\n## Changes\n${NON_BREAKING_CHANGES}")
40+
fi
41+
fi
3242

3343
## Multiline string
3444
{

0 commit comments

Comments
 (0)