mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 02:53:51 +08:00
Introduce release notes header template
This PR introduce the release notes header template using Jinja [1]. Also improved the script to merge changelogs to include the upcoming .unreleased/RELEASE_NOTES_HEADER.md.j2 where we'll actually write the release notes header for the next release.
This commit is contained in:
parent
acc73b9d5b
commit
fc46eabf99
2
.github/workflows/changelog-check.yaml
vendored
2
.github/workflows/changelog-check.yaml
vendored
@ -47,7 +47,7 @@ jobs:
|
|||||||
folder=".unreleased"
|
folder=".unreleased"
|
||||||
|
|
||||||
# Get the list of modified files in this pull request
|
# Get the list of modified files in this pull request
|
||||||
files=$(git --no-pager diff --diff-filter=ACMR --name-only $(git merge-base HEAD ${{ github.event.pull_request.base.sha }}) HEAD)
|
files=$(git --no-pager diff --diff-filter=ACMR --name-only $(git merge-base HEAD ${{ github.event.pull_request.base.sha }}) HEAD ':!.unreleased/*.j2')
|
||||||
|
|
||||||
if echo "$BODY" | egrep -qsi "Disable-check:[[:space:]]*force-changelog-file"; then
|
if echo "$BODY" | egrep -qsi "Disable-check:[[:space:]]*force-changelog-file"; then
|
||||||
# skip changelog checks if forced
|
# skip changelog checks if forced
|
||||||
|
16
.unreleased/template.release_notes.j2
Normal file
16
.unreleased/template.release_notes.j2
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{#
|
||||||
|
# Variables:
|
||||||
|
# release_current = the release version that has being builded
|
||||||
|
# release_previous = previous release version
|
||||||
|
# release_date = date of the release in format YYYY-MM-DD
|
||||||
|
#}
|
||||||
|
## {{ release_current }} ({{ release_date }})
|
||||||
|
|
||||||
|
This release contains performance improvements and bug fixes since
|
||||||
|
the {{ release_previous }} release. We recommend that you upgrade at the next
|
||||||
|
available opportunity.
|
||||||
|
|
||||||
|
In addition, it includes these noteworthy features:
|
||||||
|
* feature 1
|
||||||
|
* feature 2
|
||||||
|
* feature N
|
@ -1,14 +1,42 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# skip the template file
|
#
|
||||||
echo "**Features**"
|
# This script build a CHANGELOG.md entry for a new release
|
||||||
grep -i '^Implements:' .unreleased/* | grep -v '.unreleased/template.rfc822' | cut -d: -f3- | sort | uniq | sed -e 's/^[[:space:]]*//' -e 's/^/* /'
|
#
|
||||||
echo
|
|
||||||
|
|
||||||
echo "**Bugfixes**"
|
RELEASE_NOTES_TEMPLATE='.unreleased/RELEASE_NOTES.md.j2'
|
||||||
grep -i '^Fixes:' .unreleased/* | grep -v '.unreleased/template.rfc822' | cut -d: -f3- | sort | uniq | sed -e 's/^[[:space:]]*//' -e 's/^/* /'
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "**Thanks**"
|
echo_changelog() {
|
||||||
grep -i '^Thanks:' .unreleased/* | grep -v '.unreleased/template.rfc822' | cut -d: -f3- | sort | sed -e 's/^[[:space:]]*//' -e 's/^/* /'
|
echo "${1}"
|
||||||
echo
|
# skip the template and release notes files
|
||||||
|
grep -i "${2}" .unreleased/* | \
|
||||||
|
grep -v '.unreleased/template.*' | \
|
||||||
|
grep -v "${RELEASE_NOTES_TEMPLATE}" | \
|
||||||
|
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_TEMPLATE}" ];
|
||||||
|
then
|
||||||
|
jinja \
|
||||||
|
-D release_current "${RELEASE_CURRENT}" \
|
||||||
|
-D release_previous "${RELEASE_PREVIOUS}" \
|
||||||
|
-D release_date "${RELEASE_DATE}" ${RELEASE_NOTES_TEMPLATE}
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_changelog '**Features**' '^Implements:'
|
||||||
|
echo_changelog '**Bugfixes**' '^Fixes:'
|
||||||
|
echo_changelog '**Thanks**' '^Thanks:'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user