-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
107 lines (88 loc) · 4.23 KB
/
Copy pathDirectory.Build.props
File metadata and controls
107 lines (88 loc) · 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<Project>
<!--
Repository-wide MSBuild properties.
Loaded by every project under src/ and tests/. Per-project files override
individual properties as needed. See docs/03-ROADMAP.md R0.4 and the
C# architecture rules in AGENTS.md.
-->
<PropertyGroup>
<!--
Language version. .NET 10 SDK supports C# 14 by default; pin explicitly
so a future SDK change cannot silently shift the language version.
-->
<LangVersion>14</LangVersion>
<!-- Nullable reference types and implicit usings are mandatory. -->
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<!--
XML documentation file generation. With GenerateDocumentationFile
set, CS1591 (missing XML comment) fires on undocumented public
types and members, per AGENTS.md. EnforceCodeStyleInBuild
(set below) enforces IDE00xx style rules like IDE0005 (remove
unnecessary usings) at build time; CS1591 is independent of that.
-->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!--
Warnings as errors. This is the loudest possible gate. Any new analyzer
rule that fires will fail the build. See AGENTS.md: never suppress a
warning without a written reason.
-->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<!--
Analyzers. The .NET SDK ships Microsoft.CodeAnalysis.NetAnalyzers by
default; this property makes the intent explicit and enables the
"latest" rule set.
-->
<AnalysisLevel>latest</AnalysisLevel>
<AnalysisMode>All</AnalysisMode>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<!--
Deterministic builds. Required for R10.2's "compare two clean Release
builds and explain every binary variance" gate.
-->
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild Condition="'$(CI)' == 'true'">true</ContinuousIntegrationBuild>
<!--
Central package management is enabled by the presence of
Directory.Packages.props. Disable package references in individual
csproj files unless an ADR documents an exception.
-->
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<!--
Per-project lock files. The .NET SDK generates a packages.lock.json
in each project directory, pinning the full transitive dependency
graph so `dotnet restore locked-mode` produces a deterministic,
network-free restore. These lock files are committed to the
repository. See docs/work-items/R0.3-central-packages-and-lockfile.md.
-->
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<!-- Source-link for symbol packages; harmless when no SourceLink is configured. -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!--
SDK derives AssemblyVersion and FileVersion from Version.
InformationalVersion carries the semver+metadata suffix.
See docs/work-items/R0.8-versioning-and-rolling-log.md for version policy.
-->
<Version Condition="'$(Version)' == ''">0.0.0</Version>
<InformationalVersion Condition="'$(InformationalVersion)' == ''">$(Version)+local</InformationalVersion>
</PropertyGroup>
<!--
NoWarn list. Each rule here has a documented reason:
IDE0046 — 'if' statement can be simplified. The suppression is scoped
to RollingLog.ValidateBaseName in src/GanttCreator.Core/Logging/RollingLog.cs,
which uses separate guard clauses for readability (one checks rooted
paths, one checks invalid filename chars) rather than a conditional
expression. It is deliberately NOT applied globally; every other file
still enforces the rule.
CA1707 (identifiers should not contain underscores) is NOT suppressed
globally — it is suppressed in tests/Directory.Build.props only, because
the xUnit convention uses snake_case method names for behaviour-driven
test names. Production code still enforces the rule.
The following rules were removed in R0.5 because the xUnit
template UnitTest1.cs placeholders they targeted have been
replaced with real sample tests: CA1515, CA1812, CA1052,
CA1063, CA1305, CA1840, CA2254.
-->
</Project>