Skip to content

Commit b8ebe25

Browse files
committed
Get VersionInBranchRegex out of IGitVersionConfiguration
renamed TagPrefix-> TagPrefixPattern
1 parent 120ce11 commit b8ebe25

23 files changed

+78
-102
lines changed

src/GitVersion.App.Tests/ArgumentParserTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ private static IEnumerable<TestCaseData> OverrideConfigWithSingleOptionTestData(
450450
"tag-prefix=sample",
451451
new GitVersionConfiguration
452452
{
453-
TagPrefix = "sample"
453+
TagPrefixPattern = "sample"
454454
}
455455
);
456456
yield return new TestCaseData(
@@ -546,23 +546,23 @@ private static IEnumerable<TestCaseData> OverrideConfigWithMultipleOptionsTestDa
546546
"/overrideconfig tag-prefix=sample /overrideconfig assembly-versioning-scheme=MajorMinor",
547547
new GitVersionConfiguration
548548
{
549-
TagPrefix = "sample",
549+
TagPrefixPattern = "sample",
550550
AssemblyVersioningScheme = AssemblyVersioningScheme.MajorMinor
551551
}
552552
);
553553
yield return new TestCaseData(
554554
"/overrideconfig tag-prefix=sample /overrideconfig assembly-versioning-format=\"{Major}.{Minor}.{Patch}.{env:CI_JOB_ID ?? 0}\"",
555555
new GitVersionConfiguration
556556
{
557-
TagPrefix = "sample",
557+
TagPrefixPattern = "sample",
558558
AssemblyVersioningFormat = "{Major}.{Minor}.{Patch}.{env:CI_JOB_ID ?? 0}"
559559
}
560560
);
561561
yield return new TestCaseData(
562562
"/overrideconfig tag-prefix=sample /overrideconfig assembly-versioning-format=\"{Major}.{Minor}.{Patch}.{env:CI_JOB_ID ?? 0}\" /overrideconfig update-build-number=true /overrideconfig assembly-versioning-scheme=MajorMinorPatchTag /overrideconfig mode=ContinuousDelivery /overrideconfig tag-pre-release-weight=4",
563563
new GitVersionConfiguration
564564
{
565-
TagPrefix = "sample",
565+
TagPrefixPattern = "sample",
566566
AssemblyVersioningFormat = "{Major}.{Minor}.{Patch}.{env:CI_JOB_ID ?? 0}",
567567
UpdateBuildNumber = true,
568568
AssemblyVersioningScheme = AssemblyVersioningScheme.MajorMinorPatchTag,

src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ public void CanReadDefaultDocument()
246246
configuration.AssemblyInformationalFormat.ShouldBe(null);
247247
configuration.Branches["develop"].Label.ShouldBe("alpha");
248248
configuration.Branches["release"].Label.ShouldBe("beta");
249-
configuration.TagPrefix.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
249+
configuration.TagPrefixPattern.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
250250
configuration.NextVersion.ShouldBe(null);
251251
}
252252

@@ -361,7 +361,7 @@ public void ShouldNotOverrideAnythingWhenOverrideConfigIsEmpty()
361361

362362
var expectedConfig = GitFlowConfigurationBuilder.New
363363
.WithNextVersion("1.2.3")
364-
.WithTagPrefix("custom-tag-prefix-from-yml")
364+
.WithTagPrefixPattern("custom-tag-prefix-from-yml")
365365
.Build();
366366
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath);
367367

@@ -370,7 +370,7 @@ public void ShouldNotOverrideAnythingWhenOverrideConfigIsEmpty()
370370
configuration.AssemblyInformationalFormat.ShouldBe(expectedConfig.AssemblyInformationalFormat);
371371
configuration.AssemblyVersioningFormat.ShouldBe(expectedConfig.AssemblyVersioningFormat);
372372
configuration.AssemblyFileVersioningFormat.ShouldBe(expectedConfig.AssemblyFileVersioningFormat);
373-
configuration.TagPrefix.ShouldBe(expectedConfig.TagPrefix);
373+
configuration.TagPrefixPattern.ShouldBe(expectedConfig.TagPrefixPattern);
374374
configuration.NextVersion.ShouldBe(expectedConfig.NextVersion);
375375
configuration.MajorVersionBumpMessage.ShouldBe(expectedConfig.MajorVersionBumpMessage);
376376
configuration.MinorVersionBumpMessage.ShouldBe(expectedConfig.MinorVersionBumpMessage);
@@ -398,7 +398,7 @@ public void ShouldUseDefaultTagPrefixWhenNotSetInConfigFile()
398398
using var _ = this.fileSystem.SetupConfigFile(path: this.repoPath, text: text);
399399
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath);
400400

