timescaledb/scripts/merge_changelogs.sh
Alexander Kuzmenkov e458ff48c0
Move the changelog templates out of .unreleased (#7427)
This way it's easier to delete the entire .unreleased folder after the
changelog is generated, instead of enumerating every single changelog
file but skipping the templates.
2024-11-07 14:47:28 +00:00

43 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu
#
# This script build a CHANGELOG.md entry for a new release
#
REPO="$(readlink -e "$(dirname "${BASH_SOURCE[0]}")/..")"
RELEASE_NOTES_HEADER_TEMPLATE="$REPO/scripts/changelog/RELEASE_NOTES_HEADER.md.j2"
echo_changelog() {
echo "${1}"
# skip the template and release notes files
grep -i "${2}" .unreleased/* | \
cut -d: -f3- | sort | uniq | sed -e 's/^[[:space:]]*//' -e 's/^/* /'
echo
}
get_version_config_var() {
grep "${1}" version.config | awk '{print $3}' | sed 's/-dev//'
}
RELEASE_CURRENT=$(get_version_config_var '^version')
RELEASE_PREVIOUS=$(get_version_config_var '^update_from_version')
RELEASE_DATE=$(date +"%Y-%m-%d")
#
# To install jinja template client:
# $ pip install jinja-cli
#
if [ -f "${RELEASE_NOTES_HEADER_TEMPLATE}" ];
then
jinja \
-D release_current "${RELEASE_CURRENT}" \
-D release_previous "${RELEASE_PREVIOUS}" \
-D release_date "${RELEASE_DATE}" "${RELEASE_NOTES_HEADER_TEMPLATE}"
echo
fi
echo_changelog '**Features**' '^Implements:'
echo_changelog '**Bugfixes**' '^Fixes:'
echo_changelog '**Thanks**' '^Thanks:'