Skip to content

Commit 0af2209

Browse files
committed
This changes AssemblyVersioningScheme.MajorMinorPatchMetadata to AssemblyVersioningScheme.MajorMinorPatchTag
The issue with metadata is that it is not part of the semantic version at all, so why are we even allowing it to be put into the assembly version. On the other hand in continuous delivery we promote metadata to the tag to allow the version to change every commit. By using the tag, not the metadata we can create meaningful AssemblySemVer values. Fixes #391
1 parent 9bcb867 commit 0af2209

8 files changed

+56
-55
lines changed

GitVersionCore/AssemblyVersioningScheme.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
public enum AssemblyVersioningScheme
44
{
5-
MajorMinorPatchMetadata,
5+
MajorMinorPatchTag,
66
MajorMinorPatch,
77
MajorMinor,
88
Major

GitVersionCore/AssemblyVersionsGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public static string GetAssemblyVersion(
1616
return string.Format("{0}.{1}.0.0", sv.Major, sv.Minor);
1717
case AssemblyVersioningScheme.MajorMinorPatch:
1818
return string.Format("{0}.{1}.{2}.0", sv.Major, sv.Minor, sv.Patch);
19-
case AssemblyVersioningScheme.MajorMinorPatchMetadata:
20-
return string.Format("{0}.{1}.{2}.{3}", sv.Major, sv.Minor, sv.Patch, sv.BuildMetaData.CommitsSinceTag ?? 0);
19+
case AssemblyVersioningScheme.MajorMinorPatchTag:
20+
return string.Format("{0}.{1}.{2}.{3}", sv.Major, sv.Minor, sv.Patch, sv.PreReleaseTag.Number ?? 0);
2121
default:
2222
throw new ArgumentException(string.Format("Unexpected value ({0}).", scheme), "scheme");
2323
}

GitVersionCore/Configuration/ConfigSerialiser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void Write(Config config, TextWriter writer)
2525

2626
public static void WriteSample(TextWriter writer)
2727
{
28-
writer.WriteLine("# assembly-versioning-scheme: MajorMinorPatchMetadata | MajorMinorPatch | MajorMinor | Major");
28+
writer.WriteLine("# assembly-versioning-scheme: MajorMinorPatchTag | MajorMinorPatch | MajorMinor | Major");
2929
writer.WriteLine("# tag-prefix: '[vV|version-] # regex to match git tag prefix");
3030
writer.WriteLine("# next-version: 1.0.0");
3131
writer.WriteLine("# mode: ContinuousDelivery | ContinuousDeployment");

GitVersionTask.Tests/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major.approved.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using System.Reflection;
44

55
[assembly: AssemblyVersion("2.0.0.0")]
66
[assembly: AssemblyFileVersion("2.3.4.0")]
7-
[assembly: AssemblyInformationalVersion("2.3.4+5.Branch.master.Sha.commitSha")]
7+
[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")]
88
[assembly: ReleaseDate("2014-03-06")]
99

1010
[System.Runtime.CompilerServices.CompilerGenerated]
@@ -24,21 +24,21 @@ static class GitVersionInformation
2424
public static string Major = "2";
2525
public static string Minor = "3";
2626
public static string Patch = "4";
27-
public static string PreReleaseTag = "";
28-
public static string PreReleaseTagWithDash = "";
29-
public static string BuildMetaData = "5";
30-
public static string FullBuildMetaData = "5.Branch.master.Sha.commitSha";
27+
public static string PreReleaseTag = "beta.5";
28+
public static string PreReleaseTagWithDash = "-beta.5";
29+
public static string BuildMetaData = "6";
30+
public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha";
3131
public static string MajorMinorPatch = "2.3.4";
32-
public static string SemVer = "2.3.4";
33-
public static string LegacySemVer = "2.3.4";
34-
public static string LegacySemVerPadded = "2.3.4";
32+
public static string SemVer = "2.3.4-beta.5";
33+
public static string LegacySemVer = "2.3.4-beta5";
34+
public static string LegacySemVerPadded = "2.3.4-beta0005";
3535
public static string AssemblySemVer = "2.0.0.0";
36-
public static string FullSemVer = "2.3.4+5";
37-
public static string InformationalVersion = "2.3.4+5.Branch.master.Sha.commitSha";
36+
public static string FullSemVer = "2.3.4-beta.5+6";
37+
public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha";
3838
public static string BranchName = "master";
3939
public static string Sha = "commitSha";
40-
public static string NuGetVersionV2 = "2.3.4";
41-
public static string NuGetVersion = "2.3.4";
40+
public static string NuGetVersionV2 = "2.3.4-beta0005";
41+
public static string NuGetVersion = "2.3.4-beta0005";
4242

4343
}
4444

GitVersionTask.Tests/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor.approved.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using System.Reflection;
44

55
[assembly: AssemblyVersion("2.3.0.0")]
66
[assembly: AssemblyFileVersion("2.3.4.0")]
7-
[assembly: AssemblyInformationalVersion("2.3.4+5.Branch.master.Sha.commitSha")]
7+
[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")]
88
[assembly: ReleaseDate("2014-03-06")]
99

1010
[System.Runtime.CompilerServices.CompilerGenerated]
@@ -24,21 +24,21 @@ static class GitVersionInformation
2424
public static string Major = "2";
2525
public static string Minor = "3";
2626
public static string Patch = "4";
27-
public static string PreReleaseTag = "";
28-
public static string PreReleaseTagWithDash = "";
29-
public static string BuildMetaData = "5";
30-
public static string FullBuildMetaData = "5.Branch.master.Sha.commitSha";
27+
public static string PreReleaseTag = "beta.5";
28+
public static string PreReleaseTagWithDash = "-beta.5";
29+
public static string BuildMetaData = "6";
30+
public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha";
3131
public static string MajorMinorPatch = "2.3.4";
32-
public static string SemVer = "2.3.4";
33-
public static string LegacySemVer = "2.3.4";
34-
public static string LegacySemVerPadded = "2.3.4";
32+
public static string SemVer = "2.3.4-beta.5";
33+
public static string LegacySemVer = "2.3.4-beta5";
34+
public static string LegacySemVerPadded = "2.3.4-beta0005";
3535
public static string AssemblySemVer = "2.3.0.0";
36-
public static string FullSemVer = "2.3.4+5";
37-
public static string InformationalVersion = "2.3.4+5.Branch.master.Sha.commitSha";
36+
public static string FullSemVer = "2.3.4-beta.5+6";
37+
public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha";
3838
public static string BranchName = "master";
3939
public static string Sha = "commitSha";
40-
public static string NuGetVersionV2 = "2.3.4";
41-
public static string NuGetVersion = "2.3.4";
40+
public static string NuGetVersionV2 = "2.3.4-beta0005";
41+
public static string NuGetVersion = "2.3.4-beta0005";
4242

4343
}
4444

GitVersionTask.Tests/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch.approved.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using System.Reflection;
44

55
[assembly: AssemblyVersion("2.3.4.0")]
66
[assembly: AssemblyFileVersion("2.3.4.0")]
7-
[assembly: AssemblyInformationalVersion("2.3.4+5.Branch.master.Sha.commitSha")]
7+
[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")]
88
[assembly: ReleaseDate("2014-03-06")]
99

1010
[System.Runtime.CompilerServices.CompilerGenerated]
@@ -24,21 +24,21 @@ static class GitVersionInformation
2424
public static string Major = "2";
2525
public static string Minor = "3";
2626
public static string Patch = "4";
27-
public static string PreReleaseTag = "";
28-
public static string PreReleaseTagWithDash = "";
29-
public static string BuildMetaData = "5";
30-
public static string FullBuildMetaData = "5.Branch.master.Sha.commitSha";
27+
public static string PreReleaseTag = "beta.5";
28+
public static string PreReleaseTagWithDash = "-beta.5";
29+
public static string BuildMetaData = "6";
30+
public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha";
3131
public static string MajorMinorPatch = "2.3.4";
32-
public static string SemVer = "2.3.4";
33-
public static string LegacySemVer = "2.3.4";
34-
public static string LegacySemVerPadded = "2.3.4";
32+
public static string SemVer = "2.3.4-beta.5";
33+
public static string LegacySemVer = "2.3.4-beta5";
34+
public static string LegacySemVerPadded = "2.3.4-beta0005";
3535
public static string AssemblySemVer = "2.3.4.0";
36-
public static string FullSemVer = "2.3.4+5";
37-
public static string InformationalVersion = "2.3.4+5.Branch.master.Sha.commitSha";
36+
public static string FullSemVer = "2.3.4-beta.5+6";
37+
public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha";
3838
public static string BranchName = "master";
3939
public static string Sha = "commitSha";
40-
public static string NuGetVersionV2 = "2.3.4";
41-
public static string NuGetVersion = "2.3.4";
40+
public static string NuGetVersionV2 = "2.3.4-beta0005";
41+
public static string NuGetVersion = "2.3.4-beta0005";
4242

4343
}
4444

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using System.Reflection;
44

55
[assembly: AssemblyVersion("2.3.4.5")]
66
[assembly: AssemblyFileVersion("2.3.4.0")]
7-
[assembly: AssemblyInformationalVersion("2.3.4+5.Branch.master.Sha.commitSha")]
7+
[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")]
88
[assembly: ReleaseDate("2014-03-06")]
99

1010
[System.Runtime.CompilerServices.CompilerGenerated]
@@ -24,21 +24,21 @@ static class GitVersionInformation
2424
public static string Major = "2";
2525
public static string Minor = "3";
2626
public static string Patch = "4";
27-
public static string PreReleaseTag = "";
28-
public static string PreReleaseTagWithDash = "";
29-
public static string BuildMetaData = "5";
30-
public static string FullBuildMetaData = "5.Branch.master.Sha.commitSha";
27+
public static string PreReleaseTag = "beta.5";
28+
public static string PreReleaseTagWithDash = "-beta.5";
29+
public static string BuildMetaData = "6";
30+
public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha";
3131
public static string MajorMinorPatch = "2.3.4";
32-
public static string SemVer = "2.3.4";
33-
public static string LegacySemVer = "2.3.4";
34-
public static string LegacySemVerPadded = "2.3.4";
32+
public static string SemVer = "2.3.4-beta.5";
33+
public static string LegacySemVer = "2.3.4-beta5";
34+
public static string LegacySemVerPadded = "2.3.4-beta0005";
3535
public static string AssemblySemVer = "2.3.4.5";
36-
public static string FullSemVer = "2.3.4+5";
37-
public static string InformationalVersion = "2.3.4+5.Branch.master.Sha.commitSha";
36+
public static string FullSemVer = "2.3.4-beta.5+6";
37+
public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha";
3838
public static string BranchName = "master";
3939
public static string Sha = "commitSha";
40-
public static string NuGetVersionV2 = "2.3.4";
41-
public static string NuGetVersion = "2.3.4";
40+
public static string NuGetVersionV2 = "2.3.4-beta0005";
41+
public static string NuGetVersion = "2.3.4-beta0005";
4242

4343
}
4444

GitVersionTask.Tests/AssemblyInfoBuilderTests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ public void VerifyAssemblyVersion_MajorMinorPatch()
6868

6969
[Test]
7070
[MethodImpl(MethodImplOptions.NoInlining)]
71-
public void VerifyAssemblyVersion_MajorMinorPatchMetadata()
71+
public void VerifyAssemblyVersion_MajorMinorPatchTag()
7272
{
73-
VerifyAssemblyVersion(AssemblyVersioningScheme.MajorMinorPatchMetadata);
73+
VerifyAssemblyVersion(AssemblyVersioningScheme.MajorMinorPatchTag);
7474
}
7575

7676
static void VerifyAssemblyVersion(AssemblyVersioningScheme avs)
@@ -80,7 +80,8 @@ static void VerifyAssemblyVersion(AssemblyVersioningScheme avs)
8080
Major = 2,
8181
Minor = 3,
8282
Patch = 4,
83-
BuildMetaData = new SemanticVersionBuildMetaData(5,
83+
PreReleaseTag = "beta.5",
84+
BuildMetaData = new SemanticVersionBuildMetaData(6,
8485
"master", "commitSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z")),
8586
};
8687
var assemblyInfoBuilder = new AssemblyInfoBuilder

0 commit comments

Comments
 (0)