Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
4a9fa96
Add Microsoft.Extensions.DependencyInjection
arturcic Oct 17, 2019
ff811ea
Add Microsoft.Extensions.Hosting
arturcic Oct 17, 2019
83d002a
Register types in each module
arturcic Oct 20, 2019
8895c6c
refactored ExecCommand and ExecuteCore
arturcic Oct 21, 2019
f3ac0e9
replaced BuildServerList with BuildServerResolver
arturcic Oct 21, 2019
26480d7
moved initialization to CoreModule
arturcic Oct 21, 2019
923f91d
applied code review changes
arturcic Oct 22, 2019
dd892d5
using c#8 using declarations
arturcic Oct 22, 2019
dbac722
code cleanup for GitVersionComputer & GitPrepare
arturcic Oct 22, 2019
df2f486
code cleanup for GitPrepare
arturcic Oct 22, 2019
d7d0dc5
moved the semanticversion classes to folder, made IGitVersionCache DI
arturcic Oct 22, 2019
ec1639e
applied code review changes
arturcic Oct 23, 2019
fb2566f
moving to DI GitVersionFinder, VariableProvider and MetaDataCalculator
arturcic Oct 23, 2019
8e0c12d
moving to DI ConfigurationProvider, GitPreparer
arturcic Oct 23, 2019
d040f41
made GitversionTask DI aware
arturcic Oct 23, 2019
ce1e815
migrate to DI IBaseVersionCalculator
arturcic Oct 23, 2019
9dcce02
migrate to DI NextVersionCalculator
arturcic Oct 23, 2019
901cccc
code cleanup
arturcic Oct 23, 2019
5958435
applied code review changes
arturcic Oct 24, 2019
82a8e33
made GitversionTask DI aware, added GitVersionTaskExecutor
arturcic Oct 24, 2019
433a597
ConfigurationProvider cleanup
arturcic Oct 24, 2019
d572cc7
moving to DI MainlineVersionCalculator
arturcic Oct 24, 2019
dff4e62
using c#8 switch expressions
arturcic Oct 24, 2019
b394a93
moving to DI ConfigInit
arturcic Oct 24, 2019
b243b4d
ConfigInitSteps, made constructor with the same parameters
arturcic Oct 24, 2019
cd1afb1
moving to DI ConfigInit (2), added IConfigInitStepFactory
arturcic Oct 24, 2019
a22fb34
added "?? throw new ArgumentNullException(nameof({field}))" to the i…
arturcic Oct 24, 2019
405cdb3
fix GitPrepare injection
arturcic Oct 24, 2019
ba517dd
moved ConfigInit registration from CoreModule
arturcic Oct 24, 2019
70cb999
introduced ConfigFileLocatorFactory
arturcic Oct 24, 2019
98eebe6
adjusted field names, removed underscore
arturcic Oct 25, 2019
2684c41
code review adjustments
arturcic Oct 25, 2019
7ef3499
code review adjustments
arturcic Oct 25, 2019
02074ed
Moved the `GitVersionTask` and `GitVersionTask.MsBuild` under `GitVer…
arturcic Oct 25, 2019
83ed431
+semver: minor code review adjustments
arturcic Oct 25, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
using c#8 switch expressions
  • Loading branch information
arturcic committed Oct 24, 2019
commit dff4e62c7a0db430c86fd16d56906b4695363706
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,12 @@ protected override StepResult HandleResult(string result, Queue<ConfigInitWizard

private static string GetGVCommand(ProjectVisibility visibility)
{
switch (visibility)
return visibility switch
{
case ProjectVisibility.Public:
return " - ps: gitversion /l console /output buildserver /updateAssemblyInfo";
case ProjectVisibility.Private:
return " - ps: gitversion $env:APPVEYOR_BUILD_FOLDER /l console /output buildserver /updateAssemblyInfo /nofetch /b $env:APPVEYOR_REPO_BRANCH";
default:
return "";
}
ProjectVisibility.Public => " - ps: gitversion /l console /output buildserver /updateAssemblyInfo",
ProjectVisibility.Private => " - ps: gitversion $env:APPVEYOR_BUILD_FOLDER /l console /output buildserver /updateAssemblyInfo /nofetch /b $env:APPVEYOR_REPO_BRANCH",
_ => ""
};
}

private void GenerateBasicConfig(string workingDirectory)
Expand Down
44 changes: 16 additions & 28 deletions src/GitVersionCore/Extensions/AssemblyVersionsGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,42 +9,30 @@ public static string GetAssemblyVersion(
this SemanticVersion sv,
AssemblyVersioningScheme scheme)
{
switch (scheme)
return scheme switch
{
case AssemblyVersioningScheme.Major:
return $"{sv.Major}.0.0.0";
case AssemblyVersioningScheme.MajorMinor:
return $"{sv.Major}.{sv.Minor}.0.0";
case AssemblyVersioningScheme.MajorMinorPatch:
return $"{sv.Major}.{sv.Minor}.{sv.Patch}.0";
case AssemblyVersioningScheme.MajorMinorPatchTag:
return $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}";
case AssemblyVersioningScheme.None:
return null;
default:
throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme));
}
AssemblyVersioningScheme.Major => $"{sv.Major}.0.0.0",
AssemblyVersioningScheme.MajorMinor => $"{sv.Major}.{sv.Minor}.0.0",
AssemblyVersioningScheme.MajorMinorPatch => $"{sv.Major}.{sv.Minor}.{sv.Patch}.0",
AssemblyVersioningScheme.MajorMinorPatchTag => $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}",
AssemblyVersioningScheme.None => null,
_ => throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme))
};
}

public static string GetAssemblyFileVersion(
this SemanticVersion sv,
AssemblyFileVersioningScheme scheme)
{
switch (scheme)
return scheme switch
{
case AssemblyFileVersioningScheme.Major:
return $"{sv.Major}.0.0.0";
case AssemblyFileVersioningScheme.MajorMinor:
return $"{sv.Major}.{sv.Minor}.0.0";
case AssemblyFileVersioningScheme.MajorMinorPatch:
return $"{sv.Major}.{sv.Minor}.{sv.Patch}.0";
case AssemblyFileVersioningScheme.MajorMinorPatchTag:
return $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}";
case AssemblyFileVersioningScheme.None:
return null;
default:
throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme));
}
AssemblyFileVersioningScheme.Major => $"{sv.Major}.0.0.0",
AssemblyFileVersioningScheme.MajorMinor => $"{sv.Major}.{sv.Minor}.0.0",
AssemblyFileVersioningScheme.MajorMinorPatch => $"{sv.Major}.{sv.Minor}.{sv.Patch}.0",
AssemblyFileVersioningScheme.MajorMinorPatchTag => $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}",
AssemblyFileVersioningScheme.None => null,
_ => throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme))
};
}
}
}
19 changes: 7 additions & 12 deletions src/GitVersionCore/IncrementStrategy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,14 @@ public static class IncrementStrategyExtensions
{
public static VersionField ToVersionField(this IncrementStrategy strategy)
{
switch (strategy)
return strategy switch
{
case IncrementStrategy.None:
return VersionField.None;
case IncrementStrategy.Major:
return VersionField.Major;
case IncrementStrategy.Minor:
return VersionField.Minor;
case IncrementStrategy.Patch:
return VersionField.Patch;
default:
throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null);
}
IncrementStrategy.None => VersionField.None,
IncrementStrategy.Major => VersionField.Major,
IncrementStrategy.Minor => VersionField.Minor,
IncrementStrategy.Patch => VersionField.Patch,
_ => throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null)
};
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -104,19 +104,14 @@ public string ToString(string format, IFormatProvider formatProvider = null)

return CommitsSinceTag != null ? CommitsSinceTag.Value.ToString("D" + padding) : string.Empty;
}
switch (format.ToLower())

return format.ToLower() switch
{
case "b":
return CommitsSinceTag.ToString();
case "s":
return $"{CommitsSinceTag}{(string.IsNullOrEmpty(Sha) ? null : ".Sha." + Sha)}".TrimStart('.');
case "f":
return $"{CommitsSinceTag}{(string.IsNullOrEmpty(Branch) ? null : ".Branch." + FormatMetaDataPart(Branch))}{(string.IsNullOrEmpty(Sha) ? null : ".Sha." + Sha)}{(string.IsNullOrEmpty(OtherMetaData) ? null : "." + FormatMetaDataPart(OtherMetaData))}"
.TrimStart('.');
default:
throw new ArgumentException("Unrecognised format", nameof(format));
}
"b" => CommitsSinceTag.ToString(),
"s" => $"{CommitsSinceTag}{(string.IsNullOrEmpty(Sha) ? null : ".Sha." + Sha)}".TrimStart('.'),
"f" => $"{CommitsSinceTag}{(string.IsNullOrEmpty(Branch) ? null : ".Branch." + FormatMetaDataPart(Branch))}{(string.IsNullOrEmpty(Sha) ? null : ".Sha." + Sha)}{(string.IsNullOrEmpty(OtherMetaData) ? null : "." + FormatMetaDataPart(OtherMetaData))}".TrimStart('.'),
_ => throw new ArgumentException("Unrecognised format", nameof(format))
};
}

public static bool operator ==(SemanticVersionBuildMetaData left, SemanticVersionBuildMetaData right)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,16 +166,12 @@ public string ToString(string format, IFormatProvider formatProvider = null)
return Number.HasValue ? FormatLegacy(GetLegacyName(), Number.Value.ToString("D" + padding)) : FormatLegacy(GetLegacyName());
}


switch (format)
return format switch
{
case "t":
return Number.HasValue ? $"{Name}.{Number}" : Name;
case "l":
return Number.HasValue ? FormatLegacy(GetLegacyName(), Number.Value.ToString()) : FormatLegacy(GetLegacyName());
default:
throw new ArgumentException("Unknown format", nameof(format));
}
"t" => (Number.HasValue ? $"{Name}.{Number}" : Name),
"l" => (Number.HasValue ? FormatLegacy(GetLegacyName(), Number.Value.ToString()) : FormatLegacy(GetLegacyName())),
_ => throw new ArgumentException("Unknown format", nameof(format))
};
}

private string FormatLegacy(string tag, string number = "")
Expand Down
17 changes: 7 additions & 10 deletions src/GitVersionCore/VersioningModes/VersioningModeExtension.cs
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
using System;
using System;

namespace GitVersion.VersioningModes
{
public static class VersioningModeExtension
{
public static VersioningModeBase GetInstance(this VersioningMode _this)
{
switch (_this)
return _this switch
{
case VersioningMode.ContinuousDelivery:
return new ContinuousDeliveryMode();
case VersioningMode.ContinuousDeployment:
return new ContinuousDeploymentMode();
default:
throw new ArgumentException("No instance exists for this versioning mode.");
}
VersioningMode.ContinuousDelivery => (VersioningModeBase) new ContinuousDeliveryMode(),
VersioningMode.ContinuousDeployment => new ContinuousDeploymentMode(),
_ => throw new ArgumentException("No instance exists for this versioning mode.")
};
}
}
}
}
11 changes: 4 additions & 7 deletions src/GitVersionExe/ArgumentParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -325,14 +325,11 @@ public Arguments ParseArguments(string[] commandLineArguments)
}

var optionKey = keyAndValue[0].ToLowerInvariant();
switch (optionKey)
arguments.OverrideConfig.TagPrefix = optionKey switch
{
case "tag-prefix":
arguments.OverrideConfig.TagPrefix = keyAndValue[1];
break;
default:
throw new WarningException($"Could not parse /overrideconfig option: {optionKey}. Currently supported only 'tag-prefix' option");
}
"tag-prefix" => keyAndValue[1],
_ => throw new WarningException($"Could not parse /overrideconfig option: {optionKey}. Currently supported only 'tag-prefix' option")
};
}

continue;
Expand Down
16 changes: 6 additions & 10 deletions src/GitVersionTask/FileHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,13 @@ public static void DeleteTempFiles()

public static string GetFileExtension(string language)
{
switch (language)
return language switch
{
case "C#":
return "cs";
case "F#":
return "fs";
case "VB":
return "vb";
default:
throw new ArgumentException($"Unknown language detected: '{language}'");
}
"C#" => "cs",
"F#" => "fs",
"VB" => "vb",
_ => throw new ArgumentException($"Unknown language detected: '{language}'")
};
}

public static void CheckForInvalidFiles(IEnumerable<ITaskItem> compileFiles, string projectFile)
Expand Down