-
Notifications
You must be signed in to change notification settings - Fork 657
Closed
Labels
Milestone
Description
Describe the bug
I am using commit message increase with Mainline
mode. The commit message contains +semver:minor
. The minor version increases in the pull request but CommitsSinceVersionSource
does not count from latest tag.
Expected Behavior
CommitsSinceVersionSource
counts from latest tag.
Actual Behavior
CommitsSinceVersionSource
counts from latest minor tag or first ever tag.
Possible Fix
Steps to Reproduce
[Test]
public void Under1PlusMinor()
{
var configuration = GetMainlineModeConfiguration();
using var fixture = new EmptyRepositoryFixture();
fixture.Repository.MakeACommit();
fixture.Repository.MakeATaggedCommit("0.1.0");
fixture.Repository.MakeACommit();
fixture.Repository.MakeACommit();
fixture.Repository.MakeATaggedCommit("0.1.1");
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("feature/12345-test"));
fixture.Repository.MakeACommit("two +semver:minor");
fixture.Repository.MakeACommit("three");
fixture.Repository.CreatePullRequestRef("feature/12345-test", MainBranch, normalise: true);
fixture.Repository.DumpGraph();
fixture.AssertFullSemver("0.2.0-PullRequest2.3", configuration);
}
private static IGitVersionConfiguration GetMainlineModeConfiguration() => GitHubFlowConfigurationBuilder.New
.WithBranch(MainBranch, builder => builder.WithVersioningMode(VersioningMode.Mainline))
.Build();
Context
It does not block me because after the pull request is merged and all patch versions have correct CommitsSinceVersionSource
until next minor/major.
Below test shows that after minor version is merged and following patch version have the correct CommitsSinceVersionSource
.
[Test]
public void Under1PlusMinorThenPatch()
{
var configuration = GetMainlineModeConfiguration();
using var fixture = new EmptyRepositoryFixture();
fixture.Repository.MakeACommit();
fixture.Repository.MakeATaggedCommit("0.1.0");
fixture.Repository.MakeACommit();
fixture.Repository.MakeACommit();
fixture.Repository.MakeATaggedCommit("0.1.1");
var feature12345 = fixture.Repository.CreateBranch("feature/12345-test");
Commands.Checkout(fixture.Repository, feature12345);
fixture.Repository.MakeACommit("two +semver:minor");
fixture.Repository.MakeACommit("three");
var pullRequestRef1 = fixture.Repository.CreatePullRequestRef("feature/12345-test", MainBranch, normalise: true);
Commands.Checkout(fixture.Repository, MainBranch);
var merge = fixture.Repository.Merge(pullRequestRef1, Generate.SignatureNow(), new MergeOptions(){CommitOnSuccess = true});
fixture.Repository.Tags.Add("0.2.0", merge.Commit);
var feature54321 = fixture.Repository.CreateBranch("feature/54321-test");
Commands.Checkout(fixture.Repository, feature54321);
fixture.Repository.MakeACommit("four");
fixture.Repository.CreatePullRequestRef("feature/54321-test", MainBranch, normalise: true, prNumber: 3);
fixture.Repository.DumpGraph();
fixture.AssertFullSemver("0.2.1-PullRequest3.2", configuration);
}
private static IGitVersionConfiguration GetMainlineModeConfiguration() => GitHubFlowConfigurationBuilder.New
.WithBranch(MainBranch, builder => builder.WithVersioningMode(VersioningMode.Mainline))
.Build();
Your Environment
Azure DevOps but also locally.
- Version Used: 6.0.0-beta.3
- Operating System and version (Windows 10, Ubuntu 18.04): Windows 11, Ubuntu 22.04
- Link to your project:
- Link to your CI build (if appropriate):