diff --git a/changes/ee/feat-9932-en.md b/changes/ee/feat-9932.en.md similarity index 100% rename from changes/ee/feat-9932-en.md rename to changes/ee/feat-9932.en.md diff --git a/changes/ee/feat-9932-zh.md b/changes/ee/feat-9932.zh.md similarity index 100% rename from changes/ee/feat-9932-zh.md rename to changes/ee/feat-9932.zh.md diff --git a/scripts/changelog-lang-templates/en b/scripts/changelog-lang-templates/en deleted file mode 100644 index 05c218c7e..000000000 --- a/scripts/changelog-lang-templates/en +++ /dev/null @@ -1,12 +0,0 @@ -# ${version} - -## Enhancements - -$(section feat) - -$(section perf) - -## Bug fixes - -$(section fix) - diff --git a/scripts/changelog-lang-templates/zh b/scripts/changelog-lang-templates/zh deleted file mode 100644 index 2bafd99d7..000000000 --- a/scripts/changelog-lang-templates/zh +++ /dev/null @@ -1,12 +0,0 @@ -# ${version} - -## 增强 - -$(section feat) - -$(section perf) - -## 修复 - -$(section fix) - diff --git a/scripts/rel/cut.sh b/scripts/rel/cut.sh index 8d00694ac..60fe2f28d 100755 --- a/scripts/rel/cut.sh +++ b/scripts/rel/cut.sh @@ -223,9 +223,9 @@ generate_changelog () { from_tag="$(git describe --tags --abbrev=0 --match 'e*')" fi fi - local output_dir="changes" - ./scripts/format-changelog.sh $PROFILE "${from_tag}" "${TAG}" $output_dir - git add $output_dir + ./scripts/rel/format-changelog.sh -b "${from_tag}" -l 'en' -v "$TAG" > "changes/${TAG}.en.md" + ./scripts/rel/format-changelog.sh -b "${from_tag}" -l 'zh' -v "$TAG" > "changes/${TAG}.zh.md" + git add changes/"${TAG}".*.md [ -n "$(git status -s)" ] && git commit -m "chore: Generate changelog for ${TAG}" } diff --git a/scripts/rel/format-changelog.sh b/scripts/rel/format-changelog.sh index 87fbc60a2..3561ad55c 100755 --- a/scripts/rel/format-changelog.sh +++ b/scripts/rel/format-changelog.sh @@ -3,28 +3,91 @@ set -euo pipefail shopt -s nullglob export LANG=C.UTF-8 -[ "$#" -ne 4 ] && { - echo "Usage $0 " 1>&2; - exit 1 +logerr() { + echo "$(tput setaf 1)ERROR: $1$(tput sgr0)" 1>&2 } -profile="${1}" -last_tag="${2}" -version="${3}" -output_dir="${4}" -languages=("en" "zh") +usage() { + cat < $output" - else - echo "Invalid language ${language}" 1>&2; - exit 1 - fi -} - changes_dir=("$top_dir/changes/ce") -if [ "$profile" == "emqx-enterprise" ]; then +if [ "$PROFILE" == "emqx-enterprise" ]; then changes_dir+=("$top_dir/changes/ee") fi while read -d "" -r file; do - changes+=("$file") -done < <(git diff --name-only -z -a "tags/${last_tag}...HEAD" "${changes_dir[@]}") + PRS+=("$file") +done < <(git diff --name-only -z -a "tags/${BASE_TAG}...HEAD" "${changes_dir[@]}") -for language in "${languages[@]}"; do - generate "$language" -done +TEMPLATE_FEAT_CHANGES="$(section 'feat')" +TEMPLATE_PERF_CHANGES="$(section 'perf')" +TEMPLATE_FIX_CHANGES="$(section 'fix')" + +case "$LANGUAGE" in + en) + TEMPLATE_ENH_HEADING="Enhancements" + TEMPLATE_FIX_HEADING="Bug Fixes" + ;; + zh) + TEMPLATE_ENH_HEADING="增强" + TEMPLATE_FIX_HEADING="修复" + ;; +esac + +cat <