@@ -13,10 +13,10 @@ set -u # Treat unset variables as an error when substituting.
13
13
set -x # Print command traces before executing command.
14
14
15
15
# Check whether the Upcoming release header is present
16
- head -1 CHANGES.rst | grep -q Upcoming
16
+ head -1 CHANGES.md | grep -q Upcoming
17
17
UPCOMING=$?
18
18
if [[ " $UPCOMING " == " 0" ]]; then
19
- head -n3 CHANGES.rst >> newchanges
19
+ head -n3 CHANGES.md >> newchanges
20
20
fi
21
21
22
22
# Elaborate today's release header
@@ -26,15 +26,28 @@ echo $( printf "%${#HEADER}s" | tr " " "=" ) >> newchanges
26
26
echo " " >> newchanges
27
27
28
28
# Search for PRs since previous release
29
- 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
30
- echo " " >> newchanges
31
- echo " " >> newchanges
29
+ MERGE_COMMITS=$( git log --grep=" Merge pull request\|(#.*)$" ` git describe --tags --abbrev=0` ..HEAD --pretty=' format:%h' )
30
+ for COMMIT in ${MERGE_COMMITS// \n } ; do
31
+ SUB=$( git log -n 1 --pretty=" format:%s" $COMMIT )
32
+ if ( echo $SUB | grep " ^Merge pull request" ); then
33
+ # Merge commit
34
+ PR=$( echo $SUB | sed -e " s/Merge pull request \#\([0-9]*\).*/\1/" )
35
+ TITLE=$( git log -n 1 --pretty=" format:%b" $COMMIT )
36
+ else
37
+ # Squashed merge
38
+ PR=$( echo $SUB | sed -e " s/.*(\#\([0-9]*\))$/\1/" )
39
+ TITLE=$( echo $SUB | sed -e " s/\(.*\) (\#[0-9]*)$/\1/" )
40
+ fi
41
+ echo " * $TITLE (#$PR )" >> newchanges
42
+ done
43
+ echo >> newchanges
44
+ echo >> newchanges
32
45
33
46
# Add back the Upcoming header if it was present
34
47
if [[ " $UPCOMING " == " 0" ]]; then
35
- tail -n+4 CHANGES.rst >> newchanges
48
+ tail -n+4 CHANGES.md >> newchanges
36
49
else
37
- cat CHANGES.rst >> newchanges
50
+ cat CHANGES.md >> newchanges
38
51
fi
39
52
40
53
# Replace old CHANGES.md with new file
0 commit comments