Skip to content

Commit 2ed60e6

Browse files
committed
refactor(GitVersion.Core): assign 'default' constants to their properties
1 parent 8735837 commit 2ed60e6

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

src/GitVersion.Core/Configuration/GitVersionConfiguration.cs

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@
77

88
namespace GitVersion.Configuration;
99

10+
/// <summary>
11+
/// GitVersion's Configuration definition.
12+
/// </summary>
13+
/// <remarks>
14+
/// Default values are defined as constants in <see
15+
/// cref="ConfigurationConstants" /> and then assigned to their respective
16+
/// fields and properties. This is so each compile-time constant value can
17+
/// be assigned to a property and the property's attribute(s).
18+
/// </remarks>
1019
internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersionConfiguration
1120
{
1221
[JsonPropertyName("workflow")]
@@ -16,22 +25,22 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio
1625
[JsonPropertyName("assembly-versioning-scheme")]
1726
[JsonPropertyDescription($"The scheme to use when setting AssemblyVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'. Defaults to '{NameOfDefaultAssemblyVersioningScheme}'.")]
1827
[JsonPropertyDefault(DefaultAssemblyVersioningScheme)]
19-
public AssemblyVersioningScheme? AssemblyVersioningScheme { get; internal set; }
28+
public AssemblyVersioningScheme? AssemblyVersioningScheme { get; internal set; } = DefaultAssemblyVersioningScheme;
2029

2130
[JsonPropertyName("assembly-file-versioning-scheme")]
2231
[JsonPropertyDescription($"The scheme to use when setting AssemblyFileVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'. Defaults to {NameOfDefaultAssemblyFileVersioningScheme}")]
2332
[JsonPropertyDefault(DefaultAssemblyFileVersioningScheme)]
24-
public AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; internal set; }
33+
public AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; internal set; } = DefaultAssemblyFileVersioningScheme;
2534

2635
[JsonPropertyName("assembly-informational-format")]
2736
[JsonPropertyDescription($"Specifies the format of AssemblyInformationalVersion. The defaults to '{DefaultAssemblyInformationalFormat}'.")]
2837
[JsonPropertyDefault(DefaultAssemblyInformationalFormat)]
29-
public string? AssemblyInformationalFormat { get; internal set; }
38+
public string? AssemblyInformationalFormat { get; internal set; } = DefaultAssemblyInformationalFormat;
3039

3140
[JsonPropertyName("assembly-versioning-format")]
3241
[JsonPropertyDescription("Specifies the format of AssemblyVersion and overwrites the value of assembly-versioning-scheme.")]
3342
[JsonPropertyDefault(DefaultAssemblyVersioningFormat)]
34-
public string? AssemblyVersioningFormat { get; internal set; }
43+
public string? AssemblyVersioningFormat { get; internal set; } = DefaultAssemblyVersioningFormat;
3544

3645
[JsonPropertyName("assembly-file-versioning-format")]
3746
[JsonPropertyDescription("Specifies the format of AssemblyFileVersion and overwrites the value of assembly-file-versioning-scheme.")]
@@ -55,7 +64,7 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio
5564
private string GetVersionInBranchPattern()
5665
{
5766
var versionInBranchPattern = VersionInBranchPattern;
58-
if (versionInBranchPattern.IsNullOrEmpty()) versionInBranchPattern = ConfigurationConstants.DefaultVersionInBranchPattern;
67+
if (versionInBranchPattern.IsNullOrEmpty()) versionInBranchPattern = DefaultVersionInBranchPattern;
5968
return $"^{versionInBranchPattern.TrimStart('^')}";
6069
}
6170

@@ -74,34 +83,34 @@ public string? NextVersion
7483
[JsonPropertyName("major-version-bump-message")]
7584
[JsonPropertyDescription($"The regular expression to match commit messages with to perform a major version increment. Default set to '{IncrementStrategyFinder.DefaultMajorPattern}'")]
7685
[JsonPropertyDefault(IncrementStrategyFinder.DefaultMajorPattern, true)]
77-
public string? MajorVersionBumpMessage { get; internal set; }
86+
public string? MajorVersionBumpMessage { get; internal set; } = IncrementStrategyFinder.DefaultMajorPattern;
7887

