Skip to content

Commit f8d3fe9

Browse files
committed
feat(configuration)!: require sequence format for version strategies
- remove custom VersionStrategies YAML converter - stop treating VersionStrategies[] as a supported overrideconfig scalar type - require YAML sequence/array format for strategies values - update configuration and app tests to match array-only behavior BREAKING CHANGE: scalar strategies format (e.g. "strategies: A, B") is no longer supported; use YAML sequence/array syntax instead.
1 parent ab18c32 commit f8d3fe9

File tree

6 files changed

+8
-127
lines changed

6 files changed

+8
-127
lines changed

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.App/OverrideConfigurationOptionParser.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using GitVersion.Configuration;
2-
using GitVersion.VersionCalculation;
32

43
namespace GitVersion;
54

@@ -37,7 +36,7 @@ internal class OverrideConfigurationOptionParser
3736
/// is supported as a part of command line '/overrideconfig' option.
3837
/// </summary>
3938
/// <param name="propertyType">Type we want to check.</param>
40-
/// <returns>True, if type is supported.</returns>
39+
/// <returns>True, if the type is supported.</returns>
4140
/// <remarks>Only simple types are supported</remarks>
4241
private static bool IsSupportedPropertyType(Type propertyType)
4342
{
@@ -46,8 +45,7 @@ private static bool IsSupportedPropertyType(Type propertyType)
4645
return unwrappedType == typeof(string)
4746
|| unwrappedType.IsEnum
4847
|| unwrappedType == typeof(int)
49-
|| unwrappedType == typeof(bool)
50-
|| unwrappedType == typeof(VersionStrategies[]);
48+
|| unwrappedType == typeof(bool);
5149
}
5250

5351
internal void SetValue(string key, string value) => overrideConfiguration[key] = QuotedStringHelpers.UnquoteText(value);

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/ConfigurationSerializer.cs

Lines changed: 2 additions & 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,9 @@ public T Deserialize<T>(string input)
2726
{
2827
return (T)(object)YamlSerializer.Deserialize<GitVersionConfiguration>(input, GeneratedContext)!;
2928
}
30-
catch (YamlException)
29+
catch (Exception exception) when (exception is not YamlException)
3130
{
32-
throw;
33-
}
34-
catch (Exception exception)
35-
{
36-
throw new YamlException(exception.Message);
31+
throw new YamlException(exception.Message, exception);
3732
}
3833
}
3934

src/GitVersion.Configuration/ConfigurationYamlContext.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@
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))]
1210
[YamlSerializable(typeof(IgnoreConfiguration))]
13-
internal partial class ConfigurationYamlContext : YamlSerializerContext;
11+
internal partial class ConfigurationYamlContext : YamlSerializerContext;

src/GitVersion.Configuration/VersionStrategiesConverter.cs

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

0 commit comments

Comments
 (0)