From 91c11dc279ff25bb6cda087d61fee679c2b06fdf Mon Sep 17 00:00:00 2001 From: Dave / Xieon <109671906+XieonCrypto@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:07:03 -0400 Subject: [PATCH 1/2] Modify TargetFramework and NoWarn settings Updated TargetFramework condition and added NoWarn properties. --- Directory.Build.props | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 573dd19..502f648 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,9 +1,10 @@ - net7.0 + net7.0 win-x64 11 enable + $(NoWarn);CS0108;CS0169;CS0219;CS0414;CS0649;CS8602;CS8603;CS8604;CS8618;CS8622;CS8629 en false true @@ -19,4 +20,4 @@ portable - \ No newline at end of file + From 12402716317a2a281e3392af082479195ea5f5a1 Mon Sep 17 00:00:00 2001 From: Dave / Xieon <109671906+XieonCrypto@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:12:00 -0400 Subject: [PATCH 2/2] Add documentation for warning suppression in project Document repository-wide warning suppression configuration and rationale for suppressed warning IDs. --- pragma_warning_suppression.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 pragma_warning_suppression.md diff --git a/pragma_warning_suppression.md b/pragma_warning_suppression.md new file mode 100644 index 0000000..cac9e47 --- /dev/null +++ b/pragma_warning_suppression.md @@ -0,0 +1,25 @@ +# Warning Suppression + +The repository-wide warning suppression is configured in `Directory.Build.props` through the `NoWarn` property. This is the MSBuild/project-wide equivalent of applying `#pragma warning disable`; it applies to every project importing the shared file, including the local `TradebotCore` projects. + +## Suppressed IDs + +| Warning | Meaning | Why suppressed | +| --- | --- | --- | +| CS0108 | Member hides an inherited member | Existing intentional or legacy member hiding. | +| CS0169 | Private field is never used | Existing unused state retained for compatibility. | +| CS0219 | Local variable is assigned but never used | Existing compatibility code and command handlers. | +| CS0414 | Field is assigned but never used | Existing optional configuration/runtime state. | +| CS0649 | Field is never assigned | Fields populated by serializers or external/runtime code. | +| CS8602 | Possible null dereference | Existing code relies on initialized runtime services/configuration. | +| CS8603 | Possible null reference return | Existing APIs preserve nullable-compatible legacy behavior. | +| CS8604 | Possible null argument | Existing runtime validation/configuration guarantees are outside static analysis. | +| CS8618 | Non-nullable member is not initialized | Members initialized by deserialization or startup wiring. | +| CS8622 | Nullability mismatch in delegate parameter | Existing event-handler signatures required by third-party APIs. | +| CS8629 | Nullable value type may be null | Existing code relies on validated runtime values. | + +## Scope and maintenance + +These suppressions are intentionally broad so the current solution builds consistently across all projects. New code should still avoid introducing nullable or unused-member warnings. When a warning can be fixed safely at its source, prefer the source fix and remove that ID from `NoWarn` only after all affected projects are clean. + +The suppression list was derived from the warning IDs emitted by a full `dotnet build` on 2026-09-25. It suppresses compiler warnings only; build failures and analyzer warnings with other IDs remain visible.