From d70af2009838934528d0bb6423037e3525201097 Mon Sep 17 00:00:00 2001 From: oesteban Date: Tue, 13 Feb 2018 12:10:43 -0800 Subject: [PATCH 1/4] [ENH] Automate updates of CHANGES Ref. https://github.com/nipy/nipype/issues/2313#issuecomment-365330143, item 5. --- tools/update_changes.sh | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tools/update_changes.sh diff --git a/tools/update_changes.sh b/tools/update_changes.sh new file mode 100644 index 0000000000..28ce7c1453 --- /dev/null +++ b/tools/update_changes.sh @@ -0,0 +1,43 @@ +#!/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 -e # Exit immediately if a command exits with a non-zero status. +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=$? +if [[ "$UPCOMING" == "0" ]]; then + head -n3 CHANGES >> newchanges +fi + +# 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\ .*/(\#\1)/' >> newchanges +echo "" >> newchanges +echo "" >> newchanges + +# Add back the Upcoming header if it was present +if [[ "$UPCOMING" == "0" ]]; then + tail -n+4 CHANGES >> newchanges +else + cat CHANGES >> newchanges +fi + +# Replace old CHANGES with new file +mv newchanges CHANGES + From f9d05f5b16aa5cd022bf9d87d09e13fe0016c513 Mon Sep 17 00:00:00 2001 From: oesteban Date: Tue, 13 Feb 2018 21:38:16 -0800 Subject: [PATCH 2/4] remove -e which should not be there --- tools/update_changes.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/update_changes.sh b/tools/update_changes.sh index 28ce7c1453..100437e8e0 100644 --- a/tools/update_changes.sh +++ b/tools/update_changes.sh @@ -9,7 +9,6 @@ # # Setting # $ help set -set -e # Exit immediately if a command exits with a non-zero status. set -u # Treat unset variables as an error when substituting. set -x # Print command traces before executing command. From 2d99ee95aeb3bfc102135ed639aacd5b5f3e8d59 Mon Sep 17 00:00:00 2001 From: Oscar Esteban Date: Tue, 20 Feb 2018 09:39:21 -0800 Subject: [PATCH 3/4] add URL, drop Upcoming release --- CHANGES | 3 --- tools/update_changes.sh | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) 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 index 100437e8e0..283bc0176a 100644 --- a/tools/update_changes.sh +++ b/tools/update_changes.sh @@ -26,7 +26,7 @@ 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\ .*/(\#\1)/' >> newchanges +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 From 6d5e40f45941887da7667e331aa630d214e0daa2 Mon Sep 17 00:00:00 2001 From: Oscar Esteban Date: Tue, 20 Feb 2018 10:22:42 -0800 Subject: [PATCH 4/4] drop Upcoming release if present --- tools/update_changes.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/update_changes.sh b/tools/update_changes.sh index 283bc0176a..9327118c7a 100644 --- a/tools/update_changes.sh +++ b/tools/update_changes.sh @@ -15,9 +15,6 @@ set -x # Print command traces before executing command. # Check whether the Upcoming release header is present head -1 CHANGES | grep -q Upcoming UPCOMING=$? -if [[ "$UPCOMING" == "0" ]]; then - head -n3 CHANGES >> newchanges -fi # Elaborate today's release header HEADER="$1 ($(date '+%B %d, %Y'))" @@ -30,8 +27,9 @@ git log --grep="Merge pull request" `git describe --tags --abbrev=0`..HEAD --pre echo "" >> newchanges echo "" >> newchanges -# Add back the Upcoming header if it was present +# Append old CHANGES if [[ "$UPCOMING" == "0" ]]; then + # Drop the Upcoming title if present tail -n+4 CHANGES >> newchanges else cat CHANGES >> newchanges