-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Packages.props
More file actions
128 lines (128 loc) · 8.9 KB
/
Copy pathDirectory.Packages.props
File metadata and controls
128 lines (128 loc) · 8.9 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<!-- App -->
<PackageVersion Include="LayeredCraft.OptimizedEnums" Version="1.4.2" />
<!-- Pin past the transitive SQLitePCLRaw.lib.e_sqlite3 2.1.11 that
Microsoft.Data.Sqlite.Core 10.0.9 pulls in - flagged NU1903 high
severity (GHSA-2m69-gcr7-jv3q). -->
<PackageVersion Include="SQLitePCLRaw.lib.e_sqlite3" Version="3.53.3" />
<!-- NuGet package metadata (Directory.Build.props). Build-time-only
tool, versioned in lockstep with the .NET SDK preview builds here -
pinned to match global.json's SDK pin, same as the
Microsoft.Extensions.*/EF Core net11.0 group below. -->
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="11.0.100-preview.6.26359.118" />
<!-- Logging: Serilog + LayeredCraft.StructuredLogging call-site extensions,
per .agents/skills/engineering-workflow/references/coding-standards.md.
Console sink only - this repo runs in Docker (docs/deployment.md),
stdout is the sink Docker already captures. -->
<PackageVersion Include="Serilog" Version="4.4.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" />
<PackageVersion Include="LayeredCraft.StructuredLogging" Version="1.2.3" />
<!-- Configuration: appsettings.json + env vars feeding Serilog.Settings.Configuration
and IOptions<T> - see ADR-0003 (docs/adr/0003-allow-appsettingsjson-for-non-secret-config.md). -->
<PackageVersion Include="Serilog.Settings.Configuration" Version="10.0.1" />
</ItemGroup>
<!-- Microsoft.EntityFrameworkCore.*/Microsoft.Extensions.* packages ship
parallel net10.0 (stable) and net11.0 (preview) build lines and are
all pinned in lockstep to the same version per TargetFramework - one
property instead of repeating the same range on every PackageVersion,
same pattern as dynamodb-efcore-provider's Directory.Packages.props
EFCoreVersion property. The net11.0 value is pinned to match
global.json's SDK pin (11.0.100-preview.6.26359.118) - bump both
conditions together when the SDK pin moves.
Upper bound is plain (no prerelease marker) in the net10.0 branch
because nothing in that range references a prerelease - NuGet only
considers prerelease versions for a package ID if something in the
graph explicitly requests one, so a bare 11.0.0 upper bound already
excludes all 11.0.0 previews on its own (confirmed empirically: an
isolated restore against a same-shaped range stayed on the latest
stable version even though a same-major-number prerelease outranks it
numerically). Contrast with the net11.0 branch, whose lower bound IS
a prerelease and therefore needs the -a marker: that lower bound
flips NuGet's "consider prereleases for this package ID" switch on
for the whole dependency graph, so a bare 12.0.0 upper bound would
NOT reliably exclude 12.0.0 previews once anything else in a
consumer's graph requests one (confirmed empirically via a forced
version-conflict test: it silently resolved past a bare next-major
bound to a same-shaped preview). The -a suffix is an otherwise-
meaningless marker chosen only because it sorts below every real
prerelease label Microsoft uses (preview, rc, beta, alpha) - 'a' <
those alphabetically - so the exclusive upper bound sits below all of
them, not just below 12.0.0 stable. Bare "-0" is the more common
idiom for this (and is what NuGet's own dependency-resolution docs
use), but nuget.org's push validator rejects a purely-numeric
prerelease label as an invalid Version - this letter-led marker
sidesteps that. -->
<!-- Property Condition (rather than the ItemGroup Condition below) is
deliberately NOT used to gate these values per-TargetFramework: NuGet's
static-graph restore evaluates Directory.Packages.props at least once
without $(TargetFramework) set (the outer, TFM-agnostic pass used to
build the project closure), and a property whose every Condition
branch depends on $(TargetFramework) resolves empty in that pass. An
empty Version on an unconditioned PackageVersion item is a real bug,
not just a warning - confirmed empirically: it silently resolved
Microsoft.EntityFrameworkCore.Sqlite to 1.0.0 in one project instead of
floating warning-free to latest-per-range. Keeping the Condition on
the ItemGroup itself means the PackageVersion items simply don't exist
during the TFM-agnostic pass, which is the same safe shape this file
already used before these properties existed. -->
<PropertyGroup Label="Microsoft.* package version selection">
<MicrosoftPackagesVersionNet10>[10.0.10, 11.0.0)</MicrosoftPackagesVersionNet10>
<MicrosoftPackagesVersionNet11>[11.0.0-preview.6.26359.118, 12.0.0-a)</MicrosoftPackagesVersionNet11>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="$(MicrosoftPackagesVersionNet10)" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(MicrosoftPackagesVersionNet10)" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="$(MicrosoftPackagesVersionNet10)" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftPackagesVersionNet10)" />
<!-- SharpMud.Hosting's composition-root builder wraps this directly -
see docs/adr/0006-nuget-package-distribution.md. -->
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftPackagesVersionNet10)" />
<!-- Previously pinned to [10.0.9, 11.0.0) on net10.0 - one patch behind
the rest of this lockstep group. Folded into the shared property
(floor now 10.0.10) since nothing pins it lower deliberately. -->
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftPackagesVersionNet10)" />
<!-- Not a Microsoft.* package and doesn't track the same version numbers
as the group above - stays on its own explicit range. See ADR-0006. -->
<PackageVersion Include="EntityFrameworkCore.DynamoDb" Version="[10.0.0, 11.0.0)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net11.0'">
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="$(MicrosoftPackagesVersionNet11)" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(MicrosoftPackagesVersionNet11)" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="$(MicrosoftPackagesVersionNet11)" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftPackagesVersionNet11)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftPackagesVersionNet11)" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftPackagesVersionNet11)" />
<PackageVersion Include="EntityFrameworkCore.DynamoDb" Version="[11.0.0-preview.91, 12.0.0-a)" />
</ItemGroup>
<ItemGroup>
<!-- Test Framework: xUnit v3 on Microsoft.Testing.Platform v2 (MTP v2), per docs/architecture.md.
Use xunit.v3.mtp-v2, not the plain xunit.v3 meta-package - the latter resolves
xunit.v3.core.mtp-v1, whose Microsoft.Testing.Platform version is incompatible with
a directly-referenced/newer Microsoft.Testing.Platform and throws TypeLoadException
(IDataConsumer) at test-host startup. -->
<PackageVersion Include="Microsoft.Testing.Platform" Version="2.3.2" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.8.1" />
<PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
<!-- AutoFixture -->
<PackageVersion Include="AutoFixture" Version="4.18.1" />
<PackageVersion Include="AutoFixture.Xunit3" Version="4.19.0" />
<PackageVersion Include="AutoFixture.AutoNSubstitute" Version="4.18.1" />
<!-- Mocking. NSubstitute 6.0.0 is outside AutoFixture.AutoNSubstitute
4.18.1's stated <6.0.0 range (NU1608) - only unreleased
AutoFixture.AutoNSubstitute previews declare support for 6.x so
far. Suppressed narrowly for test projects in Directory.Build.props
rather than staying on 5.3.0, since the integration has been
validated against 6.0.0 by this repo's own test suite. Revisit
(and drop the suppression) once AutoFixture.AutoNSubstitute
publishes a stable release supporting NSubstitute 6.x. -->
<PackageVersion Include="NSubstitute" Version="6.0.0" />
<!-- Assertions -->
<PackageVersion Include="AwesomeAssertions" Version="9.5.0" />
</ItemGroup>
</Project>