Skip to content

Commit

Permalink
Add release-type parameter to also handle beta releases
Browse files Browse the repository at this point in the history
Signed-off-by: Tobias Giese <tobias.giese@mercedes-benz.com>
  • Loading branch information
tobiasgiese committed Mar 27, 2024
1 parent 128914b commit 8c37713
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 8 deletions.
4 changes: 2 additions & 2 deletions docs/release/release-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
```bash
make release-notes-tool
./bin/notes --release=${RELEASE_TAG} --pre-release-version > CHANGELOG/${RELEASE_TAG}.md
./bin/notes --release=${RELEASE_TAG} > CHANGELOG/${RELEASE_TAG}.md
```

1. This will generate a new release notes file at `CHANGELOG/<RELEASE_TAG>.md`. Finalize the release notes:
Expand Down
24 changes: 21 additions & 3 deletions hack/tools/release/notes/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ type notesCmdConfig struct {
newTag string
branch string
prefixAreaLabel bool
preReleaseVersion bool
deprecation bool
addKubernetesVersionSupport bool
}
Expand All @@ -67,7 +66,6 @@ func readCmdConfig() *notesCmdConfig {
flag.StringVar(&config.newTag, "release", "", "The tag for the new 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.")

Expand Down Expand Up @@ -103,7 +101,7 @@ 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.releaseType = releaseType(cmd.config.newTag)
printer.printDeprecation = cmd.config.deprecation
printer.printKubernetesSupport = cmd.config.addKubernetesVersionSupport

Expand All @@ -117,6 +115,26 @@ func (cmd *notesCmd) run() error {
return generator.run()
}

func releaseType(newTagConfig string) string {
// Error handling can be ignored as the version has been validated in computeConfigDefaults already.
newTag, _ := semver.ParseTolerant(newTagConfig)

// Return early if it is not a pre release.
if len(newTag.Pre) != 2 {
return ""
}

// Only allow RC and beta releases. More types must be defined here.
// If a new type is not defined, no warning banner will be printed.
switch newTag.Pre[0].VersionStr {
case "rc":
return "RELEASE CANDIDATE"
case "beta":
return "BETA RELEASE"
}
return ""
}

func ensureInstalledDependencies() error {
if !commandExists("gh") {
return errors.New("gh GitHub CLI not available. GitHub CLI is required to be present in the PATH. Refer to https://cli.github.com/ for installation")
Expand Down
6 changes: 3 additions & 3 deletions hack/tools/release/notes/print.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 8c37713

Please sign in to comment.