-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
81 lines (78 loc) · 5.31 KB
/
Copy pathDirectory.Build.props
File metadata and controls
81 lines (78 loc) · 5.31 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
<Project>
<PropertyGroup>
<!-- PLAT-224: MinVer versioniert aus Git-Tags (v*); ohne Tag fällt es auf
0.1.0-preview.0.<höhe> zurück. Release = Tag pushen. -->
<MinVerTagPrefix>v</MinVerTagPrefix>
<MinVerMinimumMajorMinor>0.1</MinVerMinimumMajorMinor>
<MinVerDefaultPreReleaseIdentifiers>preview.0</MinVerDefaultPreReleaseIdentifiers>
<Authors>Bechstein.Digital Ecommerce UG (haftungsbeschränkt)</Authors>
<Company>Bechstein.Digital Ecommerce UG (haftungsbeschränkt)</Company>
<Product>Callora.Host</Product>
<RepositoryType>git</RepositoryType>
<!-- Paket-Metadaten. Wirken nur, wenn ein Projekt IsPackable setzt — sonst inert.
Die Lizenz stand früher pro Modul, weil die Core-Module AGPL waren und nur der
Plugin-Contract Apache. Seit dem Wechsel auf Apache-2.0 für das ganze
Repository ist das eine Aussage, die nur einmal getroffen werden sollte: Vier
Module trugen nach dem Wechsel monatelang weiter AGPL im Paket, weil niemand
alle vier Stellen nachzog. Hier kann das nicht mehr auseinanderlaufen. -->
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<Copyright>Copyright 2026 Bechstein.Digital Ecommerce UG (haftungsbeschränkt)</Copyright>
<RepositoryUrl>https://github.com/BechsteinDigital/callora</RepositoryUrl>
<PackageProjectUrl>https://github.com/BechsteinDigital/callora</PackageProjectUrl>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>10.0-recommended</AnalysisLevel>
<!-- PLAT-R5: die .editorconfig-Stilregeln (IDExxxx) werden build-wirksam, nicht
nur IDE-only. Zusammen mit TreatWarningsAsErrors erzwingt das Braces
(IDE0011) und File-Scoped-Namespaces (IDE0161) im CI, nicht per Review. -->
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<!-- PLAT-R5c: XML-Doku erzeugen — dient zwei Zwecken: (1) setzt DocumentationMode
auf Parse, damit der CAL0003-Analyzer die ///-Kommentare überhaupt sieht;
(2) speist DocFX/IntelliSense. Die eingebaute CS1591 (fehlende Doku) ist unten
per NoWarn aus: sie lässt sich nicht per Pfad auf die kuratierte Vertragsfläche
beschränken (Compiler-Warnung, kein Hochstufen von none) — das übernimmt CAL0003
gezielt. Test-Projekte brauchen keine XML-Doku. -->
<GenerateDocumentationFile Condition="!$(MSBuildProjectName.EndsWith('.Tests'))">true</GenerateDocumentationFile>
<RestoreUseStaticGraphEvaluation>true</RestoreUseStaticGraphEvaluation>
<!-- SourceLink + eingebettete Quellen: Plugin-Entwickler können im IDE in den
Plattform-Quelltext reinsteppen (die "Code lesen"-Tiefe zusätzlich zur Doku),
OHNE den Monorepo zu klonen. EmbedAllSources legt die Quelle ins Symbol-Paket
(funktioniert auch gegen ein privates Repo); PublishRepositoryUrl +
EmbedUntrackedSources ergänzen den Git-URL-SourceLink-Weg (falls Repo öffentlich).
Die GitHub-SourceLink-Provider sind im .NET-SDK eingebaut — kein Extra-Paket nötig.
Wirkt nur bei IsPackable-Projekten (Symbol-Paket .snupkg), sonst inert. -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<EmbedAllSources>true</EmbedAllSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<Deterministic>true</Deterministic>
<!-- PLAT-201: Warnungen sind Build-Fehler; Ausnahmen unten sind begründet. -->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>$(NoWarn);CS1573;CS1574;CS1734;CA1001;CA1068;CA1305;CA1510;CA1513;CA1716;CA1805;CA1806;CA1822;CA1832;CA1848;CA1859;CA1861;CA1865;CA2012;CA2016;CA2208;CA2249;CA5350;CA5351</NoWarn>
<!-- CS1591: die eingebaute "fehlende XML-Doku"-Warnung gilt für die GESAMTE public
Fläche und lässt sich nicht per Pfad auf die Vertragsfläche verengen. Callora
zieht die Grenze über [CalloraInternal], nicht über public — daher übernimmt der
CAL0003-Analyzer die Doku-Pflicht gezielt für die Vertragsfläche (.Contracts /
Extensibility / [CalloraExtensible]) und CS1591 bleibt aus. -->
<NoWarn>$(NoWarn);CS1591</NoWarn>
<!-- CA1711: Domänen-Suffixe (AudioStream, JobQueue, …) sind fachlich korrekt,
die Typen erben nicht von den gleichnamigen BCL-Typen.
CA1873: Logging liegt ausschließlich auf Cold-Paths (Call-Start, Purge,
Plugin-Load); LoggerMessage-SourceGen erst bei echtem Hot-Path-Bedarf. -->
<NoWarn>$(NoWarn);CA1711;CA1873</NoWarn>
<!-- REV2 §7: der Callora-Analyzer (CAL0001) erzwingt die [CalloraInternal]-Grenze.
Framework-Assemblies (Core/Administration/Workspace/CLI/Analyzers) setzen dies
auf true und dürfen die interne Fläche konsumieren; jede andere Kompilierung —
insbesondere Plugins — bleibt false und wird geprüft. Für den Compiler sichtbar,
damit der Analyzer den Wert lesen kann. -->
<CalloraFrameworkAssembly Condition="'$(CalloraFrameworkAssembly)' == ''">false</CalloraFrameworkAssembly>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MinVer" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
<CompilerVisibleProperty Include="CalloraFrameworkAssembly" />
</ItemGroup>
</Project>