aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/release/release.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/release/release.sh')
-rwxr-xr-xscripts/release/release.sh29
1 files changed, 22 insertions, 7 deletions
diff --git a/scripts/release/release.sh b/scripts/release/release.sh
index fc2942a78d..7e92c76cab 100755
--- a/scripts/release/release.sh
+++ b/scripts/release/release.sh
@@ -222,26 +222,41 @@ function setup_git_notes() {
# Edit the release notes
local tmpfile=$(mktemp ${TMPDIR:-/tmp}/relnotes-XXXXXXXX)
- local tmpfile2=$(mktemp ${TMPDIR:-/tmp}/relnotes-XXXXXXXX)
- trap 'rm -f ${tmpfile} ${tmpfile2}' EXIT
+ trap "rm -f ${tmpfile}" EXIT
+
+ echo "Creating release notes"
# Save the changelog so we compute the relnotes against HEAD.
- git show master:CHANGELOG.md >${tmpfile2} 2>/dev/null || echo >${tmpfile2}
+ git show master:CHANGELOG.md >${tmpfile} 2>/dev/null || echo >${tmpfile}
+ # Compute the new release notes
+ local relnotes="$(create_release_notes "${tmpfile}" "${baseline}" ${cherrypicks})"
- echo "Creating release notes"
+ # Try to merge the release notes if there was a previous release
+ if [ -n "${last_release}" ]; then
+ # Compute the previous release notes
+ local last_baseline="$(get_release_baseline "${last_release}")"
+ local last_cherrypicks="$(get_cherrypicks "${last_release}" \
+ "${last_baseline}")"
+ git checkout -q "${last_release}"
+ local last_relnotes="$(create_release_notes "${tmpfile}")"
+ git checkout -q "${branch_name}"
+ local last_savedrelnotes="$(get_release_notes "${last_release}")"
+ relnotes="$(merge_release_notes "${branch_name}" "${relnotes}" \
+ "${last_relnotes}" "${last_savedrelnotes}")"
+ fi
echo "${RELEASE_NOTE_MESSAGE}" > ${tmpfile}
echo "# $(get_release_title "${release_name}rc${rc}")" >> ${tmpfile}
echo >> ${tmpfile}
- create_release_notes "${tmpfile2}" "${baseline}" ${cherrypicks} >> ${tmpfile}
+ echo "${relnotes}" >>"${tmpfile}"
release_note_editor ${tmpfile} "${branch_name}" || return 1
- local relnotes="$(cat ${tmpfile})"
+ relnotes="$(cat ${tmpfile})"
# Add the git notes
set_release_name "${release_name}" "${rc}"
git notes --ref=release-notes add -f -m "${relnotes}"
# Clean-up
- rm -f ${tmpfile} ${tmpfile2}
+ rm -f ${tmpfile}
trap - EXIT
}