401-
configuration.TagPrefix.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
401+
configuration.TagPrefixPattern.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
402402
}
403403

404404
[Test]
@@ -408,7 +408,7 @@ public void ShouldUseTagPrefixFromConfigFileWhenProvided()
408408
using var _ = this.fileSystem.SetupConfigFile(path: this.repoPath, text: text);
409409
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath);
410410

411-
configuration.TagPrefix.ShouldBe("custom-tag-prefix-from-yml");
411+
configuration.TagPrefixPattern.ShouldBe("custom-tag-prefix-from-yml");
412412
}
413413

414414
[Test]
@@ -422,7 +422,7 @@ public void ShouldOverrideTagPrefixWithOverrideConfigValue([Values] bool tagPref
422422
};
423423
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath, overrideConfiguration);
424424

425-
configuration.TagPrefix.ShouldBe("tag-prefix-from-override-configuration");
425+
configuration.TagPrefixPattern.ShouldBe("tag-prefix-from-override-configuration");
426426
}
427427

428428
[Test]
@@ -437,7 +437,7 @@ public void ShouldNotOverrideDefaultTagPrefixWhenNotSetInOverrideConfig()
437437

438438
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath, overrideConfiguration);
439439

440-
configuration.TagPrefix.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
440+
configuration.TagPrefixPattern.ShouldBe(RegexPatterns.Configuration.DefaultTagPrefixPattern);
441441
}
442442

443443
[Test]
@@ -451,7 +451,7 @@ public void ShouldNotOverrideTagPrefixFromConfigFileWhenNotSetInOverrideConfig()
451451
};
452452
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath, overrideConfiguration);
453453

454-
configuration.TagPrefix.ShouldBe("custom-tag-prefix-from-yml");
454+
configuration.TagPrefixPattern.ShouldBe("custom-tag-prefix-from-yml");
455455
}
456456

457457
[Test]
@@ -465,6 +465,6 @@ public void ShouldOverrideTagPrefixFromConfigFileWhenSetInOverrideConfig()
465465
};
466466
var configuration = this.configurationProvider.ProvideForDirectory(this.repoPath, overrideConfiguration);
467467

468-
configuration.TagPrefix.ShouldBe("custom-tag-prefix-from-console");
468+
configuration.TagPrefixPattern.ShouldBe("custom-tag-prefix-from-console");
469469
}
470470
}

src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public virtual TConfigurationBuilder WithAssemblyFileVersioningFormat(string? va
131131
return (TConfigurationBuilder)this;
132132
}
133133

