diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yml similarity index 92% rename from .github/workflows/changelog.yaml rename to .github/workflows/changelog.yml index 0fcd8ed8a967..9d716c9e11b7 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yml @@ -18,11 +18,11 @@ jobs: with: fetch-depth: 2 - - name: Retrives changed files in CHANGELOG/unreleased/**/*.yaml + - name: Retrives changed files in CHANGELOG/unreleased/**/*.yml id: changelog-check uses: tj-actions/changed-files@2f7246cb26e8bb6709b6cbfc1fec7febfe82e96a # v37 with: - files: 'CHANGELOG/unreleased/**/*.yaml' + files: 'CHANGELOG/unreleased/**/*.yml' - name: Requires a changelog file if 'skip-changelog' label is not added if: ${{ !contains(github.event.*.labels.*.name, 'skip-changelog') }} @@ -44,4 +44,4 @@ jobs: with: jsonSchemaFile: CHANGELOG/schema.json yamlFiles: | - CHANGELOG/unreleased/*/*.yaml + CHANGELOG/unreleased/*/*.yml diff --git a/CHANGELOG/Makefile b/CHANGELOG/Makefile index a71e38b41106..f78e35825357 100644 --- a/CHANGELOG/Makefile +++ b/CHANGELOG/Makefile @@ -1,3 +1,8 @@ +.PHONY: new install_dependencies + +new: + ./new.sh + install_dependencies: luarocks install penlight --local luarocks install lyaml --local diff --git a/CHANGELOG/README.md b/CHANGELOG/README.md index ead8a94074c7..c0f8eb59ceb6 100644 --- a/CHANGELOG/README.md +++ b/CHANGELOG/README.md @@ -6,7 +6,7 @@ The `kong/CHANGELOG.md` now is deprecated. ## How to add a changelog file for your PR? -1/ Copy the `changelog-template.yaml` file and rename with your PR number or a short message as the filename. For example, `11279.yaml`, `introduce-a-new-changelog-system.yaml`. (Prefer using PR number as it's already unique and wouldn't introduce conflict) +1/ Copy the `changelog-template.yml` file and rename with your PR number or a short message as the filename. For example, `11279.yml`, `introduce-a-new-changelog-system.yml`. (Prefer using PR number as it's already unique and wouldn't introduce conflict) 2/ Fill out the changelog template. @@ -14,7 +14,7 @@ The `kong/CHANGELOG.md` now is deprecated. The description of the changelog file field, please follow the `schema.json` for more details. - message: Message of the changelog -- type: Changelog type. (`feature`, `bugfix`, `dependency`, `deprecation`, `breaking_change`) +- type: Changelog type. (`feature`, `bugfix`, `dependency`, `deprecation`, `breaking_change`, `performance`) - scope: Changelog scope. (`Core`, `Plugin`, `PDK`, `Admin API`, `Performance`, `Configuration`, `Clustering`) - prs: List of associated GitHub PRs - issues: List of associated GitHub issues diff --git a/CHANGELOG/changelog b/CHANGELOG/changelog index 87e93e2c46d8..b02727c51225 100755 --- a/CHANGELOG/changelog +++ b/CHANGELOG/changelog @@ -94,8 +94,7 @@ end local function is_yaml(filename) - return pl_stringx.endswith(filename, ".yaml") or - pl_stringx.endswith(filename, ".yml") + return pl_stringx.endswith(filename, ".yml") end local function is_empty_table(t) diff --git a/CHANGELOG/new.sh b/CHANGELOG/new.sh new file mode 100755 index 000000000000..7e530b10ce34 --- /dev/null +++ b/CHANGELOG/new.sh @@ -0,0 +1,79 @@ +#!/bin/bash +set -e + +echo "What is this changelog for (kong, kong-ee, kong-manager)?" +select component in kong kong-ee kong-manager; do + case $component in + kong|kong-ee|kong-manager) break;; + *) echo "Invalid option. Please select again.";; + esac +done + +echo + +read -p "What is the title of the change? " title + +echo + +echo "What is the type of the change (feature, bugfix, dependency, deprecation, breaking_change, performance)?" +select type in feature bugfix dependency deprecation breaking_change performance; do + case $type in + feature|bugfix|dependency|deprecation|breaking_change|performance) break;; + *) echo "Invalid option. Please select again.";; + esac +done + +echo + +echo "What is the scope of the change (Core, Plugin, PDK, Admin API, Performance, Configuration, Clustering)?" +select scope in Core Plugin PDK "Admin API" Performance Configuration Clustering; do + case $scope in + Core|Plugin|PDK|"Admin API"|Performance|Configuration|Clustering) break;; + *) echo "Invalid option. Please select again.";; + esac +done + +echo + +read -p "What are the associated PRs? (comma-separated, without spaces e.g. 123,124,125) " pr_input +IFS=',' read -ra prs <<< "$pr_input" + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +file_name="$SCRIPT_DIR/unreleased/$component/${prs[0]:-unknown}.yml" + +echo + +echo "New changelog will be created at $file_name" + +echo + +read -p "What are the associated Jira tickets? (comma-separated, without spaces e.g. FTI-123,FTI-124) " jira_input +IFS=',' read -ra jiras <<< "$jira_input" + +echo + +read -p "What are the associated issues? (comma-separated, without spaces e.g. 123,124,125) " issue_input +IFS=',' read -ra issues <<< "$issue_input" + +echo "message: $title" > $file_name +echo "type: $type" >> $file_name +echo "scope: $scope" >> $file_name +echo "prs:" >> $file_name +for pr in "${prs[@]}"; do + echo " - $pr" >> $file_name +done +echo "jiras:" >> $file_name +for jira in "${jiras[@]}"; do + echo " - \"$jira\"" >> $file_name +done +echo "issues:" >> $file_name +for issue in "${issues[@]}"; do + echo " - $issue" >> $file_name +done + +echo + +echo "Changelog file generated as $file_name:" +echo "Be sure to \"git add\" and \"git commit\" this file" +echo "================================================================" +cat $file_name diff --git a/CHANGELOG/unreleased/kong/11360-1.yaml b/CHANGELOG/unreleased/kong/11360-1.yml similarity index 100% rename from CHANGELOG/unreleased/kong/11360-1.yaml rename to CHANGELOG/unreleased/kong/11360-1.yml diff --git a/CHANGELOG/unreleased/kong/11360-2.yaml b/CHANGELOG/unreleased/kong/11360-2.yml similarity index 100% rename from CHANGELOG/unreleased/kong/11360-2.yaml rename to CHANGELOG/unreleased/kong/11360-2.yml diff --git a/CHANGELOG/unreleased/kong/11424.yaml b/CHANGELOG/unreleased/kong/11424.yml similarity index 100% rename from CHANGELOG/unreleased/kong/11424.yaml rename to CHANGELOG/unreleased/kong/11424.yml diff --git a/CHANGELOG/unreleased/kong/11468.yaml b/CHANGELOG/unreleased/kong/11468.yml similarity index 100% rename from CHANGELOG/unreleased/kong/11468.yaml rename to CHANGELOG/unreleased/kong/11468.yml