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 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 + + 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: