-
Notifications
You must be signed in to change notification settings - Fork 173
/
Directory.Build.props
142 lines (127 loc) · 6.8 KB
/
Directory.Build.props
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?xml version="1.0" encoding="utf-8"?>
<Project>
<!--
Speckle-sharp main Directory.Build.props file
This file gets automatically imported by every project in the repo.
The import happens before any information in the .csproj, which means that each project
can override these properties when necessary.
It is intended to hold any common information shared by all (or most) projects in the repository.
-->
<PropertyGroup Label="Company Info">
<Authors>Speckle</Authors>
<Company>Speckle</Company>
<Copyright>Copyright (c) AEC Systems Ltd</Copyright>
</PropertyGroup>
<PropertyGroup Label="General Config">
<LangVersion>11</LangVersion>
<DebugSymbols>true</DebugSymbols>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<!-- False if running on CI, will prevent copying of files to local folders -->
<IsDesktopBuild Condition="'$(IsDesktopBuild)' == ''">true</IsDesktopBuild>
<!-- Code quality -->
<EnableNetAnalyzers>true</EnableNetAnalyzers>
<AnalysisLevel>latest-AllEnabledByDefault</AnalysisLevel>
<SatelliteResourceLanguages>none</SatelliteResourceLanguages>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!-- Ingored warnings, most aspirational but too noisy for now, some by design. -->
<NoWarn>
<!--Disabled by design-->
CA5399;CA1862;
<!--XML comment-->
CS1591;CS1573;
<!-- Globalization rules -->
CA1303;CA1304;CA1305;CA1307;CA1308;CA1309;CA1310;CA1311;CA2101;
NU1701;
<!--Others we don't want-->
CA1815;CA1054;$(NoWarn)
</NoWarn>
<WarningsAsErrors>
$(WarningsAsErrors);
<!--Net6 default enabled analysers-->
CA1416; CA1417; CA1418; CA1831; CA2013; CA2014; CA2015; CA2017;
CA2018; CA2200; CA2252; CA2247; CA2255; CA2256; CA2257; CA2258;
<!--Net7 default enabled analysers-->
CA1420; CA1422; CA2259; CA2260;
<!--Net8 default enabled analysers-->
CA1856; CA1857; CA2021; CA2261;
<!--Security analysers -->
CA2100; CA2119; CA2153; CA2300; CA2301; CA2302; CA2305;
CA2310; CA2311; CA2312; CA2315; CA2321; CA2322; CA2326; CA2327;
CA2328; CA2329; CA2330; CA2350; CA2351; CA2352; CA2353; CA2354;
CA2355; CA2356; CA2361; CA2362; CA3001; CA3002; CA3003; CA3004;
CA3006; CA3007; CA3008; CA3009; CA3010; CA3011; CA3012; CA3061;
CA3076; CA3077; CA3147; CA5350; CA5351; CA5358; CA5359;
CA5360; CA5361; CA5362; CA5363; CA5364; CA5365; CA5366; CA5367;
CA5368; CA5370; CA5371; CA5372; CA5373; CA5374; CA5375;
CA5376; CA5377; CA5378; CA5379; CA5380; CA5381; CA5382; CA5383;
CA5384; CA5385; CA5386; CA5387; CA5388; CA5389; CA5390; CA5391;
CA5392; CA5393; CA5395; CA5396; CA5397; CA5398;
CA5400; CA5401; CA5402; CA5403; CA5404; CA5405;
<!-- The following security analysers are ommited as errors for the listed reasons -->
<!--"CA5394: Do not use insecure randomness" - random number generators used for non cryptographic usecases-->
<!--"CA2109: Review visible event handlers" - threat has not existed since net4.5-->
<!--"CA3075: Insecure DTD Processing" - we assume loaded XML is trusted-->
<!--"CA5369: Use XmlReader for Deserialize" - we assume loaded XML is trusted-->
<!--"CA5399: Enable HttpClient certificate revocation list check" - causes issues with corporate networks that use SSL decryption. HTTPClientHandler does check for invalid SSL certs without this property set true-->
<!--Level 1 "Severe Warnings"-->
CS0183; CS0184; CS0197; CS0420; CS0465; CS0602; CS0626; CS0657; CS0658; CS0672; CS0684; CS0688;
CS1030; CS1058; CS1060; CS1200; CS1201; CS1202; CS1203;
CS1522; CS1589; CS1590; CS1592; CS1598;
CS1607; CS1616; CS1633; CS1634; CS1635; CS1645; CS1658; CS1682; CS1683; CS1684; CS1685; CS1687; CS1690; CS1691; CS1692; CS1694; CS1695; CS1696; CS1697; CS1699;
CS1707; CS1709; CS1720; CS1723; CS1762;
CS1911; CS1956; CS1957;
CS2002; CS2014; CS2023; CS2029;
CS3000; CS3001; CS3002; CS3003; CS3004; CS3005; CS3006; CS3008; CS3009; CS3010; CS3011; CS3012; CS3013; CS3014; CS3015; CS3017; CS3018; CS3022; CS3023; CS3024; CS3026; CS3027;
CS5000;
<!-- The following Level 1 warnings have violations in our code, all are aspirataional, but not high priority -->
<!--"CS0612: 'member' is obsolete"-->
<!--"CS0809: Obsolete member 'memberA' overrides non-obsolete member 'memberB'."-->
<!--"CS1570: XML comment on 'construct' has badly formed XML — 'reason'"-->
<!--"CS1581: Invalid return type in XML comment cref attribute"-->
<!--"CS1580: Invalid type for parameter 'parameter number' in XML comment cref attribute"-->
<!--"CS1584: XML comment on 'member' has syntactically incorrect cref attribute 'invalid_syntax'"-->
<!--"CS1574: XML comment on 'construct' has syntactically incorrect cref attribute 'name'"-->
<!--"CS4014: Because this call is not awaited, execution of the current method continues before the call is completed"-->
</WarningsAsErrors>
<IsPackable>false</IsPackable>
</PropertyGroup>
<PropertyGroup Condition="$(IsDesktopBuild) == 'false'">
<WarningsAsErrors>
$(WarningsAsErrors);
IDE0011;IDE0090;IDE0161;IDE0005;
CA1806;CA1806;CA1806;CA1031;
</WarningsAsErrors>
</PropertyGroup>
<PropertyGroup Label="Package Config">
<!-- Version info -->
<Version Condition="$(Version) == ''">2.0.999-local</Version>
<FileVersion Condition="$(FileVersion) == ''">2.0.999.0000</FileVersion>
<AssemblyVersion Condition="$(AssemblyVersion) == ''">$(FileVersion)</AssemblyVersion>
<!-- Package info -->
<PackageVersion Condition="$(PackageVersion) == ''">$(Version)</PackageVersion>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageTags>speckle</PackageTags>
<PackageProjectUrl>https://speckle.systems/</PackageProjectUrl>
<PackageIcon>logo.png</PackageIcon>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
<PropertyGroup Label="Repo Info">
<RepositoryUrl>https://github.com/specklesystems/speckle-sharp</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<!-- Expose the repository root to all projects -->
<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
</PropertyGroup>
<ItemGroup>
<!-- This file contains the configuration for some analyzer warnings, such as cyclomatic
complexity threshold -->
<AdditionalFiles Include="$(RepositoryRoot)CodeMetricsConfig.txt"/>
<None
Condition="'$(IsPackable)' == 'true'"
Include="$(RepositoryRoot)logo.png"
Pack="true"
PackagePath=""
Visible="false"/>
</ItemGroup>
</Project>