-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
93 lines (83 loc) · 4.56 KB
/
Copy pathDirectory.Build.props
File metadata and controls
93 lines (83 loc) · 4.56 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
<Project>
<!--
eng/Dependencies.props (the CanKit version) is imported by Directory.Packages.props, which is
where package versions belong. Importing it here as well would import the same file twice into
every project (MSB4011).
-->
<PropertyGroup Label="Repository layout">
<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
<RepoArtifactsDir>$(RepositoryRoot)artifacts/</RepoArtifactsDir>
<PackageOutputPath>$(RepoArtifactsDir)nuget/</PackageOutputPath>
</PropertyGroup>
<PropertyGroup Label="Language">
<!--
C# 14 rather than 12 because the Polyfill package's sources use extension members
(`extension(Byte) { ... }`), and those do not parse below 14. Nothing in this repository
relies on a 13/14 feature otherwise; raising the ceiling does not change how the existing
code compiles, and the language version is independent of the target frameworks, so the
netstandard2.0 assets are unaffected.
-->
<LangVersion>14</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<!--
A pinned level, not `latest`. With `latest`, the set of enabled analyzer rules changes with
the SDK, so the next SDK bump can introduce warnings nobody wrote code for. Combined with
TreatWarningsAsErrors below that turns an unrelated toolchain update into a red build.
Raising this is a deliberate edit that arrives in its own pull request.
-->
<AnalysisLevel>10.0</AnalysisLevel>
<!--
Warnings are errors in CI only. The solution builds clean, and this is what keeps it that
way; making it unconditional would instead break every local build with a half-written
method in it, which is how such a setting gets removed again a month later. The `format`
job covers code style separately — EnforceCodeStyleInBuild would only duplicate it, and
two mechanisms for one rule eventually disagree.
-->
<TreatWarningsAsErrors Condition="'$(CI)' == 'true'">true</TreatWarningsAsErrors>
<!--
CS1591 (missing XML comment) is reported per member; the public API is documented, but we do
not want an incidental internal helper to break the build. `dotnet build -warnaserror` in a
local sweep is the way to tighten this later.
-->
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
<PropertyGroup Label="Versioning">
<!--
Nothing in the build computes a version. The build only ever *receives* one:
* release -> semantic-release passes -p:Version=X.Y.Z, the number it derived from the
conventional commits;
* CI -> the pipeline's `version` job runs GitVersion once and passes the SemVer it
derived from tags and branch history to every other job;
* anything else (a plain `dotnet build`, an IDE, a source archive) -> VersionPrefix below.
GitVersion deliberately does not run as an MSBuild task. It would run once per project and
target framework, needs git history the build has no business requiring, and — as this
repository found out on its first CI run — turns "I cannot determine a version" into a hard
build failure. Versioning is a pipeline concern; compiling is not.
To see the version GitVersion would give your working copy: dotnet tool restore
dotnet gitversion
-->
<VersionPrefix>0.0.0</VersionPrefix>
</PropertyGroup>
<PropertyGroup Label="Package identity">
<Authors>Dietmar Borgards</Authors>
<Company>Dietmar Borgards</Company>
<Product>CanKit.Pro</Product>
<Copyright>Copyright (c) 2026 Dietmar Borgards</Copyright>
<PackageProjectUrl>https://github.com/dborgards/CanKit.Pro</PackageProjectUrl>
<RepositoryUrl>https://github.com/dborgards/CanKit.Pro</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
</PropertyGroup>
<PropertyGroup Label="Reproducible builds">
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild Condition="'$(ContinuousIntegrationBuild)' == '' AND '$(CI)' == 'true'">true</ContinuousIntegrationBuild>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
</Project>