Skip to content

Support non-tag based krel release-notes workflow #4126

@Vyom-Yadav

Description

@Vyom-Yadav

What would you like to be added:

Add support for workflow based on the state of git tree and not just the tag. Since force pushing to Kubernetes master is very rare, there won't be any overwritten commits. So, 'commit to commit' tracking can be possibly done.

This would basically mean changes to this function:

// gatherNotesFrom gathers all the release notes from the specified startTag up to --tag.
func gatherNotesFrom(repoPath, startTag string) (*notes.ReleaseNotes, error) {
logrus.Infof("Gathering release notes from %s to %s", startTag, releaseNotesOpts.tag)
notesOptions := options.New()
notesOptions.Branch = git.DefaultBranch
notesOptions.RepoPath = repoPath
notesOptions.StartRev = startTag
notesOptions.EndRev = releaseNotesOpts.tag
notesOptions.Debug = logrus.StandardLogger().Level >= logrus.DebugLevel
notesOptions.MapProviderStrings = releaseNotesOpts.mapProviders
notesOptions.ListReleaseNotesV2 = releaseNotesOpts.listReleaseNotesV2
notesOptions.AddMarkdownLinks = true
notesOptions.IncludeLabels = releaseNotesOpts.includeLabels
if err := notesOptions.ValidateAndFinish(); err != nil {
return nil, err
}
logrus.Infof("Using start tag %v", startTag)
logrus.Infof("Using end tag %v", releaseNotesOpts.tag)
// Fetch the notes
releaseNotes, err := notes.GatherReleaseNotes(notesOptions)
if err != nil {
return nil, fmt.Errorf("gathering release notes: %w", err)
}
return releaseNotes, nil
}

Have the existing option to define 'until' using a tag or a commit.

krel would be required to store the state of the last processed commit in the session file as a caching mechanism.

Why is this needed:

Currently, the krel release-notes generation is conditional on a tag for that version being present in the upstream Kubernetes repository.

This causes a delay in the release notes generation as the docs subteam in the Kubernetes release team can't start the generation of release notes until the tag is published, which happens when that version of Kubernetes is published.

Having this feature would allow the docs team to start the release notes generation earlier.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/release-engIssues or PRs related to the Release Engineering subprojectkind/featureCategorizes issue or PR as related to a new feature.needs-prioritysig/releaseCategorizes an issue or PR as relevant to SIG Release.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions