Skip to content

Commit 95e744e

Browse files
committed
Merge pull request #343 from JakeGinnivan/VariableProviderUpdates
Variable provider updates
2 parents 5d86d09 + 33c891a commit 95e744e

File tree

40 files changed

+393
-196
lines changed

40 files changed

+393
-196
lines changed

BREAKING CHANGES.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
v3.0.0
2+
- `AssemblyFileSemVer` variable removed, AssemblyVersioningScheme configuration value makes this variable obsoluete
3+
- `ClassicVersion` variable removed,
4+
- `ClassicVersionWithTag` variable removed, as above
5+
- MSBuild task arguments (AssemblyVersioningScheme, DevelopBranchTag, ReleaseBranchTag, TagPrefix, NextVersion) have been removed, use GitVersionConfig.yaml instead

GitVersion.sln

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitVersionCore.Tests", "Git
1313
EndProject
1414
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3EFFC5D6-88D0-49D9-BB53-E1B7EB49DD45}"
1515
ProjectSection(SolutionItems) = preProject
16+
BREAKING CHANGES.md = BREAKING CHANGES.md
17+
GitVersionConfig.yaml = GitVersionConfig.yaml
1618
LICENSE = LICENSE
1719
README.md = README.md
1820
EndProjectSection

GitVersion.sln.DotSettings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleMistakenCallToGetType_002E2/@EntryIndexedValue">ERROR</s:String>
5555
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleNullReferenceException/@EntryIndexedValue">WARNING</s:String>
5656
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PrivateFieldCanBeConvertedToLocalVariable/@EntryIndexedValue">ERROR</s:String>
57+
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantArgumentName/@EntryIndexedValue">DO_NOT_SHOW</s:String>
5758
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantArgumentNameForLiteralExpression/@EntryIndexedValue">DO_NOT_SHOW</s:String>
5859
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantAssignment/@EntryIndexedValue">ERROR</s:String>
5960
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBaseConstructorCall/@EntryIndexedValue">ERROR</s:String>

GitVersionConfig.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
assembly-versioning-scheme: MajorMinor
2-
next-version: 2.0.0
1+
assembly-versioning-scheme: MajorMinorPatch
2+
next-version: 3.0.0

GitVersionCore.Tests/JsonVersionBuilderTests.Json.approved.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,8 @@
1111
"LegacySemVer":"1.2.3-unstable4",
1212
"LegacySemVerPadded":"1.2.3-unstable0004",
1313
"AssemblySemVer":"1.2.3.0",
14-
"AssemblyFileSemVer":"1.2.3.0",
1514
"FullSemVer":"1.2.3-unstable.4+5",
1615
"InformationalVersion":"1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha",
17-
"ClassicVersion":"1.2.3.5",
18-
"ClassicVersionWithTag":"1.2.3.5-unstable.4",
1916
"BranchName":"feature1",
2017
"Sha":"commitSha",
2118
"NuGetVersionV2":"1.2.3-unstable0004",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"Major":1,
3+
"Minor":2,
4+
"Patch":3,
5+
"PreReleaseTag":"unstable.4",
6+
"PreReleaseTagWithDash":"-unstable.4",
7+
"BuildMetaData":5,
8+
"FullBuildMetaData":"5.Branch.develop.Sha.commitSha",
9+
"MajorMinorPatch":"1.2.3",
10+
"SemVer":"1.2.3-unstable.4",
11+
"LegacySemVer":"1.2.3-unstable4",
12+
"LegacySemVerPadded":"1.2.3-unstable0004",
13+
"AssemblySemVer":"1.2.3.0",
14+
"FullSemVer":"1.2.3-unstable.4+5",
15+
"InformationalVersion":"1.2.3-unstable.4+5.Branch.develop.Sha.commitSha",
16+
"BranchName":"develop",
17+
"Sha":"commitSha",
18+
"NuGetVersionV2":"1.2.3-unstable0004",
19+
"NuGetVersion":"1.2.3-unstable0004"
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"Major":1,
3+
"Minor":2,
4+
"Patch":3,
5+
"PreReleaseTag":"",
6+
"PreReleaseTagWithDash":"",
7+
"BuildMetaData":5,
8+
"FullBuildMetaData":"5.Branch.develop.Sha.commitSha",
9+
"MajorMinorPatch":"1.2.3",
10+
"SemVer":"1.2.3",
11+
"LegacySemVer":"1.2.3",
12+
"LegacySemVerPadded":"1.2.3",
13+
"AssemblySemVer":"1.2.3.0",
14+
"FullSemVer":"1.2.3+5",
15+
"InformationalVersion":"1.2.3+5.Branch.develop.Sha.commitSha",
16+
"BranchName":"develop",
17+
"Sha":"commitSha",
18+
"NuGetVersionV2":"1.2.3",
19+
"NuGetVersion":"1.2.3"
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"Major":1,
3+
"Minor":2,
4+
"Patch":3,
5+
"PreReleaseTag":"unstable.5",
6+
"PreReleaseTagWithDash":"-unstable.5",
7+
"BuildMetaData":5,
8+
"FullBuildMetaData":"5.Branch.develop.Sha.commitSha",
9+
"MajorMinorPatch":"1.2.3",
10+
"SemVer":"1.2.3-unstable.5",
11+
"LegacySemVer":"1.2.3-unstable5",
12+
"LegacySemVerPadded":"1.2.3-unstable0005",
13+
"AssemblySemVer":"1.2.3.0",
14+
"FullSemVer":"1.2.3-unstable.5+4",
15+
"InformationalVersion":"1.2.3-unstable.5+4.Branch.develop.Sha.commitSha",
16+
"BranchName":"develop",
17+
"Sha":"commitSha",
18+
"NuGetVersionV2":"1.2.3-unstable0005",
19+
"NuGetVersion":"1.2.3-unstable0005"
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"Major":1,
3+
"Minor":2,
4+
"Patch":3,
5+
"PreReleaseTag":"",
6+
"PreReleaseTagWithDash":"",
7+
"BuildMetaData":5,
8+
"FullBuildMetaData":"5.Branch.develop.Sha.commitSha",
9+
"MajorMinorPatch":"1.2.3",
10+
"SemVer":"1.2.3.5",
11+
"LegacySemVer":"1.2.3.5",
12+
"LegacySemVerPadded":"1.2.3.5",
13+
"AssemblySemVer":"1.2.3.0",
14+
"FullSemVer":"1.2.3.5",
15+
"InformationalVersion":"1.2.3.5+Branch.develop.Sha.commitSha",
16+
"BranchName":"develop",
17+
"Sha":"commitSha",
18+
"NuGetVersionV2":"1.2.3.5",
19+
"NuGetVersion":"1.2.3.5"
20+
}

GitVersionCore.Tests/VariableProviderTests.cs

Lines changed: 59 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
using System;
2+
using ApprovalTests;
23
using GitVersion;
34
using NUnit.Framework;
4-
using Shouldly;
55

66
[TestFixture]
77
public class VariableProviderTests
88
{
99
[Test]
10-
public void DevelopBranchFormatsSemVerForCiFeed()
10+
public void ProvidesVariablesInContinuousDeliveryModeForPreRelease()
1111
{
1212
var semVer = new SemanticVersion
1313
{
@@ -21,10 +21,66 @@ public void DevelopBranchFormatsSemVerForCiFeed()
2121
semVer.BuildMetaData.Sha = "commitSha";
2222
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
2323

24+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery);
25+
26+
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
27+
}
28+
29+
[Test]
30+
public void ProvidesVariablesInContinuousDeploymentModeForPreRelease()
31+
{
32+
var semVer = new SemanticVersion
33+
{
34+
Major = 1,
35+
Minor = 2,
36+
Patch = 3,
37+
PreReleaseTag = "unstable.4",
38+
BuildMetaData = "5.Branch.develop"
39+
};
40+
41+
semVer.BuildMetaData.Sha = "commitSha";
42+
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
43+
44+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDeployment);
45+
46+
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
47+
}
48+
49+
[Test]
50+
public void ProvidesVariablesInContinuousDeliveryModeForStable()
51+
{
52+
var semVer = new SemanticVersion
53+
{
54+
Major = 1,
55+
Minor = 2,
56+
Patch = 3,
57+
BuildMetaData = "5.Branch.develop"
58+
};
59+
60+
semVer.BuildMetaData.Sha = "commitSha";
61+
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
2462

2563
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDelivery);
2664

27-
vars[VariableProvider.SemVer].ShouldBe("1.2.3.5-unstable");
65+
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
2866
}
2967

68+
[Test]
69+
public void ProvidesVariablesInContinuousDeploymentModeForStable()
70+
{
71+
var semVer = new SemanticVersion
72+
{
73+
Major = 1,
74+
Minor = 2,
75+
Patch = 3,
76+
BuildMetaData = "5.Branch.develop"
77+
};
78+
79+
semVer.BuildMetaData.Sha = "commitSha";
80+
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
81+
82+
var vars = VariableProvider.GetVariablesFor(semVer, AssemblyVersioningScheme.MajorMinorPatch, VersioningMode.ContinuousDeployment);
83+
84+
Approvals.Verify(JsonOutputFormatter.ToJson(vars));
85+
}
3086
}

GitVersionCore/AssemblyVersionsGenerator.cs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,6 @@ public static string GetAssemblyVersion(
2323
}
2424

2525
}
26-
public static string GetAssemblyFileVersion(
27-
this SemanticVersion sv,
28-
AssemblyVersioningScheme scheme)
29-
{
30-
switch (scheme)
31-
{
32-
case AssemblyVersioningScheme.Major:
33-
case AssemblyVersioningScheme.MajorMinor:
34-
case AssemblyVersioningScheme.MajorMinorPatch:
35-
return string.Format("{0}.{1}.{2}.0", sv.Major, sv.Minor, sv.Patch);
36-
case AssemblyVersioningScheme.MajorMinorPatchMetadata:
37-
return string.Format("{0}.{1}.{2}.{3}", sv.Major, sv.Minor, sv.Patch, sv.BuildMetaData.CommitsSinceTag ?? 0);
38-
default:
39-
throw new ArgumentException(string.Format("Unexpected value ({0}).", scheme), "scheme");
40-
}
41-
42-
}
4326

4427
}
4528
}

GitVersionCore/BuildServers/AppVeyor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public override string GenerateSetVersionMessage(string versionToUseForBuildNumb
5151
{
5252
if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.NoContent)
5353
{
54-
var message = String.Format("Request failed. Received HTTP {0}", response.StatusCode);
54+
var message = string.Format("Request failed. Received HTTP {0}", response.StatusCode);
5555
return message;
5656
}
5757
}

GitVersionCore/BuildServers/BuildServerBase.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace GitVersion
22
{
33
using System;
4-
using System.Collections.Generic;
54

65
public abstract class BuildServerBase : IBuildServer
76
{
@@ -10,21 +9,15 @@ public abstract class BuildServerBase : IBuildServer
109
public abstract string GenerateSetVersionMessage(string versionToUseForBuildNumber);
1110
public abstract string[] GenerateSetParameterMessage(string name, string value);
1211

13-
public virtual void WriteIntegration(SemanticVersion semanticVersion, Action<string> writer, Dictionary<string, string> variables)
12+
public virtual void WriteIntegration(Action<string> writer, VersionVariables variables)
1413
{
15-
if (semanticVersion == null)
16-
{
17-
return;
18-
}
19-
2014
if (writer == null)
2115
{
2216
return;
2317
}
2418

2519
writer(string.Format("Executing GenerateSetVersionMessage for '{0}'.", GetType().Name));
26-
// TODO This should come from variable provider
27-
writer(GenerateSetVersionMessage(semanticVersion.ToString("f")));
20+
writer(GenerateSetVersionMessage(variables.FullSemVer));
2821
writer(string.Format("Executing GenerateBuildLogOutput for '{0}'.", GetType().Name));
2922
foreach (var buildParameter in BuildOutputFormatter.GenerateBuildLogOutput(this, variables))
3023
{
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace GitVersion
22
{
33
using System;
4-
using System.Collections.Generic;
54

65
public interface IBuildServer
76
{
@@ -10,7 +9,7 @@ public interface IBuildServer
109
string GenerateSetVersionMessage(string versionToUseForBuildNumber);
1110
string[] GenerateSetParameterMessage(string name, string value);
1211

13-
void WriteIntegration(SemanticVersion semanticVersion, Action<string> writer, Dictionary<string,string> variables);
12+
void WriteIntegration(Action<string> writer, VersionVariables variables);
1413
}
1514

1615
}

GitVersionCore/GitVersionCore.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@
8484
<Compile Include="Helpers\IFileSystem.cs" />
8585
<Compile Include="Helpers\ProcessHelper.cs" />
8686
<Compile Include="LastMinorVersionFinder.cs" />
87+
<Compile Include="OutputVariables\CommitsAsFourthVersionPartFormatter.cs" />
88+
<Compile Include="OutputVariables\VersionVariables.cs" />
8789
<Compile Include="SemanticVersionExtensions.cs" />
8890
<Compile Include="VersioningModes\ContinuousDeliveryMode.cs" />
8991
<Compile Include="VersioningModes\ContinuousDeploymentMode.cs" />
@@ -123,7 +125,6 @@
123125
<Compile Include="OutputFormatters\BuildOutputFormatter.cs" />
124126
<Compile Include="OutputFormatters\JsonOutputFormatter.cs" />
125127
<Compile Include="OutputType.cs" />
126-
<Compile Include="OutputVariables\CiFeedFormatter.cs" />
127128
<Compile Include="OutputVariables\VariableProvider.cs" />
128129
<Compile Include="AssemblyInfo.cs" />
129130
<Compile Include="RepositoryLoader.cs" />

GitVersionCore/OutputFormatters/BuildOutputFormatter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
public static class BuildOutputFormatter
66
{
7-
public static IEnumerable<string> GenerateBuildLogOutput(IBuildServer buildServer, Dictionary<string, string> variables)
7+
public static IEnumerable<string> GenerateBuildLogOutput(IBuildServer buildServer, VersionVariables variables)
88
{
99
var output = new List<string>();
1010

GitVersionCore/OutputFormatters/JsonOutputFormatter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
namespace GitVersion
22
{
3-
using System.Collections.Generic;
43
using System.Linq;
54
using System.Text;
65

76
public static class JsonOutputFormatter
87
{
9-
public static string ToJson(Dictionary<string, string> variables)
8+
public static string ToJson(VersionVariables variables)
109
{
1110
var builder = new StringBuilder();
1211
builder.AppendLine("{");

GitVersionCore/OutputVariables/CiFeedFormatter.cs

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)