134-
public virtual TConfigurationBuilder WithTagPrefix(string? value)
134+
public virtual TConfigurationBuilder WithTagPrefixPattern(string? value)
135135
{
136136
this.tagPrefix = value;
137137
return (TConfigurationBuilder)this;
@@ -339,7 +339,7 @@ public virtual TConfigurationBuilder WithConfiguration(IGitVersionConfiguration
339339
WithAssemblyInformationalFormat(value.AssemblyInformationalFormat);
340340
WithAssemblyVersioningFormat(value.AssemblyVersioningFormat);
341341
WithAssemblyFileVersioningFormat(value.AssemblyFileVersioningFormat);
342-
WithTagPrefix(value.TagPrefix);
342+
WithTagPrefixPattern(value.TagPrefixPattern);
343343
WithVersionInBranchPattern(value.VersionInBranchPattern);
344344
WithNextVersion(value.NextVersion);
345345
WithMajorVersionBumpMessage(value.MajorVersionBumpMessage);
@@ -398,7 +398,7 @@ public virtual IGitVersionConfiguration Build()
398398
AssemblyInformationalFormat = this.assemblyInformationalFormat,
399399
AssemblyVersioningFormat = this.assemblyVersioningFormat,
400400
AssemblyFileVersioningFormat = this.assemblyFileVersioningFormat,
401-
TagPrefix = this.tagPrefix,
401+
TagPrefixPattern = this.tagPrefix,
402402
VersionInBranchPattern = this.versionInBranchPattern,
403403
NextVersion = this.nextVersion,
404404
MajorVersionBumpMessage = this.majorVersionBumpMessage,

src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ private GitFlowConfigurationBuilder()
2020
PatchVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultPatchPattern,
2121
SemanticVersionFormat = ConfigurationConstants.DefaultSemanticVersionFormat,
2222
VersionStrategies = ConfigurationConstants.DefaultVersionStrategies,
23-
TagPrefix = RegexPatterns.Configuration.DefaultTagPrefixPattern,
23+
TagPrefixPattern = RegexPatterns.Configuration.DefaultTagPrefixPattern,
2424
VersionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern,
2525
TagPreReleaseWeight = ConfigurationConstants.DefaultTagPreReleaseWeight,
2626
UpdateBuildNumber = ConfigurationConstants.DefaultUpdateBuildNumber,

src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ private GitHubFlowConfigurationBuilder()
2020
PatchVersionBumpMessage = RegexPatterns.VersionCalculation.DefaultPatchPattern,
2121
SemanticVersionFormat = ConfigurationConstants.DefaultSemanticVersionFormat,
2222
VersionStrategies = ConfigurationConstants.DefaultVersionStrategies,
23-
TagPrefix = RegexPatterns.Configuration.DefaultTagPrefixPattern,
23+
TagPrefixPattern = RegexPatterns.Configuration.DefaultTagPrefixPattern,
2424
VersionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern,
2525
TagPreReleaseWeight = ConfigurationConstants.DefaultTagPreReleaseWeight,
2626
UpdateBuildNumber = ConfigurationConstants.DefaultUpdateBuildNumber,

src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ private TrunkBasedConfigurationBuilder()
2323
VersionStrategies.ConfiguredNextVersion,
2424
VersionStrategies.Mainline
2525
],
26-
TagPrefix = RegexPatterns.Configuration.DefaultTagPrefixPattern,
26+
TagPrefixPattern = RegexPatterns.Configuration.DefaultTagPrefixPattern,
2727
VersionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern,
2828
TagPreReleaseWeight = ConfigurationConstants.DefaultTagPreReleaseWeight,
2929
UpdateBuildNumber = ConfigurationConstants.DefaultUpdateBuildNumber,

src/GitVersion.Configuration/GitVersionConfiguration.cs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using System.Globalization;
2-
using System.Text.RegularExpressions;
32
using GitVersion.Configuration.Attributes;
43
using GitVersion.Core;
5-
using GitVersion.Extensions;
64
using GitVersion.VersionCalculation;
75
using static GitVersion.Configuration.ConfigurationConstants;
86

@@ -41,26 +39,14 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio
4139
[JsonPropertyDescription($"A regular expression which is used to trim Git tags before processing. Defaults to '{RegexPatterns.Configuration.DefaultTagPrefixPattern}'")]
4240
[JsonPropertyDefault(RegexPatterns.Configuration.DefaultTagPrefixPattern)]
4341
[JsonPropertyFormat(Format.Regex)]
44-
public string? TagPrefix { get; internal set; }
42+
public string? TagPrefixPattern { get; internal set; }
4543

4644
[JsonPropertyName("version-in-branch-pattern")]
4745
[JsonPropertyDescription($"A regular expression which is used to determine the version number in the branch name or commit message (e.g., v1.0.0-LTS). Defaults to '{RegexPatterns.Configuration.DefaultVersionInBranchPattern}'.")]
4846
[JsonPropertyDefault(RegexPatterns.Configuration.DefaultVersionInBranchPattern)]
4947
[JsonPropertyFormat(Format.Regex)]
5048
public string? VersionInBranchPattern { get; internal set; }
5149

52-
[JsonIgnore]
53-
public Regex VersionInBranchRegex
54-
=> versionInBranchRegex ??= RegexPatterns.Cache.GetOrAdd(GetVersionInBranchPattern());
55-
private Regex? versionInBranchRegex;
56-
57-
private string GetVersionInBranchPattern()
58-
{
59-
var versionInBranchPattern = VersionInBranchPattern;
60-
if (versionInBranchPattern.IsNullOrEmpty()) versionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchPattern;
61-
return $"^{versionInBranchPattern.TrimStart('^')}";
62-
}
63-
6450
[JsonPropertyName("next-version")]
6551
[JsonPropertyDescription("Allows you to bump the next version explicitly. Useful for bumping main or a feature branch with breaking changes")]
6652
public string? NextVersion

src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDyn
205205

206206
var cacheDirectoryTimestamp = this.fileSystem.GetLastDirectoryWrite(cacheDirectory);
207207

208-
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefix("prefix").Build();
208+
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefixPattern("prefix").Build();
209209
var overrideConfiguration = new ConfigurationHelper(configuration).Dictionary;
210210

211211
gitVersionOptions = new() { WorkingDirectory = fixture.RepositoryPath, ConfigurationInfo = { OverrideConfiguration = overrideConfiguration } };

src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,14 +208,14 @@ public void CanSpecifyTagPrefixes()
208208
fixture.Repository.MakeATaggedCommit(taggedVersion);
209209
fixture.Repository.MakeCommits(5);
210210

211-
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefix("version-").Build();
211+
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefixPattern("version-").Build();
212212
fixture.AssertFullSemver("1.0.4-5", configuration);
213213
}
214214

