github.com/wasilibs/wazerox@v0.0.0-20240124024944-4923be63ab5f/.github/workflows/release_notes.sh (about)

     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  
     6  tag=$1
     7  prior_tag=$(git tag -l 'v*'|sed "/${tag}/,+10d"|tail -1)
     8  if [ -n "${prior_tag}" ]; then
     9    range="${prior_tag}..${tag}"
    10  else
    11    range=${tag}
    12  fi
    13  
    14  git config log.mailmap true
    15  changelog=$(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}
    18  version=$(echo "${tag}" | cut -c2-100) || exit 1
    19  cat <<EOF
    20  wazero ${version} supports X and Y and notably fixes Z
    21  
    22  TODO: classify the below into up to 4 major headings and the rest as bulleted items in minor changes
    23  The published release notes should only include the summary statement in this section.
    24  
    25  ${changelog}
    26  
    27  ## X packages
    28  
    29  Don't forget to cite who was involved and why
    30  
    31  ## wazero Y
    32  
    33  ## Minor changes
    34  
    35  TODO: 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  
    39  EOF