From 9c585fe306ca0e62a143df642bb00ff108fead0b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 12:37:41 +0000 Subject: [PATCH 1/4] Initial plan From dfdafd1ec9f448303f0033abdb120011d933c261 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 12:42:30 +0000 Subject: [PATCH 2/4] Add Directory.Build.props with Nullable and TreatWarningsAsErrors Co-authored-by: indcoder <2099300+indcoder@users.noreply.github.com> --- Directory.Build.props | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Directory.Build.props diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..ae17e5f --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,9 @@ + + + + enable + + + true + + From 554fbb29476f94c40d8d1108461bbd51d0145201 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 12:43:31 +0000 Subject: [PATCH 3/4] Document code quality settings in README Co-authored-by: indcoder <2099300+indcoder@users.noreply.github.com> --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 59a338d..3b011b8 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,26 @@ For more detailed instructions and examples, refer to the test project files in By following these guidelines, we can ensure that our codebase remains reliable, maintainable, and of high quality. +## Code Quality and Build Configuration + +The Visage project enforces strict code quality standards through MSBuild configuration: + +### Nullable Reference Types + +All projects have nullable reference types enabled via `Directory.Build.props`, which provides: +- Static analysis for potential null reference issues +- Explicit handling of nullable types +- Improved null safety throughout the codebase + +### TreatWarningsAsErrors + +The solution is configured to treat all compiler warnings as errors (`TreatWarningsAsErrors=true`). This ensures: +- Code won't compile until warnings are addressed +- Issues are caught during development rather than production +- Consistent code quality across all projects + +These settings are centrally managed in the `Directory.Build.props` file located at the solution root, ensuring they apply to all projects in the solution automatically. + ## Project Architecture and Components The Visage project is built using a modular architecture to ensure scalability, maintainability, and ease of development. Below is an overview of the project's architecture and its main components: From 880edcbb9b5c4a986cbdec7dc7946cde09381294 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 12:44:48 +0000 Subject: [PATCH 4/4] Add build step to CI workflow to enforce TreatWarningsAsErrors Co-authored-by: indcoder <2099300+indcoder@users.noreply.github.com> --- .github/workflows/dotnet.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 439fdd3..70404dd 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -18,4 +18,6 @@ jobs: dotnet-version: '10.0.100-rc.1.25451.107' # You can test your matrix by printing the current dotnet version - name: Display dotnet version - run: dotnet --version \ No newline at end of file + run: dotnet --version + - name: Build solution + run: dotnet build Visage.sln --configuration Release \ No newline at end of file