diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index d5aa4f19..365934eb 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -21,7 +21,7 @@
]
},
"demaconsulting.pandoctool": {
- "version": "3.10.0",
+ "version": "3.10.1",
"commands": [
"pandoc"
]
@@ -75,7 +75,7 @@
]
},
"demaconsulting.sysml2tools.tool": {
- "version": "0.1.0-beta.14",
+ "version": "0.1.0",
"commands": [
"sysml2tools"
]
diff --git a/src/DemaConsulting.BuildMark/BuildNotes/BuildInformation.cs b/src/DemaConsulting.BuildMark/BuildNotes/BuildInformation.cs
index f9acedcf..8d91bc84 100644
--- a/src/DemaConsulting.BuildMark/BuildNotes/BuildInformation.cs
+++ b/src/DemaConsulting.BuildMark/BuildNotes/BuildInformation.cs
@@ -126,7 +126,7 @@ private void AppendRoutedSections(System.Text.StringBuilder markdown, string sub
{
// Render each configured section as a markdown heading with its item list
// sectionId (first tuple element) is unused here; only title and items are rendered
- foreach (var (_, sectionTitle, items) in RoutedSections!)
+ foreach (var (_, sectionTitle, items) in RoutedSections ?? [])
{
// Add section heading
markdown.AppendLine(CultureInfo.InvariantCulture, $"{subHeading} {sectionTitle}");
diff --git a/src/DemaConsulting.BuildMark/DemaConsulting.BuildMark.csproj b/src/DemaConsulting.BuildMark/DemaConsulting.BuildMark.csproj
index 1092ce80..4ad2d9b0 100644
--- a/src/DemaConsulting.BuildMark/DemaConsulting.BuildMark.csproj
+++ b/src/DemaConsulting.BuildMark/DemaConsulting.BuildMark.csproj
@@ -72,7 +72,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/DemaConsulting.BuildMark/RepoConnectors/ItemControlsParser.cs b/src/DemaConsulting.BuildMark/RepoConnectors/ItemControlsParser.cs
index c1239699..847a53c5 100644
--- a/src/DemaConsulting.BuildMark/RepoConnectors/ItemControlsParser.cs
+++ b/src/DemaConsulting.BuildMark/RepoConnectors/ItemControlsParser.cs
@@ -168,7 +168,7 @@ private static bool IsOpeningFence(string line, out string fence)
break;
case "affected-versions" when !string.IsNullOrEmpty(value):
- var parsed = VersionIntervalSet.Parse(value!);
+ var parsed = VersionIntervalSet.Parse(value);
if (parsed.Intervals.Count > 0)
{
affectedVersions = parsed;
diff --git a/test/DemaConsulting.BuildMark.Tests/DemaConsulting.BuildMark.Tests.csproj b/test/DemaConsulting.BuildMark.Tests/DemaConsulting.BuildMark.Tests.csproj
index 22c5dbeb..3c6c7109 100644
--- a/test/DemaConsulting.BuildMark.Tests/DemaConsulting.BuildMark.Tests.csproj
+++ b/test/DemaConsulting.BuildMark.Tests/DemaConsulting.BuildMark.Tests.csproj
@@ -55,7 +55,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/test/DemaConsulting.BuildMark.Tests/RepoConnectors/RepoConnectorBaseTests.cs b/test/DemaConsulting.BuildMark.Tests/RepoConnectors/RepoConnectorBaseTests.cs
index d16454eb..2286b076 100644
--- a/test/DemaConsulting.BuildMark.Tests/RepoConnectors/RepoConnectorBaseTests.cs
+++ b/test/DemaConsulting.BuildMark.Tests/RepoConnectors/RepoConnectorBaseTests.cs
@@ -222,7 +222,7 @@ public void RepoConnectorBase_FindBaselineForPreRelease_SameCommitSkipped_Return
// Assert - returns the first tag with a different commit hash (v1.0.0), skipping same-hash entries
Assert.True(baseline != null, "Baseline should not be null when a different-commit predecessor exists");
Assert.True(
- baseline!.VersionTag.Tag == "v1.0.0",
+ baseline.VersionTag.Tag == "v1.0.0",
$"Expected baseline 'v1.0.0' but got '{baseline.VersionTag.Tag}'");
}
@@ -269,7 +269,7 @@ public void RepoConnectorBase_FindBaselineForRelease_SkipsPreReleaseTags_Returns
// Assert - returns v1.0.0, the most recent non-pre-release tag
Assert.True(baseline != null, "Baseline should not be null when a preceding release tag exists");
Assert.True(
- baseline!.VersionTag.Tag == "v1.0.0",
+ baseline.VersionTag.Tag == "v1.0.0",
$"Expected baseline 'v1.0.0' but got '{baseline.VersionTag.Tag}'");
}
diff --git a/test/DemaConsulting.BuildMark.Tests/Version/VersionComparableTests.cs b/test/DemaConsulting.BuildMark.Tests/Version/VersionComparableTests.cs
index f236fa00..2f53b4ec 100644
--- a/test/DemaConsulting.BuildMark.Tests/Version/VersionComparableTests.cs
+++ b/test/DemaConsulting.BuildMark.Tests/Version/VersionComparableTests.cs
@@ -329,9 +329,9 @@ public void VersionComparable_CompareTo_SemanticVersions_ReturnsCorrectOrder()
{
var current = versions[i];
var next = versions[i + 1];
- var result = current!.CompareTo(next);
+ var result = current.CompareTo(next);
- Assert.True(result < 0, $"{current.CompareVersion} should be less than {next!.CompareVersion}");
+ Assert.True(result < 0, $"{current.CompareVersion} should be less than {next.CompareVersion}");
}
}
@@ -398,7 +398,7 @@ public void VersionComparable_CompareTo_PreReleaseNumeric_ComparesNumerically()
var version10 = VersionComparable.Create("1.0.0-alpha.10");
// Act
- var result = version5!.CompareTo(version10);
+ var result = version5.CompareTo(version10);
// Assert
Assert.True(result < 0, "1.0.0-alpha.5 should be less than 1.0.0-alpha.10 (numeric comparison)");
@@ -418,9 +418,9 @@ public void VersionComparable_CompareTo_PreReleaseSemVerRules_CorrectOrdering()
{
var current = versions[i];
var next = versions[i + 1];
- var result = current!.CompareTo(next);
+ var result = current.CompareTo(next);
- Assert.True(result < 0, $"{current.CompareVersion} should be less than {next!.CompareVersion}");
+ Assert.True(result < 0, $"{current.CompareVersion} should be less than {next.CompareVersion}");
}
}
@@ -435,7 +435,7 @@ public void VersionComparable_CompareTo_NumericVsNonNumeric_NumericIsLess()
var nonNumericVersion = VersionComparable.Create("1.0.0-alpha");
// Act
- var result = numericVersion!.CompareTo(nonNumericVersion);
+ var result = numericVersion.CompareTo(nonNumericVersion);
// Assert
Assert.True(result < 0, "1.0.0-1 should be less than 1.0.0-alpha (numeric < non-numeric)");
@@ -452,7 +452,7 @@ public void VersionComparable_CompareTo_ShorterPreRelease_IsLess()
var longerVersion = VersionComparable.Create("1.0.0-alpha.1");
// Act
- var result = shorterVersion!.CompareTo(longerVersion);
+ var result = shorterVersion.CompareTo(longerVersion);
// Assert
Assert.True(result < 0, "1.0.0-alpha should be less than 1.0.0-alpha.1 (shorter is less)");
@@ -471,9 +471,9 @@ public void VersionComparable_CompareTo_ComplexPreRelease_CorrectOrdering()
var test4 = VersionComparable.Create("1.0.0-alpha.beta.1");
// Act & Assert
- Assert.True(test1!.CompareTo(test2) < 0, "alpha.1.2 < alpha.1.10 (numeric segment comparison)");
- Assert.True(test2!.CompareTo(test3) < 0, "alpha.1.10 < alpha.2.1 (first numeric difference wins)");
- Assert.True(test3!.CompareTo(test4) < 0, "alpha.2.1 < alpha.beta.1 (numeric < non-numeric)");
+ Assert.True(test1.CompareTo(test2) < 0, "alpha.1.2 < alpha.1.10 (numeric segment comparison)");
+ Assert.True(test2.CompareTo(test3) < 0, "alpha.1.10 < alpha.2.1 (first numeric difference wins)");
+ Assert.True(test3.CompareTo(test4) < 0, "alpha.2.1 < alpha.beta.1 (numeric < non-numeric)");
}
}
diff --git a/test/DemaConsulting.BuildMark.Tests/Version/VersionIntervalTests.cs b/test/DemaConsulting.BuildMark.Tests/Version/VersionIntervalTests.cs
index f3090259..4e8a13a9 100644
--- a/test/DemaConsulting.BuildMark.Tests/Version/VersionIntervalTests.cs
+++ b/test/DemaConsulting.BuildMark.Tests/Version/VersionIntervalTests.cs
@@ -328,11 +328,11 @@ public void VersionInterval_Contains_PreReleaseBounds_HandlesCorrectly()
// Act & Assert
Assert.True(interval!.Contains("1.2.0-rc.1")); // Equal to inclusive lower bound
- Assert.True(interval!.Contains("1.2.0-rc.2")); // Between bounds (rc.2 > rc.1)
- Assert.True(interval!.Contains("1.2.0")); // Equal to inclusive upper bound
- Assert.False(interval!.Contains("1.2.0-alpha.1")); // Before lower bound (alpha < rc)
- Assert.False(interval!.Contains("1.2.1")); // After upper bound
- Assert.False(interval!.Contains("1.1.9")); // Before lower bound
+ Assert.True(interval.Contains("1.2.0-rc.2")); // Between bounds (rc.2 > rc.1)
+ Assert.True(interval.Contains("1.2.0")); // Equal to inclusive upper bound
+ Assert.False(interval.Contains("1.2.0-alpha.1")); // Before lower bound (alpha < rc)
+ Assert.False(interval.Contains("1.2.1")); // After upper bound
+ Assert.False(interval.Contains("1.1.9")); // Before lower bound
}
///
@@ -346,9 +346,9 @@ public void VersionInterval_Contains_PreReleaseToPreRelease_HandlesCorrectly()
// Act & Assert
Assert.True(interval!.Contains("1.2.0-alpha.1")); // Equal to inclusive lower bound
- Assert.True(interval!.Contains("1.2.0-beta.1")); // Between bounds
- Assert.False(interval!.Contains("1.2.0-rc.1")); // Equal to exclusive upper bound
- Assert.False(interval!.Contains("1.2.0")); // After upper bound (release > pre-release)
+ Assert.True(interval.Contains("1.2.0-beta.1")); // Between bounds
+ Assert.False(interval.Contains("1.2.0-rc.1")); // Equal to exclusive upper bound
+ Assert.False(interval.Contains("1.2.0")); // After upper bound (release > pre-release)
}
///
@@ -362,10 +362,10 @@ public void VersionInterval_Contains_PreReleaseOrdering_UsesNumericComparison()
// Act & Assert
Assert.True(interval!.Contains("1.0.0-alpha.5")); // Equal to lower bound
- Assert.True(interval!.Contains("1.0.0-alpha.6")); // Between bounds
- Assert.True(interval!.Contains("1.0.0-alpha.10")); // Equal to upper bound
- Assert.False(interval!.Contains("1.0.0-alpha.4")); // Before lower bound
- Assert.False(interval!.Contains("1.0.0-alpha.11")); // After upper bound
+ Assert.True(interval.Contains("1.0.0-alpha.6")); // Between bounds
+ Assert.True(interval.Contains("1.0.0-alpha.10")); // Equal to upper bound
+ Assert.False(interval.Contains("1.0.0-alpha.4")); // Before lower bound
+ Assert.False(interval.Contains("1.0.0-alpha.11")); // After upper bound
}
///
@@ -381,7 +381,7 @@ public void VersionInterval_Contains_VersionComparable_HandlesPreRelease()
// Act & Assert
Assert.True(interval!.Contains(preReleaseVersion));
- Assert.True(interval!.Contains(releaseVersion));
+ Assert.True(interval.Contains(releaseVersion));
}
}
diff --git a/test/DemaConsulting.BuildMark.Tests/Version/VersionTests.cs b/test/DemaConsulting.BuildMark.Tests/Version/VersionTests.cs
index d6c16dd6..56f4a88c 100644
--- a/test/DemaConsulting.BuildMark.Tests/Version/VersionTests.cs
+++ b/test/DemaConsulting.BuildMark.Tests/Version/VersionTests.cs
@@ -119,7 +119,7 @@ public void VersionCommitTag_Constructor_ValidParameters_CreatesInstance()
var commitHash = "abc123def456789";
// Act
- var versionCommitTag = new VersionCommitTag(versionTag!, commitHash);
+ var versionCommitTag = new VersionCommitTag(versionTag, commitHash);
// Assert
Assert.NotNull(versionCommitTag);
@@ -140,7 +140,7 @@ public void Version_Subsystem_CreateAllVersionTypes_WorksCorrectly()
var versionSemantic = VersionSemantic.Create("2.0.0-beta.2+build.1");
var versionTag = VersionTag.Create("v3.1.0");
var versionInterval = new VersionInterval("1.0.0", true, "2.0.0", false);
- var versionCommitTag = new VersionCommitTag(versionTag!, "abc123def456");
+ var versionCommitTag = new VersionCommitTag(versionTag, "abc123def456");
// Assert - All types are created successfully
Assert.NotNull(versionComparable);
@@ -173,11 +173,11 @@ public void Version_Subsystem_SemanticVersioningCompliance_WorksCorrectly()
var version6 = VersionComparable.Create("1.0.0");
// Assert - SemVer precedence is maintained
- Assert.True(version1!.CompareTo(version2) < 0, "1.0.0-alpha < 1.0.0-alpha.1");
- Assert.True(version2!.CompareTo(version3) < 0, "1.0.0-alpha.1 < 1.0.0-alpha.beta");
- Assert.True(version3!.CompareTo(version4) < 0, "1.0.0-alpha.beta < 1.0.0-beta");
- Assert.True(version4!.CompareTo(version5) < 0, "1.0.0-beta < 1.0.0-beta.2");
- Assert.True(version5!.CompareTo(version6) < 0, "1.0.0-beta.2 < 1.0.0");
+ Assert.True(version1.CompareTo(version2) < 0, "1.0.0-alpha < 1.0.0-alpha.1");
+ Assert.True(version2.CompareTo(version3) < 0, "1.0.0-alpha.1 < 1.0.0-alpha.beta");
+ Assert.True(version3.CompareTo(version4) < 0, "1.0.0-alpha.beta < 1.0.0-beta");
+ Assert.True(version4.CompareTo(version5) < 0, "1.0.0-beta < 1.0.0-beta.2");
+ Assert.True(version5.CompareTo(version6) < 0, "1.0.0-beta.2 < 1.0.0");
}
///
@@ -193,9 +193,9 @@ public void Version_Subsystem_TagToComparableIntegration_WorksCorrectly()
var tag3 = VersionTag.Create("release-1.5.0");
// Act - Get comparable versions
- var comparable1 = tag1!.Semantic.Comparable;
- var comparable2 = tag2!.Semantic.Comparable;
- var comparable3 = tag3!.Semantic.Comparable;
+ var comparable1 = tag1.Semantic.Comparable;
+ var comparable2 = tag2.Semantic.Comparable;
+ var comparable3 = tag3.Semantic.Comparable;
// Assert - Comparable versions are extracted correctly
Assert.NotNull(comparable1);