Skip to content

Commit 2e113e4

Browse files
author
Oren Novotny
committed
Add configuration for padding
1 parent bdf9140 commit 2e113e4

File tree

7 files changed

+29
-6
lines changed

7 files changed

+29
-6
lines changed

src/GitVersionCore.Tests/ConfigProviderTests.CanWriteOutEffectiveConfiguration.approved.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ continuous-delivery-fallback-tag: ci
55
major-version-bump-message: '\+semver:\s?(breaking|major)'
66
minor-version-bump-message: '\+semver:\s?(feature|minor)'
77
patch-version-bump-message: '\+semver:\s?(fix|patch)'
8+
legacy-semver-padding: 4
9+
build-metadata-padding: 4
810
commit-message-incrementing: Enabled
911
branches:
1012
master:

src/GitVersionCore.Tests/TestEffectiveConfiguration.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ public TestEffectiveConfiguration(
1818
string majorMessage = null,
1919
string minorMessage = null,
2020
string patchMessage = null,
21-
CommitMessageIncrementMode commitMessageMode = CommitMessageIncrementMode.Enabled) :
21+
CommitMessageIncrementMode commitMessageMode = CommitMessageIncrementMode.Enabled,
22+
int legacySemVerPadding = 4,
23+
int buildMetaDataPadding = 4) :
2224
base(assemblyVersioningScheme, versioningMode, gitTagPrefix, tag, nextVersion, IncrementStrategy.Patch,
2325
branchPrefixToTrim, preventIncrementForMergedBranchVersion, tagNumberPattern, continuousDeploymentFallbackTag,
2426
trackMergeTarget,
2527
majorMessage, minorMessage, patchMessage,
26-
commitMessageMode)
28+
commitMessageMode, legacySemVerPadding, buildMetaDataPadding)
2729
{
2830
}
2931
}

src/GitVersionCore/Configuration/Config.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ public class Config
3232
[YamlMember(Alias = "patch-version-bump-message")]
3333
public string PatchVersionBumpMessage { get; set; }
3434

35+
[YamlMember(Alias = "legacy-semver-padding")]
36+
public int? LegacySemVerPadding { get; set; }
37+
38+
[YamlMember(Alias = "build-metadata-padding")]
39+
public int? BuildMetaDataPadding { get; set; }
40+
3541
[YamlMember(Alias = "commit-message-incrementing")]
3642
public CommitMessageIncrementMode? CommitMessageIncrementing { get; set; }
3743

src/GitVersionCore/Configuration/ConfigurationProvider.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public static void ApplyDefaultsTo(Config config)
2828
config.MinorVersionBumpMessage = config.MinorVersionBumpMessage ?? IncrementStrategyFinder.DefaultMinorPattern;
2929
config.PatchVersionBumpMessage = config.PatchVersionBumpMessage ?? IncrementStrategyFinder.DefaultPatchPattern;
3030
config.CommitMessageIncrementing = config.CommitMessageIncrementing ?? CommitMessageIncrementMode.Enabled;
31+
config.LegacySemVerPadding = config.LegacySemVerPadding ?? 4;
32+
config.BuildMetaDataPadding = config.BuildMetaDataPadding ?? 4;
33+
3134
var configBranches = config.Branches.ToList();
3235

3336
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "master"), defaultTag: string.Empty, defaultPreventIncrement: true);

src/GitVersionCore/EffectiveConfiguration.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ public EffectiveConfiguration(
1717
string majorVersionBumpMessage,
1818
string minorVersionBumpMessage,
1919
string patchVersionBumpMessage,
20-
CommitMessageIncrementMode commitMessageIncrementing)
20+
CommitMessageIncrementMode commitMessageIncrementing,
21+
int legacySemVerPaddding,
22+
int buildMetaDataPadding
23+
)
2124
{
2225
AssemblyVersioningScheme = assemblyVersioningScheme;
2326
VersioningMode = versioningMode;
@@ -34,6 +37,8 @@ public EffectiveConfiguration(
3437
MinorVersionBumpMessage = minorVersionBumpMessage;
3538
PatchVersionBumpMessage = patchVersionBumpMessage;
3639
CommitMessageIncrementing = commitMessageIncrementing;
40+
LegacySemVerPadding = legacySemVerPaddding;
41+
BuildMetaDataPadding = buildMetaDataPadding;
3742
}
3843

3944
public VersioningMode VersioningMode { get; private set; }
@@ -70,6 +75,9 @@ public EffectiveConfiguration(
7075

7176
public string PatchVersionBumpMessage { get; private set; }
7277

78+
public int LegacySemVerPadding { get; private set; }
79+
public int BuildMetaDataPadding { get; private set; }
80+
7381
public CommitMessageIncrementMode CommitMessageIncrementing { get; private set; }
7482
}
7583
}

src/GitVersionCore/GitVersionContext.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ void CalculateEffectiveConfiguration()
117117
tagNumberPattern, configuration.ContinuousDeploymentFallbackTag,
118118
trackMergeTarget,
119119
majorMessage, minorMessage, patchMessage,
120-
commitMessageVersionBump);
120+
commitMessageVersionBump,
121+
configuration.LegacySemVerPadding.Value,
122+
configuration.BuildMetaDataPadding.Value);
121123
}
122124
}
123125
}

src/GitVersionCore/OutputVariables/VariableProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ public static VersionVariables GetVariablesFor(SemanticVersion semanticVersion,
2525
preReleaseTag: semanticVersion.PreReleaseTag,
2626
preReleaseTagWithDash: semanticVersion.PreReleaseTag.HasTag() ? "-" + semanticVersion.PreReleaseTag : null,
2727
buildMetaData: semanticVersion.BuildMetaData,
28-
buildMetaDataPadded: semanticVersion.BuildMetaData.ToString("p"),
28+
buildMetaDataPadded: semanticVersion.BuildMetaData.ToString("p" + config.BuildMetaDataPadding),
2929
fullBuildMetaData: semanticVersion.BuildMetaData.ToString("f"),
3030
majorMinorPatch: string.Format("{0}.{1}.{2}", semanticVersion.Major, semanticVersion.Minor, semanticVersion.Patch),
3131
semVer: semanticVersion.ToString(),
3232
legacySemVer: semanticVersion.ToString("l"),
33-
legacySemVerPadded: semanticVersion.ToString("lp"),
33+
legacySemVerPadded: semanticVersion.ToString("lp" + config.LegacySemVerPadding),
3434
assemblySemVer: semanticVersion.GetAssemblyVersion(config.AssemblyVersioningScheme),
3535
fullSemVer: semanticVersion.ToString("f"),
3636
informationalVersion: semanticVersion.ToString("i"),

0 commit comments

Comments
 (0)