diff --git a/CHANGES b/CHANGES index 8547a5f094..56a5fc7490 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,3 @@ -Upcoming release -================ - 1.0.0 (January 24, 2018) ======================== diff --git a/tools/update_changes.sh b/tools/update_changes.sh new file mode 100644 index 0000000000..9327118c7a --- /dev/null +++ b/tools/update_changes.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Collects the pull-requests since the latest release and +# aranges them in the CHANGES.txt file. +# +# This is a script to be run before releasing a new version. +# +# Usage /bin/bash update_changes.sh 1.0.1 +# + +# Setting # $ help set +set -u # Treat unset variables as an error when substituting. +set -x # Print command traces before executing command. + +# Check whether the Upcoming release header is present +head -1 CHANGES | grep -q Upcoming +UPCOMING=$? + +# Elaborate today's release header +HEADER="$1 ($(date '+%B %d, %Y'))" +echo $HEADER >> newchanges +echo $( printf "%${#HEADER}s" | tr " " "=" ) >> newchanges +echo "" >> newchanges + +# Search for PRs since previous release +git log --grep="Merge pull request" `git describe --tags --abbrev=0`..HEAD --pretty='format: * %b %s' | sed 's+Merge pull request \#\([^\d]*\)\ from\ .*+(https://github.com/nipy/nipype/pull/\1)+' >> newchanges +echo "" >> newchanges +echo "" >> newchanges + +# Append old CHANGES +if [[ "$UPCOMING" == "0" ]]; then + # Drop the Upcoming title if present + tail -n+4 CHANGES >> newchanges +else + cat CHANGES >> newchanges +fi + +# Replace old CHANGES with new file +mv newchanges CHANGES +