diff options
author | Damien Martin-Guillerez <dmarting@google.com> | 2017-01-10 15:25:29 +0000 |
---|---|---|
committer | Marcel Hlopko <hlopko@google.com> | 2017-01-10 15:53:27 +0000 |
commit | 9f915545df4ca6dae044b9e02186b3616ddf5418 (patch) | |
tree | 325887f971430a6e0472fe8e3417f006a7b7199e /scripts/release | |
parent | 4b5cfe499cab2f956a4f53ce5e244ac8b80d5ec7 (diff) |
Fix formatting of the release CHANGELOG file
- Add backquotes around the changelog
- Add empty line at the end of the changelog
- Enforce the use of the master changelog prior to release
Fixes #2281.
--
Change-Id: I449f5209a6b05e65411a64ce82ea1d89d60ee4d3
Reviewed-on: https://cr.bazel.build/8044
PiperOrigin-RevId: 144080940
MOS_MIGRATED_REVID=144080940
Diffstat (limited to 'scripts/release')
-rwxr-xr-x | scripts/release/common.sh | 21 | ||||
-rwxr-xr-x | scripts/release/release.sh | 10 | ||||
-rwxr-xr-x | scripts/release/release_test.sh | 32 |
3 files changed, 52 insertions, 11 deletions
diff --git a/scripts/release/common.sh b/scripts/release/common.sh index 5f83af7d1c..7cea006a9e 100755 --- a/scripts/release/common.sh +++ b/scripts/release/common.sh @@ -196,19 +196,30 @@ function get_release_title() { # Generate the release message to be added to the changelog # from the release notes for release $1 +# Args: +# $1: release name +# $2: release ref (default HEAD) +# $3: delimiter around the revision information (default none) function generate_release_message() { local release_name="$1" local branch="${2:-HEAD}" + local delimiter="${3-}" local baseline="$(get_release_baseline "${branch}")" local cherrypicks="$(get_cherrypicks "${branch}" "${baseline}")" -cat <<EOF -$(get_release_title "$release_name") + get_release_title "$release_name" + echo -$(create_revision_information $baseline $cherrypicks) + if [ -n "${delimiter}" ]; then + echo "${delimiter}" + fi + create_revision_information $baseline $cherrypicks + if [ -n "${delimiter}" ]; then + echo "${delimiter}" + fi -$(get_release_notes "${branch}") -EOF + echo + get_release_notes "${branch}" } # Returns the release notes for the CHANGELOG.md taken from either from diff --git a/scripts/release/release.sh b/scripts/release/release.sh index b8fb8474c0..988c497d6d 100755 --- a/scripts/release/release.sh +++ b/scripts/release/release.sh @@ -89,8 +89,13 @@ function release_note_editor() { # Create the release commit by changing the CHANGELOG file function create_release_commit() { - local infos=$(generate_release_message "${1}") + local infos=$(generate_release_message "${1}" HEAD '```') local changelog_path="$PWD/CHANGELOG.md" + local master=$(get_master_ref) + + # Get the changelog from master to avoid missing release notes + # from release that were in-between + git checkout -q ${master} CHANGELOG.md || true # CHANGELOG.md local tmpfile="$(mktemp ${TMPDIR:-/tmp}/relnotes-XXXXXXXX)" @@ -98,7 +103,9 @@ function create_release_commit() { echo -n "## ${infos}" >${tmpfile} if [ -f "${changelog_path}" ]; then echo >>${tmpfile} + echo >>${tmpfile} cat "${changelog_path}" >>${tmpfile} + echo >>${tmpfile} fi cat "${tmpfile}" > ${changelog_path} git add ${changelog_path} @@ -106,6 +113,7 @@ function create_release_commit() { trap - EXIT # Commit + infos="$(echo "${infos}" | grep -Ev '^```$')" git commit --no-verify -m "${infos}" --no-edit --author "${RELEASE_AUTHOR}" } diff --git a/scripts/release/release_test.sh b/scripts/release/release_test.sh index f95d6108b4..471953a506 100755 --- a/scripts/release/release_test.sh +++ b/scripts/release/release_test.sh @@ -199,6 +199,15 @@ function test_release_workflow() { # Do the initial release release v0 + CHANGELOG='## Release v0 ('$(date +%Y-%m-%d)') + +``` +Baseline: 965c392 +``` + +Initial release.' + assert_equals "${CHANGELOG}" "$(<CHANGELOG.md)" + # Second release. # First we need to edit the logs @@ -280,17 +289,19 @@ EOF echo "${RELNOTES}" >${TEST_TMPDIR}/replacement.log create v1 1170dc6 0540fde cef25c4 - header='Release v1rc2 ('$(date +%Y-%m-%d)') - -Baseline: 1170dc6 + title='Release v1rc2 ('$(date +%Y-%m-%d)')' + revision_info='Baseline: 1170dc6 Cherry picks: + 0540fde: Extract version numbers that look like "..._1.2.3_..." from BUILD_EMBED_LABEL into Info.plist. + cef25c4: RELNOTES: Attribute error messages related to Android - resources are easier to understand now. + resources are easier to understand now.' + header="${title} -' +${revision_info} + +" assert_equals "${header}${RELNOTES}" "$(cat ${TEST_log})" assert_equals "${RELNOTES}" "$(get_release_notes release-v1)" assert_equals 2 "$(get_release_candidate release-v1)" @@ -298,6 +309,17 @@ Cherry picks: # Push the release push v1 release v1 + title='Release v1 ('$(date +%Y-%m-%d)')' + CHANGELOG='## '"${title}"' + +``` +'"${revision_info}"' +``` + +'"${RELNOTES}"' + +'"${CHANGELOG}" + assert_equals "${CHANGELOG}" "$(<CHANGELOG.md)" # Third release to test abandon cat >${EDITOR} <<EOF |