Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
run: dotnet --version
- name: Build solution
run: dotnet build Visage.sln --configuration Release
9 changes: 9 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Project>
<PropertyGroup>
<!-- Enable nullable reference types for better null-safety -->
<Nullable>enable</Nullable>

<!-- Treat all warnings as errors to catch issues during development -->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
</Project>
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down