diff --git a/cmd/rp/cmd/root.go b/cmd/rp/cmd/root.go index dd4f9a7..be92187 100644 --- a/cmd/rp/cmd/root.go +++ b/cmd/rp/cmd/root.go @@ -1,6 +1,7 @@ package cmd import ( + "fmt" "log/slog" "os" "runtime/debug" @@ -23,6 +24,7 @@ func version() string { buildInfo, ok := debug.ReadBuildInfo() if ok { + fmt.Println(buildInfo.String()) for _, setting := range buildInfo.Settings { switch setting.Key { case "vcs.revision": diff --git a/releasepr.go b/releasepr.go index e177010..a6744c4 100644 --- a/releasepr.go +++ b/releasepr.go @@ -59,8 +59,9 @@ func NewReleasePullRequest(head, branch, version, changelogEntry string) (*Relea } type ReleaseOverrides struct { - Prefix string - Suffix string + Prefix string + Suffix string + // TODO: Doing the changelog for normal releases after previews requires to know about this while fetching the commits NextVersionType NextVersionType } @@ -91,17 +92,6 @@ func (n NextVersionType) String() string { } } -func (n NextVersionType) IsPrerelease() bool { - switch n { - case NextVersionTypeRC, NextVersionTypeBeta, NextVersionTypeAlpha: - return true - case NextVersionTypeUndefined, NextVersionTypeNormal: - return false - default: - return false - } -} - // Label is the string identifier of a pull/merge request label on the forge. type Label string diff --git a/releaserpleaser.go b/releaserpleaser.go index f0bf6cd..5dfcf12 100644 --- a/releaserpleaser.go +++ b/releaserpleaser.go @@ -143,27 +143,6 @@ func (rp *ReleaserPleaser) createPendingRelease(ctx context.Context, pr *Release func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error { logger := rp.logger.With("method", "runReconcileReleasePR") - rpBranch := fmt.Sprintf(PullRequestBranchFormat, rp.targetBranch) - rpBranchRef := plumbing.NewBranchReferenceName(rpBranch) - - pr, err := rp.forge.PullRequestForBranch(ctx, rpBranch) - if err != nil { - return err - } - - var releaseOverrides ReleaseOverrides - - if pr != nil { - logger = logger.With("pr.id", pr.ID, "pr.title", pr.Title) - logger.InfoContext(ctx, "found existing release pull request") - - releaseOverrides, err = pr.GetOverrides() - if err != nil { - return err - } - - } - releases, err := rp.forge.LatestTags(ctx) if err != nil { return err @@ -178,15 +157,7 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error { logger.InfoContext(ctx, "no latest tag found") } - // By default, we want to show everything that has happened since the last stable release - lastReleaseCommit := releases.Stable - if releaseOverrides.NextVersionType.IsPrerelease() { - // if the new release will be a prerelease, - // only show changes since the latest release (stable or prerelease) - lastReleaseCommit = releases.Latest - } - - releasableCommits, err := rp.forge.CommitsSince(ctx, lastReleaseCommit) + releasableCommits, err := rp.forge.CommitsSince(ctx, releases.Stable) if err != nil { return err } @@ -201,6 +172,22 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error { logger.InfoContext(ctx, "Analyzed commits", "length", len(analyzedCommits)) + rpBranch := fmt.Sprintf(PullRequestBranchFormat, rp.targetBranch) + rpBranchRef := plumbing.NewBranchReferenceName(rpBranch) + // Check Forge for open PR + // Get any modifications from open PR + // Clone Repo + // Run Updaters + Changelog + // Upsert PR + pr, err := rp.forge.PullRequestForBranch(ctx, rpBranch) + if err != nil { + return err + } + + if pr != nil { + logger.InfoContext(ctx, "found existing release pull request", "pr.id", pr.ID, "pr.title", pr.Title) + } + if len(analyzedCommits) == 0 { if pr != nil { logger.InfoContext(ctx, "closing existing pull requests, no commits available", "pr.id", pr.ID, "pr.title", pr.Title) @@ -215,6 +202,14 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error { return nil } + var releaseOverrides ReleaseOverrides + if pr != nil { + releaseOverrides, err = pr.GetOverrides() + if err != nil { + return err + } + } + versionBump := VersionBumpFromCommits(analyzedCommits) // TODO: Set version in release pr nextVersion, err := rp.nextVersion(releases, versionBump, releaseOverrides.NextVersionType)