diff --git a/cmd/rp/cmd/run.go b/cmd/rp/cmd/run.go index c29047b..ec11e24 100644 --- a/cmd/rp/cmd/run.go +++ b/cmd/rp/cmd/run.go @@ -86,7 +86,7 @@ func run(cmd *cobra.Command, _ []string) error { logger, flagBranch, conventionalcommits.NewParser(logger), - versioning.SemVerNextVersion, + versioning.SemVer, extraFiles, []updater.NewUpdater{updater.Generic}, ) diff --git a/internal/versioning/semver.go b/internal/versioning/semver.go index 49dc019..e6a58c7 100644 --- a/internal/versioning/semver.go +++ b/internal/versioning/semver.go @@ -10,9 +10,11 @@ import ( "github.com/apricote/releaser-pleaser/internal/git" ) -var _ Strategy = SemVerNextVersion +var SemVer Strategy = semVer{} -func SemVerNextVersion(r git.Releases, versionBump VersionBump, nextVersionType NextVersionType) (string, error) { +type semVer struct{} + +func (s semVer) NextVersion(r git.Releases, versionBump VersionBump, nextVersionType NextVersionType) (string, error) { latest, err := parseSemverWithDefault(r.Latest) if err != nil { return "", fmt.Errorf("failed to parse latest version: %w", err) diff --git a/internal/versioning/semver_test.go b/internal/versioning/semver_test.go index db22c88..702d31c 100644 --- a/internal/versioning/semver_test.go +++ b/internal/versioning/semver_test.go @@ -10,7 +10,7 @@ import ( "github.com/apricote/releaser-pleaser/internal/git" ) -func TestReleases_NextVersion(t *testing.T) { +func TestSemVer_NextVersion(t *testing.T) { type args struct { releases git.Releases versionBump VersionBump @@ -326,7 +326,7 @@ func TestReleases_NextVersion(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, err := SemVerNextVersion(tt.args.releases, tt.args.versionBump, tt.args.nextVersionType) + got, err := SemVer.NextVersion(tt.args.releases, tt.args.versionBump, tt.args.nextVersionType) if !tt.wantErr(t, err, fmt.Sprintf("SemVerNextVersion(Releases(%v, %v), %v, %v)", tt.args.releases.Latest, tt.args.releases.Stable, tt.args.versionBump, tt.args.nextVersionType)) { return } diff --git a/internal/versioning/versioning.go b/internal/versioning/versioning.go index 3bf8138..182983f 100644 --- a/internal/versioning/versioning.go +++ b/internal/versioning/versioning.go @@ -6,7 +6,9 @@ import ( "github.com/apricote/releaser-pleaser/internal/git" ) -type Strategy = func(git.Releases, VersionBump, NextVersionType) (string, error) +type Strategy interface { + NextVersion(git.Releases, VersionBump, NextVersionType) (string, error) +} type VersionBump conventionalcommits.VersionBump diff --git a/releaserpleaser.go b/releaserpleaser.go index 0b1b846..77f81f6 100644 --- a/releaserpleaser.go +++ b/releaserpleaser.go @@ -23,7 +23,7 @@ type ReleaserPleaser struct { logger *slog.Logger targetBranch string commitParser commitparser.CommitParser - nextVersion versioning.Strategy + versioning versioning.Strategy extraFiles []string updaters []updater.NewUpdater } @@ -34,7 +34,7 @@ func New(forge forge.Forge, logger *slog.Logger, targetBranch string, commitPars logger: logger, targetBranch: targetBranch, commitParser: commitParser, - nextVersion: versioningStrategy, + versioning: versioningStrategy, extraFiles: extraFiles, updaters: updaters, } @@ -117,7 +117,7 @@ func (rp *ReleaserPleaser) createPendingRelease(ctx context.Context, pr *release return err } - changelog, err := pr.ChangelogText() + changelogText, err := pr.ChangelogText() if err != nil { return err } @@ -125,7 +125,7 @@ func (rp *ReleaserPleaser) createPendingRelease(ctx context.Context, pr *release // TODO: pre-release & latest logger.DebugContext(ctx, "Creating release on forge") - err = rp.forge.CreateRelease(ctx, *pr.ReleaseCommit, version, changelog, false, true) + err = rp.forge.CreateRelease(ctx, *pr.ReleaseCommit, version, changelogText, false, true) if err != nil { return fmt.Errorf("failed to create release on forge: %w", err) } @@ -163,7 +163,6 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error { if err != nil { return err } - } releases, err := rp.forge.LatestTags(ctx) @@ -223,7 +222,7 @@ func (rp *ReleaserPleaser) runReconcileReleasePR(ctx context.Context) error { versionBump := versioning.BumpFromCommits(analyzedCommits) // TODO: Set version in release pr - nextVersion, err := rp.nextVersion(releases, versionBump, releaseOverrides.NextVersionType) + nextVersion, err := rp.versioning.NextVersion(releases, versionBump, releaseOverrides.NextVersionType) if err != nil { return err }