7988
[JsonPropertyName("minor-version-bump-message")]
8089
[JsonPropertyDescription($"The regular expression to match commit messages with to perform a minor version increment. Default set to '{IncrementStrategyFinder.DefaultMinorPattern}'")]
8190
[JsonPropertyDefault(IncrementStrategyFinder.DefaultMinorPattern, true)]
82-
public string? MinorVersionBumpMessage { get; internal set; }
91+
public string? MinorVersionBumpMessage { get; internal set; } = IncrementStrategyFinder.DefaultMinorPattern;
8392

8493
[JsonPropertyName("patch-version-bump-message")]
8594
[JsonPropertyDescription($"The regular expression to match commit messages with to perform a patch version increment. Default set to '{IncrementStrategyFinder.DefaultPatchPattern}'")]
8695
[JsonPropertyDefault(IncrementStrategyFinder.DefaultPatchPattern, true)]
87-
public string? PatchVersionBumpMessage { get; internal set; }
96+
public string? PatchVersionBumpMessage { get; internal set; } = IncrementStrategyFinder.DefaultPatchPattern;
8897

8998
[JsonPropertyName("no-bump-message")]
9099
[JsonPropertyDescription($"Used to tell GitVersion not to increment when in Mainline development mode. Default set to '{IncrementStrategyFinder.DefaultNoBumpPattern}'")]
91100
[JsonPropertyDefault(IncrementStrategyFinder.DefaultNoBumpPattern, true)]
92-
public string? NoBumpMessage { get; internal set; }
101+
public string? NoBumpMessage { get; internal set; } = IncrementStrategyFinder.DefaultNoBumpPattern;
93102

94103
[JsonPropertyName("tag-pre-release-weight")]
95104
[JsonPropertyDescription($"The pre-release weight in case of tagged commits. Defaults to {StringDefaultTagReleaseWeight}.")]
96-
public int? TagPreReleaseWeight { get; internal set; }
105+
public int? TagPreReleaseWeight { get; internal set; } = DefaultTagReleaseWeight;
97106

98107
[JsonPropertyName("commit-date-format")]
99108
[JsonPropertyDescription($"The format to use when calculating the commit date. Defaults to '{DefaultCommitDateFormat}'. See [Standard Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings) and [Custom Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings).")]
100109
[JsonPropertyDefault(DefaultCommitDateFormat, true)]
101110
#if NET7_0_OR_GREATER
102111
[System.Diagnostics.CodeAnalysis.StringSyntax("DateTimeFormat")] // See https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.codeanalysis.stringsyntaxattribute, https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.codeanalysis.stringsyntaxattribute.datetimeformat?view=net-7.0#system-diagnostics-codeanalysis-stringsyntaxattribute-datetimeformat
103112
#endif
104-
public string? CommitDateFormat { get; internal set; }
113+
public string? CommitDateFormat { get; internal set; } = DefaultCommitDateFormat;
105114

106115
[JsonPropertyName("merge-message-formats")]
107116
[JsonPropertyDescription("Custom merge message formats to enable identification of merge messages that do not follow the built-in conventions.")]
@@ -113,12 +122,12 @@ public string? NextVersion
113122
[JsonPropertyName("update-build-number")]
114123
[JsonPropertyDescription($"Whether to update the build number in the project file. Defaults to {StringDefaultUpdateBuildNumber}.")]
115124
[JsonPropertyDefault(DefaultUpdateBuildNumber)]
116-
public bool UpdateBuildNumber { get; internal set; }
125+
public bool UpdateBuildNumber { get; internal set; } = DefaultUpdateBuildNumber;
117126

118127
[JsonPropertyName("semantic-version-format")]
119128
[JsonPropertyDescription($"Specifies the semantic version format that is used when parsing the string. Can be 'Strict' or 'Loose'. Defaults to '{StringDefaultSemanticVersionFormat}'.")]
120129
[JsonPropertyDefault(DefaultSemanticVersionFormat)]
121-
public SemanticVersionFormat SemanticVersionFormat { get; internal set; }
130+
public SemanticVersionFormat SemanticVersionFormat { get; internal set; } = DefaultSemanticVersionFormat;
122131

123132
[JsonIgnore]
124133
IReadOnlyDictionary<string, IBranchConfiguration> IGitVersionConfiguration.Branches

0 commit comments

Comments
 (0)