File: update_changes.sh

package info (click to toggle)
nipype 1.9.2-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 15,260 kB
  • sloc: python: 156,463; javascript: 9,246; tcl: 608; sh: 485; makefile: 168
file content (61 lines) | stat: -rwxr-xr-x 1,934 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
#
# Collects the pull-requests since the latest release and
# arranges 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.

ROOT=$( git rev-parse --show-toplevel )
CHANGES=$ROOT/doc/changelog/1.X.X-changelog.rst

# 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

MILESTONE=${2:-""}
if [[ "x$MILESTONE" != "x" ]]; then
    echo "(\`Full changelog <https://github.com/nipy/nipype/milestone/$2?closed=1>\`__)" >> newchanges
    echo >> newchanges
fi

# Search for PRs since previous release
MERGE_COMMITS=$( git log --grep="Merge pull request\|(#.*)$" `git describe --tags --abbrev=0`..HEAD --pretty='format:%h' )
for COMMIT in ${MERGE_COMMITS//\n}; do
    SUB=$( git log -n 1 --pretty="format:%s" $COMMIT )
    if ( echo $SUB | grep "^Merge pull request" ); then
        # Merge commit
        PR=$( echo $SUB | sed -e "s/Merge pull request \#\([0-9]*\).*/\1/" )
        TITLE=$( git log -n 1 --pretty="format:%b" $COMMIT )
    else
        # Squashed merge
        PR=$( echo $SUB | sed -e "s/.*(\#\([0-9]*\))$/\1/" )
        TITLE=$( echo $SUB | sed -e "s/\(.*\)(\#[0-9]*)$/\1/" )
    fi
    echo "  * $TITLE (https://github.com/nipy/nipype/pull/$PR)" >> newchanges
done
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