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