From 25c7e17fb81610ddb5d3bc959aaa2eb2c6d92619 Mon Sep 17 00:00:00 2001 From: Kurnianto Trilaksono Date: Wed, 24 Apr 2024 20:30:34 +0800 Subject: [PATCH] add pr rules, fix script --- CONTRIBUTING.md | 27 ++++++++++++++++++++++++++- releasing/check-release-helper.sh | 9 ++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ae8af9b58..09e42469f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -75,14 +75,39 @@ cd kustomize git push origin myfeature ``` +### Pull Request Rules + +We are using [Conventional Commits v1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) as the main guideline of making PR. This guideline serves to help contributor and maintainer to classify their changes, thus providing better insight on type of release will be covered on each Kustomize release cycle. + +1. Please add these keywords on your PR titles accordingly + +| Keyword | Description | Example | +| ------------- | ------------- | ------------- | +| fix | Patching or fixing bugs or improvements introduction from previous release. This type of change will mark a `PATCH` release. | fix: fix null value when generating yaml | +| feat | New features. This change will mark a `MINOR` release. | feat: new transformer and generator for ACME API CRD. | +| chore | Minor improvement outside main code base | chore: add exclusion for transformer test. | +| ci | CI/CD related changes (e.g. github workflow, scripts, CI steps). | ci: remove blocking tests | +| docs | Changes related to documentation. | docs: add rules documentation for PR. | + + +2. Add `BREAKING CHANGE:` on your commit message as footer to signify breaking changes. This will help maintainer to justify `MAJOR` releases. + +Example: + +``` +feat: change YAML parser from `yaml/v1` to `yaml/v2` + +BREAKING CHANGE: parse() function now works with 2 arguments. +``` + ### Create a Pull Request + 1. Visit your fork at `https://github.com//kustomize` 2. Click the **Compare & Pull Request** button next to your `myfeature` branch. 3. Check out the pull request [process](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md) for more details and advice. If you ran `git push` in the previous step, GitHub will return a useful link to create a Pull Request. - ### Build Kustomize The [Kustomize Architecture] document describes the respository organization and the kustomize build process. ```bash diff --git a/releasing/check-release-helper.sh b/releasing/check-release-helper.sh index ae4e6ee68..f481b381a 100755 --- a/releasing/check-release-helper.sh +++ b/releasing/check-release-helper.sh @@ -15,7 +15,7 @@ git log "${LATEST_TAG}..HEAD" --oneline | tee /tmp/release-changelogs.txt count=$(cat /tmp/release-changelogs.txt | wc -l) -if [[ $(cat /tmp/release-changelogs.txt | grep fix) || $(cat /tmp/release-changelogs.txt | grep patch) || $(cat /tmp/release-changelogs.txt | grep chore) ]]; then +if [[ $(cat /tmp/release-changelogs.txt | grep fix) || $(cat /tmp/release-changelogs.txt | grep patch) || $(cat /tmp/release-changelogs.txt | grep chore) || $(cat /tmp/release-changelogs.txt | grep docs) ]]; then PATCH=true fi @@ -23,6 +23,13 @@ if [[ $(cat /tmp/release-changelogs.txt | grep feat) ]]; then MINOR=true fi +for commit in $(cut -d' ' -f1 /tmp/release-changelogs.txt); do + git log --format=%B -n 1 $commit | grep "BREAKING CHANGE" + if [ $? -eq 0 ]; then + MAJOR=true + fi +done + for f in $(find api); do git diff "${LATEST_TAG}...${ORIGIN_MASTER}" --exit-code -- "${f}" if [ $? -eq 1 ]; then