novolis-analyzers / getting-started.md
Getting started
Roslyn that enforces the platform
dotnetroslynanalyzersnovolis
Packages
| Package | Use |
|---|---|
Novolis.Analyzers.OneTypePerFile | One top-level type per file (NOV2201), fixer at document / project / solution |
Novolis.Analyzers.StackBoundaries | Layer / Avalonia / MAUI / island rules (NOV2001–NOV2011) |
Novolis.Analyzers.Conventions | Forbidden desk; no Frank.* leftovers (NOV2101–NOV2102) |
Novolis.Analyzers.Licensing | MIT / Apache-2.0 own + dependency license checks (NOV3001–NOV3003) |
Novolis.Analyzers.CodeLength | Method/class line limits |
Local multi-repo
When novolis-analyzers is checked out beside consumers, import:
<Import Project="..\novolis-governance\build\Novolis.StackAnalyzers.props"
Condition="Exists('..\novolis-governance\build\Novolis.StackAnalyzers.props')" />That wires StackBoundaries and Conventions as analyzer ProjectReferences for Novolis.* libraries, and OneTypePerFile (NOV2201) for every project. Repos that do not import the stack props import Novolis.OneTypePerFile.props directly.
For license checks (after GPR publish):
<PackageReference Include="Novolis.Analyzers.Licensing" Version="2026.1.*" PrivateAssets="all" />Or locally import novolis-governance/build/Novolis.LicensingAnalyzers.props.
Design
See design.md for the full diagnostic ID table.