From ca6bdec3cd55713a538c668cb65ec01cec186f0f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 3 Feb 2026 00:02:34 +0000
Subject: [PATCH 1/7] Initial plan
From c82a9e597d8f86eb55593aaf621b0e636350e24a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 3 Feb 2026 00:07:40 +0000
Subject: [PATCH 2/7] Update to .NET 10, C# 14, and Roslyn 5.0.0
Co-authored-by: BenjaminMichaelis <22186029+BenjaminMichaelis@users.noreply.github.com>
---
.editorconfig | 8 ++++++++
Directory.Build.props | 2 +-
Directory.Packages.props | 12 ++++++------
.../IntelliTect.Analyzer.Integration.Tests.csproj | 2 +-
.../IntelliTect.Analyzer.Tests.csproj | 2 +-
.../GuidelineXmlToMD.Test.csproj | 2 +-
.../XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj | 2 +-
global.json | 2 +-
8 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/.editorconfig b/.editorconfig
index 806489ec..1cdd3686 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -168,3 +168,11 @@ dotnet_diagnostic.RCS1170.severity = warning
# RCS1213: Remove unused member declaration.
dotnet_diagnostic.RCS1213.severity = warning
+
+###############################
+# Analyzer Package Suppressions
+###############################
+# RS1038: Compiler extensions should be implemented in assemblies with compiler-provided references
+# This rule is suppressed because our analyzer and code fix providers are in the same assembly,
+# which is a common pattern. The code fix providers require Microsoft.CodeAnalysis.Workspaces.
+dotnet_diagnostic.RS1038.severity = none
diff --git a/Directory.Build.props b/Directory.Build.props
index 46c99a85..f8045abc 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,6 +1,6 @@
true
- 12.0
+ 14.0
\ No newline at end of file
diff --git a/Directory.Packages.props b/Directory.Packages.props
index fead9a94..7792a9a1 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -7,12 +7,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj b/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj
index 3b5bd16a..787ad925 100644
--- a/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj
+++ b/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0
+ net10.0
false
diff --git a/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj
index 0a3961f6..ba0c8a93 100644
--- a/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj
+++ b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0
+ net10.0
CA2007,CA1815,CA1303,CA1707,CA1305
diff --git a/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj b/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj
index 6c4a1812..76ad21e4 100644
--- a/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj
+++ b/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj
@@ -1,7 +1,7 @@
- net6.0
+ net10.0
CA2007,CA1815,CA1303,CA1707,CA1305,IDE0008,INTL0003
false
diff --git a/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj b/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj
index ca778e24..d2c03b94 100644
--- a/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj
+++ b/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj
@@ -2,7 +2,7 @@
Exe
- net6.0
+ net10.0
9.0
true
IntelliTect.EssentialCSharp.Publishing
diff --git a/global.json b/global.json
index 7950fd15..d75a511b 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "8.0.100",
+ "version": "10.0.100",
"rollForward": "minor",
"allowPrerelease": true
}
From b529665d318f706f009df9ed3bf389a4e54ca5a4 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 3 Feb 2026 00:10:09 +0000
Subject: [PATCH 3/7] Add multi-TFM support to test projects (net8.0, net9.0,
net10.0)
Co-authored-by: BenjaminMichaelis <22186029+BenjaminMichaelis@users.noreply.github.com>
---
.../IntelliTect.Analyzer.Integration.Tests.csproj | 2 +-
.../IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj | 2 +-
.../XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj b/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj
index 787ad925..17daed5f 100644
--- a/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj
+++ b/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/IntelliTect.Analyzer.Integration.Tests.csproj
@@ -1,7 +1,7 @@
- net10.0
+ net8.0;net9.0;net10.0
false
diff --git a/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj
index ba0c8a93..b7183ae6 100644
--- a/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj
+++ b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/IntelliTect.Analyzer.Tests.csproj
@@ -1,7 +1,7 @@
- net10.0
+ net8.0;net9.0;net10.0
CA2007,CA1815,CA1303,CA1707,CA1305
diff --git a/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj b/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj
index 76ad21e4..9b7abb8d 100644
--- a/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj
+++ b/Tools/XMLtoMD/GuidelineXmlToMD.Test/GuidelineXmlToMD.Test.csproj
@@ -1,7 +1,7 @@
- net10.0
+ net8.0;net9.0;net10.0
CA2007,CA1815,CA1303,CA1707,CA1305,IDE0008,INTL0003
false
From 2c82cfaae8decbc5c9f0ea992bc5dab80cab3e89 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 3 Feb 2026 00:14:05 +0000
Subject: [PATCH 4/7] Update dependencies: MSTest 4.0.2, NetAnalyzers 10.0.102,
coverlet 6.0.4, Test SDK 18.0.1
Co-authored-by: BenjaminMichaelis <22186029+BenjaminMichaelis@users.noreply.github.com>
---
.editorconfig | 10 +++++++++-
Directory.Packages.props | 10 +++++-----
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/.editorconfig b/.editorconfig
index 1cdd3686..bc631230 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -172,7 +172,15 @@ dotnet_diagnostic.RCS1213.severity = warning
###############################
# Analyzer Package Suppressions
###############################
-# RS1038: Compiler extensions should be implemented in assemblies with compiler-provided references
+# RS1038: Compiler extensions should not be implemented in assemblies with compiler-provided references
# This rule is suppressed because our analyzer and code fix providers are in the same assembly,
# which is a common pattern. The code fix providers require Microsoft.CodeAnalysis.Workspaces.
dotnet_diagnostic.RS1038.severity = none
+
+# MSTEST0001: Explicitly enable or disable tests parallelization
+# We don't need parallelization for our tests
+dotnet_diagnostic.MSTEST0001.severity = none
+
+# MSTEST0037: Use 'Assert.IsTrue' instead of 'Assert.AreEqual'
+# This is a style preference, not a correctness issue
+dotnet_diagnostic.MSTEST0037.severity = suggestion
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 7792a9a1..7e6dc6cf 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -4,18 +4,18 @@
false
-
+
-
+
-
-
-
+
+
+
From a077fb5191f4b2da78ad8c0693e253ed352a99f3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 3 Feb 2026 00:15:46 +0000
Subject: [PATCH 5/7] Remove unnecessary LangVersion override in
GuidelineXmlToMD.csproj
Co-authored-by: BenjaminMichaelis <22186029+BenjaminMichaelis@users.noreply.github.com>
---
Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj | 1 -
1 file changed, 1 deletion(-)
diff --git a/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj b/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj
index d2c03b94..7fc52e1f 100644
--- a/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj
+++ b/Tools/XMLtoMD/GuidelineXmlToMD/GuidelineXmlToMD.csproj
@@ -3,7 +3,6 @@
Exe
net10.0
- 9.0
true
IntelliTect.EssentialCSharp.Publishing
./nupkg
From 01463848f723e9d16d91fa6557d7b9fda936ebe3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 3 Feb 2026 00:24:16 +0000
Subject: [PATCH 6/7] Fix MSTEST0037 and configure MSTEST0001 parallelization
Co-authored-by: BenjaminMichaelis <22186029+BenjaminMichaelis@users.noreply.github.com>
---
.editorconfig | 8 ++------
.../AssemblyInfo.cs | 4 ++++
.../IntelliTect.Analyzer.Test/AssemblyInfo.cs | 3 +++
.../IntelliTect.Analyzer.Test/UnusedLocalVariableTests.cs | 2 +-
4 files changed, 10 insertions(+), 7 deletions(-)
create mode 100644 IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/AssemblyInfo.cs
create mode 100644 IntelliTect.Analyzer/IntelliTect.Analyzer.Test/AssemblyInfo.cs
diff --git a/.editorconfig b/.editorconfig
index bc631230..9dbd890d 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -177,10 +177,6 @@ dotnet_diagnostic.RCS1213.severity = warning
# which is a common pattern. The code fix providers require Microsoft.CodeAnalysis.Workspaces.
dotnet_diagnostic.RS1038.severity = none
-# MSTEST0001: Explicitly enable or disable tests parallelization
-# We don't need parallelization for our tests
-dotnet_diagnostic.MSTEST0001.severity = none
-
# MSTEST0037: Use 'Assert.IsTrue' instead of 'Assert.AreEqual'
-# This is a style preference, not a correctness issue
-dotnet_diagnostic.MSTEST0037.severity = suggestion
+# Enforced to maintain consistent assertion style
+dotnet_diagnostic.MSTEST0037.severity = warning
diff --git a/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/AssemblyInfo.cs b/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/AssemblyInfo.cs
new file mode 100644
index 00000000..549e80e3
--- /dev/null
+++ b/IntelliTect.Analyzer/IntelliTect.Analyzer.Integration.Tests/AssemblyInfo.cs
@@ -0,0 +1,4 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+// Integration tests should not run in parallel to avoid conflicts
+[assembly: DoNotParallelize]
diff --git a/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/AssemblyInfo.cs b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/AssemblyInfo.cs
new file mode 100644
index 00000000..ae411c7a
--- /dev/null
+++ b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/AssemblyInfo.cs
@@ -0,0 +1,3 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
diff --git a/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/UnusedLocalVariableTests.cs b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/UnusedLocalVariableTests.cs
index 88e58962..70f6e81f 100644
--- a/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/UnusedLocalVariableTests.cs
+++ b/IntelliTect.Analyzer/IntelliTect.Analyzer.Test/UnusedLocalVariableTests.cs
@@ -139,7 +139,7 @@ public void Descriptor_ContainsExpectedValues()
Assert.AreEqual("Local variable '{0}' should be used", diagnostic.MessageFormat);
Assert.AreEqual("Flow", diagnostic.Category);
Assert.AreEqual(DiagnosticSeverity.Info, diagnostic.DefaultSeverity);
- Assert.AreEqual(true, diagnostic.IsEnabledByDefault);
+ Assert.IsTrue(diagnostic.IsEnabledByDefault);
Assert.AreEqual("All local variables should be accessed, or named with underscores to indicate they are unused.", diagnostic.Description);
Assert.AreEqual("https://github.com/IntelliTect/CodingGuidelines", diagnostic.HelpLinkUri);
}
From 3d462669d77a2bf55e01a709aa266793e2094ced Mon Sep 17 00:00:00 2001
From: Benjamin Michaelis
Date: Mon, 2 Feb 2026 16:25:34 -0800
Subject: [PATCH 7/7] Apply suggestion from @BenjaminMichaelis
---
.editorconfig | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.editorconfig b/.editorconfig
index 9dbd890d..258b747e 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -176,7 +176,3 @@ dotnet_diagnostic.RCS1213.severity = warning
# This rule is suppressed because our analyzer and code fix providers are in the same assembly,
# which is a common pattern. The code fix providers require Microsoft.CodeAnalysis.Workspaces.
dotnet_diagnostic.RS1038.severity = none
-
-# MSTEST0037: Use 'Assert.IsTrue' instead of 'Assert.AreEqual'
-# Enforced to maintain consistent assertion style
-dotnet_diagnostic.MSTEST0037.severity = warning