...
1#!/bin/sh -ue
2#
3# This script generates the release notes "wazero" for a specific release tag.
4# .github/workflows/release_notes.sh v1.3.0
5
6tag=$1
7prior_tag=$(git tag -l 'v*'|sed "/${tag}/,+10d"|tail -1)
8if [ -n "${prior_tag}" ]; then
9 range="${prior_tag}..${tag}"
10else
11 range=${tag}
12fi
13
14git config log.mailmap true
15changelog=$(git log --format='%h %s %aN, %(trailers:key=co-authored-by)' "${range}")
16
17# strip the v off the tag name more shell portable than ${tag:1}
18version=$(echo "${tag}" | cut -c2-100) || exit 1
19cat <<EOF
20wazero ${version} supports X and Y and notably fixes Z
21
22TODO: classify the below into up to 4 major headings and the rest as bulleted items in minor changes
23The published release notes should only include the summary statement in this section.
24
25${changelog}
26
27## X packages
28
29Don't forget to cite who was involved and why
30
31## wazero Y
32
33## Minor changes
34
35TODO: don't add trivial things like fixing spaces or non-concerns like build glitches
36
37* Z is now fixed thanks to Yogi Bear
38
39EOF
View as plain text