diff --git a/docs/release/release-tasks.md b/docs/release/release-tasks.md index 59c852ba60bc..ff8ea6b85f8b 100644 --- a/docs/release/release-tasks.md +++ b/docs/release/release-tasks.md @@ -367,10 +367,10 @@ The goal of this task is to keep the CAPI community updated on recent PRs that h RELEASE_TAG=v1.6.x make release-notes ``` - If this is a beta or RC release, add the --pre-release-version flag + If this is a beta or RC release, add the --release-type to beta or rc ```bash make release-notes-tool - ./bin/notes --release=${RELEASE_TAG} --pre-release-version > CHANGELOG/${RELEASE_TAG}.md + ./bin/notes --release=${RELEASE_TAG} --release-type=beta > CHANGELOG/${RELEASE_TAG}.md ``` 1. This will generate a new release notes file at `CHANGELOG/.md`. Finalize the release notes: diff --git a/hack/tools/release/notes/main.go b/hack/tools/release/notes/main.go index 711336cbc1b5..a01582cdc207 100644 --- a/hack/tools/release/notes/main.go +++ b/hack/tools/release/notes/main.go @@ -51,8 +51,8 @@ type notesCmdConfig struct { toRef string newTag string branch string + releaseType string prefixAreaLabel bool - preReleaseVersion bool deprecation bool addKubernetesVersionSupport bool } @@ -65,9 +65,9 @@ func readCmdConfig() *notesCmdConfig { flag.StringVar(&config.toRef, "to", "", "The ref (tag, branch or commit to stop at. It must be formatted as heads/ for branches and tags/ for tags. If not set, it will default to branch.") flag.StringVar(&config.branch, "branch", "", "The branch to generate the notes from. If not set, it will be calculated from release.") flag.StringVar(&config.newTag, "release", "", "The tag for the new release.") + flag.StringVar(&config.releaseType, "release-type", "", "Set the type of the release. You can choose between rc or beta. (default empty, which is a normal release)") flag.BoolVar(&config.prefixAreaLabel, "prefix-area-label", true, "If enabled, will prefix the area label.") - flag.BoolVar(&config.preReleaseVersion, "pre-release-version", false, "If enabled, will add a pre-release warning header. (default false)") flag.BoolVar(&config.deprecation, "deprecation", true, "If enabled, will add a templated deprecation warning header.") flag.BoolVar(&config.addKubernetesVersionSupport, "add-kubernetes-version-support", true, "If enabled, will add the Kubernetes version support header.") @@ -103,10 +103,16 @@ func (cmd *notesCmd) run() error { from, to := parseRef(cmd.config.fromRef), parseRef(cmd.config.toRef) printer := newReleaseNotesPrinter(cmd.config.repo, from.value) - printer.isPreRelease = cmd.config.preReleaseVersion printer.printDeprecation = cmd.config.deprecation printer.printKubernetesSupport = cmd.config.addKubernetesVersionSupport + if cmd.config.releaseType != "" { + printer.releaseType = "BETA RELEASE" + if cmd.config.releaseType == "rc" { + printer.releaseType = "RELEASE CANDIDATE" + } + } + generator := newNotesGenerator( newGithubFromToPRLister(cmd.config.repo, from, to, cmd.config.branch), newPREntryProcessor(cmd.config.prefixAreaLabel), @@ -151,6 +157,11 @@ func validateConfig(config *notesCmdConfig) error { } } + // We only allow the release version to be empty (real release), rc or beta. + if config.releaseType != "" && config.releaseType != "rc" && config.releaseType != "beta" { + return errors.New("only parameters rc and beta are valid") + } + return nil } diff --git a/hack/tools/release/notes/print.go b/hack/tools/release/notes/print.go index 2c0a4affbe83..dc72d9d0c9cc 100644 --- a/hack/tools/release/notes/print.go +++ b/hack/tools/release/notes/print.go @@ -41,7 +41,7 @@ var defaultOutputOrder = []string{ // the right format for the release notes. type releaseNotesPrinter struct { outputOrder []string - isPreRelease bool + releaseType string printKubernetesSupport bool printDeprecation bool fromTag string @@ -75,8 +75,8 @@ func (p *releaseNotesPrinter) print(entries []notesEntry, commitsInRelease int, } } - if p.isPreRelease { - fmt.Printf("🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/%s/issues/new).\n", p.repo) + if p.releaseType != "" { + fmt.Printf("🚨 This is a %s. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/%s/issues/new).\n", p.releaseType, p.repo) } if p.printKubernetesSupport {