Skip to content

.NET rules for analyzer, format, test-host, audit and platform failures (#62) - #71

Merged
SebHenn merged 2 commits into
mainfrom
feat/issue-62-dotnet-rules
Oct 27, 2026
Merged

SebHenn merged 2 commits into
mainfrom
feat/issue-62-dotnet-rules

Conversation

@SebHenn

@SebHenn SebHenn commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Closes #62.

csc-compile-error matched error CS\d+ only, so an analyzer or style diagnostic raised to an error fell through to a generic rule or to "No known rule matched". Those are among the commonest .NET CI failures. Seven rules in dotnet.yaml, each with a fixture and a winning-rule row:

Rule Matches Confidence
dotnet-analyzer-error error (CA|IDE|SA|RS|RCS|VSTHRD|xUnit|MSTEST|NUnit)\d+: … 0.75
dotnet-format-verify error WHITESPACE|CHARSET|FINALNEWLINE|ENDOFLINE|IMPORTS: … 0.85
vstest-testhost-crashed The active test run was aborted. Reason: …, Test host process crashed, Test Run Aborted. 0.8
vstest-blame-hang The specified inactivity time of … has elapsed (outranks the crash rule, since a hang also ends "aborted") 0.85
nuget-audit-vulnerability error NU1901-NU1904: Package 'X' 1.2.3 has a known high severity vulnerability. Errors only: NuGetAudit warns by default, and a warning next to the real failure isn't the cause. A test pins that. 0.85
netsdk1100-windows-targeting error NETSDK1100 0.9
msbuild-file-locked error MSB3027 / MSB3021 0.85

Fix texts name the concrete remedy: the .editorconfig severity key and dotnet format; --blame-crash and --blame-hang-timeout; dotnet list package --vulnerable and NuGetAuditSuppress; EnableWindowsTargeting; dotnet build-server shutdown.

Also, TRX: a crashed test host leaves no Failed result, only an outcome="Error" entry under RunInfos, so report mode read the run as passing. That entry is now a failure named "Test run aborted", which the new test-host rules then explain. A Warning run info is ignored. The parser test covers both.

dotnet format is now a .NET ecosystem marker, so a format log is analysed with the dotnet pack.

cifail rules validate: 151 rules, 0 errors, 0 warnings. Core passes 554/554 and Cli 204/204.

🤖 Generated with Claude Code

SebHenn and others added 2 commits October 27, 2026 17:13
…es (#62)

dotnet-analyzer-error, dotnet-format-verify, vstest-testhost-crashed,
vstest-blame-hang, nuget-audit-vulnerability, netsdk1100-windows-targeting and
msbuild-file-locked, each with a fixture. A TRX whose run aborted now yields a
"Test run aborted" failure from its error RunInfo, which report mode used to
read as passing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	CHANGELOG.md
#	CONTRIBUTING.md
@SebHenn
SebHenn merged commit b5ccb66 into main Oct 27, 2026
7 checks passed
@SebHenn
SebHenn deleted the feat/issue-62-dotnet-rules branch October 27, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

.NET rule gaps: analyzer and format errors, test host crash or hang, NuGetAudit, Windows targeting on Linux

1 participant