Skip to content

Commit fcc8dde

Browse files
committed
refactor(configuration): Remove custom VersionStrategies parsing
Leverage SharpYaml's native deserialization for enum arrays, simplifying configuration and enforcing standard YAML array format for strategies.
1 parent c5f68b2 commit fcc8dde

6 files changed

Lines changed: 4 additions & 140 deletions

File tree

src/GitVersion.App.Tests/ArgumentParserTests.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -530,13 +530,6 @@ private static IEnumerable<TestCaseData> OverrideConfigWithSingleOptionTestData(
530530
UpdateBuildNumber = true
531531
}
532532
);
533-
yield return new TestCaseData(
534-
"strategies=[\"None\",\"Mainline\"]",
535-
new GitVersionConfiguration
536-
{
537-
VersionStrategies = [VersionStrategies.None, VersionStrategies.Mainline]
538-
}
539-
);
540533
}
541534

542535
[TestCaseSource(nameof(OverrideConfigWithMultipleOptionsTestData))]

src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ public void WhenBadDateFormatShouldFail()
7474
}
7575

7676
[Test]
77-
public void ShouldSupportScalarVersionStrategiesOverrideFormat()
77+
public void ShouldSupportArrayVersionStrategiesFormat()
7878
{
79-
const string yaml = "strategies: ConfiguredNextVersion, TaggedCommit";
79+
const string yaml = "strategies: [ConfiguredNextVersion, TaggedCommit]";
8080

8181
var configuration = serializer.ReadConfiguration(yaml);
8282

src/GitVersion.Configuration/ConfigurationHelper.cs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,6 @@ private static void Merge(IDictionary<object, object?> dictionary, IReadOnlyDict
5656
Merge(anotherDictionaryValue, dictionaryValue);
5757
}
5858

59-
break;
60-
}
61-
case IList:
62-
{
63-
if (anotherDictionary.TryGetValue(item.Key, out var value))
64-
{
65-
dictionary[item.Key] = value;
66-
}
67-
6859
break;
6960
}
7061
default:
@@ -90,15 +81,6 @@ private static void Merge(IDictionary<object, object?> dictionary, IReadOnlyDict
9081
Dictionary<object, object?> anotherDictionaryValue = [];
9182
Merge(anotherDictionaryValue, dictionaryValue);
9283
dictionary.Add(item.Key, anotherDictionaryValue);
93-
break;
94-
}
95-
case IList:
96-
{
97-
if (!dictionary.ContainsKey(item.Key))
98-
{
99-
dictionary.Add(item.Key, item.Value);
100-
}
101-
10284
break;
10385
}
10486
default:

src/GitVersion.Configuration/ConfigurationSerializer.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ internal class ConfigurationSerializer : IConfigurationSerializer
1010
{
1111
PropertyNamingPolicy = HyphenatedJsonNamingPolicy.Instance,
1212
DefaultIgnoreCondition = YamlIgnoreCondition.WhenWritingNull,
13-
Converters = [VersionStrategiesConverter.Instance]
1413
};
1514

1615
public T Deserialize<T>(string input)
@@ -27,13 +26,8 @@ public T Deserialize<T>(string input)
2726
{
2827
return (T)(object)YamlSerializer.Deserialize<GitVersionConfiguration>(input, GeneratedContext)!;
2928
}
30-
catch (Exception exception)
29+
catch (Exception exception) when (exception is not YamlException)
3130
{
32-
if (exception is YamlException)
33-
{
34-
throw;
35-
}
36-
3731
throw new YamlException(exception.Message, exception);
3832
}
3933
}

src/GitVersion.Configuration/ConfigurationYamlContext.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33

44
namespace GitVersion.Configuration;
55

6-
[YamlSourceGenerationOptions(
7-
DefaultIgnoreCondition = YamlIgnoreCondition.WhenWritingNull,
8-
Converters = [typeof(VersionStrategiesConverter)])]
6+
[YamlSourceGenerationOptions(DefaultIgnoreCondition = YamlIgnoreCondition.WhenWritingNull )]
97
[YamlSerializable(typeof(GitVersionConfiguration))]
108
[YamlSerializable(typeof(BranchConfiguration))]
119
[YamlSerializable(typeof(PreventIncrementConfiguration))]

src/GitVersion.Configuration/VersionStrategiesConverter.cs

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

0 commit comments

Comments
 (0)