From 7314bd6d7be14f6cceac8685d531776692687100 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Sat, 26 Sep 2026 07:27:44 -0700 Subject: [PATCH 1/3] Describe IL3058 as a Missing IsAotCompatible Mark dotnet-codestyle said reference verification reports IL3058 for every dependency "not built AOT-compatible" and named System.CommandLine and the Serilog sinks as failing. IL3058 reports a referenced assembly not marked IsAotCompatible, which says nothing about whether it works under AOT, and the unversioned package names claim a state their newer releases may not have. The sentence now names the missing mark and drops the examples. Raised by CodeRabbit on the promotion PR #1850. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- .../fleet-skills/.source-digests/dotnet-codestyle | 2 +- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.agents/skills/dotnet-codestyle/references/project-config.md b/.agents/skills/dotnet-codestyle/references/project-config.md index d07ba1a4..e1b041c1 100644 --- a/.agents/skills/dotnet-codestyle/references/project-config.md +++ b/.agents/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every dependency not built AOT-compatible, and - `TreatWarningsAsErrors` turns that into a failed build on ordinary dependencies such as - `System.CommandLine` and the Serilog sinks, so it runs only where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly not marked `IsAotCompatible`, and + `TreatWarningsAsErrors` turns that into a failed build on any such dependency, so it runs only + where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). diff --git a/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle b/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle index 3a4534e1..4d3bb5c4 100644 --- a/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle +++ b/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle @@ -1 +1 @@ -6afeadd6c65bfd8a +9592234eb93addfa diff --git a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md index d07ba1a4..e1b041c1 100644 --- a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md +++ b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every dependency not built AOT-compatible, and - `TreatWarningsAsErrors` turns that into a failed build on ordinary dependencies such as - `System.CommandLine` and the Serilog sinks, so it runs only where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly not marked `IsAotCompatible`, and + `TreatWarningsAsErrors` turns that into a failed build on any such dependency, so it runs only + where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). diff --git a/.github/skills/dotnet-codestyle/references/project-config.md b/.github/skills/dotnet-codestyle/references/project-config.md index d07ba1a4..e1b041c1 100644 --- a/.github/skills/dotnet-codestyle/references/project-config.md +++ b/.github/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every dependency not built AOT-compatible, and - `TreatWarningsAsErrors` turns that into a failed build on ordinary dependencies such as - `System.CommandLine` and the Serilog sinks, so it runs only where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly not marked `IsAotCompatible`, and + `TreatWarningsAsErrors` turns that into a failed build on any such dependency, so it runs only + where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). From 05f0fdce8762710fc8193dd5961f7162ef242a69 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Sat, 26 Sep 2026 08:23:49 -0700 Subject: [PATCH 2/3] Say IL3058 Fires Whenever the IsAotCompatible Metadata Is Not true "Not marked IsAotCompatible" left open an assembly that carries the metadata set to false, which IL3058 also reports. The sentence now says the metadata is not true, matching Microsoft's own wording. Raised by Copilot on #1895. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- .../fleet-skills/.source-digests/dotnet-codestyle | 2 +- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.agents/skills/dotnet-codestyle/references/project-config.md b/.agents/skills/dotnet-codestyle/references/project-config.md index e1b041c1..892c71e3 100644 --- a/.agents/skills/dotnet-codestyle/references/project-config.md +++ b/.agents/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every referenced assembly not marked `IsAotCompatible`, and - `TreatWarningsAsErrors` turns that into a failed build on any such dependency, so it runs only - where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly whose `IsAotCompatible` metadata is + not `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such dependency, + so it runs only where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). diff --git a/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle b/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle index 4d3bb5c4..61376b33 100644 --- a/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle +++ b/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle @@ -1 +1 @@ -9592234eb93addfa +2dfc0df2f22d664c diff --git a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md index e1b041c1..892c71e3 100644 --- a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md +++ b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every referenced assembly not marked `IsAotCompatible`, and - `TreatWarningsAsErrors` turns that into a failed build on any such dependency, so it runs only - where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly whose `IsAotCompatible` metadata is + not `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such dependency, + so it runs only where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). diff --git a/.github/skills/dotnet-codestyle/references/project-config.md b/.github/skills/dotnet-codestyle/references/project-config.md index e1b041c1..892c71e3 100644 --- a/.github/skills/dotnet-codestyle/references/project-config.md +++ b/.github/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every referenced assembly not marked `IsAotCompatible`, and - `TreatWarningsAsErrors` turns that into a failed build on any such dependency, so it runs only - where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly whose `IsAotCompatible` metadata is + not `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such dependency, + so it runs only where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). From 10623b00dfecc441bf627daf29839be370979327 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Sat, 26 Sep 2026 08:24:44 -0700 Subject: [PATCH 3/3] Say an Assembly Lacks IsAotCompatible Metadata Set to true "Whose metadata is not true" read as though the metadata were present, hiding the common case of a dependency with none at all. The sentence now follows Microsoft's wording: an assembly that lacks the metadata set to true. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- .../fleet-skills/.source-digests/dotnet-codestyle | 2 +- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- .../skills/dotnet-codestyle/references/project-config.md | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.agents/skills/dotnet-codestyle/references/project-config.md b/.agents/skills/dotnet-codestyle/references/project-config.md index 892c71e3..658e589c 100644 --- a/.agents/skills/dotnet-codestyle/references/project-config.md +++ b/.agents/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every referenced assembly whose `IsAotCompatible` metadata is - not `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such dependency, - so it runs only where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly that lacks `IsAotCompatible` metadata + set to `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such + dependency, so it runs only where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). diff --git a/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle b/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle index 61376b33..f6d020a2 100644 --- a/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle +++ b/.claude-plugin/fleet-skills/.source-digests/dotnet-codestyle @@ -1 +1 @@ -2dfc0df2f22d664c +4e9d6c62e1680a27 diff --git a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md index 892c71e3..658e589c 100644 --- a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md +++ b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every referenced assembly whose `IsAotCompatible` metadata is - not `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such dependency, - so it runs only where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly that lacks `IsAotCompatible` metadata + set to `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such + dependency, so it runs only where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`). diff --git a/.github/skills/dotnet-codestyle/references/project-config.md b/.github/skills/dotnet-codestyle/references/project-config.md index 892c71e3..658e589c 100644 --- a/.github/skills/dotnet-codestyle/references/project-config.md +++ b/.github/skills/dotnet-codestyle/references/project-config.md @@ -6,9 +6,9 @@ ``, placed in the `.csproj` after it sets `PublishAot` or in `Directory.Build.targets`, never in `Directory.Build.props`, which is imported before the project body and so never sees a `PublishAot` the `.csproj` sets. Reference - verification reports `IL3058` for every referenced assembly whose `IsAotCompatible` metadata is - not `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such dependency, - so it runs only where an AOT publish needs it. + verification reports `IL3058` for every referenced assembly that lacks `IsAotCompatible` metadata + set to `true`, and `TreatWarningsAsErrors` turns that into a failed build on any such + dependency, so it runs only where an AOT publish needs it. 3. **Assembly information**: use semantic versioning, include SourceLink (`true`), embed untracked sources (`true`).