215215
[Test]
216216
public void CanSpecifyTagPrefixesAsRegex()
217217
{
218-
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefix($"version-|{RegexPatterns.Configuration.DefaultTagPrefixPattern}").Build();
218+
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefixPattern($"version-|{RegexPatterns.Configuration.DefaultTagPrefixPattern}").Build();
219219
using var fixture = new EmptyRepositoryFixture();
220220
var taggedVersion = "v1.0.3";
221221
fixture.Repository.MakeATaggedCommit(taggedVersion);
@@ -233,7 +233,7 @@ public void CanSpecifyTagPrefixesAsRegex()
233233
[Test]
234234
public void AreTagsNotAdheringToTagPrefixIgnored()
235235
{
236-
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefix("").Build();
236+
var configuration = GitFlowConfigurationBuilder.New.WithTagPrefixPattern("").Build();
237237
using var fixture = new EmptyRepositoryFixture();
238238
var taggedVersion = "version-1.0.3";
239239
fixture.Repository.MakeATaggedCommit(taggedVersion);

src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void CanUseCommitMessagesToBumpVersion_TagsTakePriorityOnlyIfVersions(
2222
string expectedVersionAfterNewCommit)
2323
{
2424
var configuration = GitFlowConfigurationBuilder.New
25-
.WithTagPrefix(tagPrefix)
25+
.WithTagPrefixPattern(tagPrefix)
2626
.Build();
2727

2828
using var fixture = new EmptyRepositoryFixture();
@@ -61,7 +61,7 @@ public void CanUseCommitMessagesToBumpVersion_TagsTakePriorityOnlyIfVersions(
6161
[TestCase("prefix", "bar", "2.1.0-1", "2.0.0-bar.1+1", ExpectedResult = "2.0.0-bar.1+1")]
6262
public string WhenTaggingACommitAsPreRelease(string tagPrefix, string? label, string tag, string expectedVersion)
6363
{
64-
var configuration = GitFlowConfigurationBuilder.New.WithLabel(null).WithTagPrefix(tagPrefix)
64+
var configuration = GitFlowConfigurationBuilder.New.WithLabel(null).WithTagPrefixPattern(tagPrefix)
6565
.WithBranch("main", b => b.WithLabel(label).WithDeploymentMode(DeploymentMode.ManualDeployment))
6666
.Build();
6767

0 commit comments

Comments
 (0)