Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .nuke/parameters.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"$schema": "build.schema.json",
"Solution": "jasperfx.sln"
"Solution": "jasperfx.slnx"
}
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="DotNet.ReproducibleBuilds" Version="1.2.39" PrivateAssets="All"/>
<PackageReference Include="DotNet.ReproducibleBuilds" PrivateAssets="All"/>
</ItemGroup>

<!-- Pack the shared repo-root logo into every IsPackable=true package
Expand Down
87 changes: 86 additions & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,5 +1,90 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>

<!--
Versions that are deliberately different per target framework. Directory.Packages.props is
evaluated once per inner (per-TFM) build, so $(TargetFramework) is available here and these
conditions resolve the same way the per-csproj ItemGroups they replace did.
-->
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageVersion Include="Microsoft.Bcl.TimeProvider" Version="9.0.11" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="9.0.0" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageVersion Include="Microsoft.Bcl.TimeProvider" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="10.0.0" />
</ItemGroup>

<!--
Roslyn. Three different consumers want three different answers, and the difference is
load-bearing, so this cannot collapse to a single version:

- JasperFx.RuntimeCompiler ships runtime compilation and tracks the SDK's Roslyn. It is the
only multi-targeted consumer, so it gets the default below (range on net9.0, 5.0.0 on
net10.0) with no override.
- The two source generators are netstandard2.0 and must stay pinned LOW. A generator
compiled against Roslyn 4.14+ will not load in an older consumer's compiler. They carry
VersionOverride in their csproj (4.3.0 and 4.8.0 respectively).
- The generator *test* projects host Roslyn in-process to drive the generators under test, so
they override to match the generator they exercise (4.8.0).

The unconditional default exists so netstandard2.0 projects resolve at all; without it they hit
NU1010 (PackageReference with no matching PackageVersion), since neither TFM condition applies.
-->
<ItemGroup>
<PackageVersion Include="Microsoft.CodeAnalysis" Version="[4.14.0,6.0.0)" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="[4.14.0,6.0.0)" />
<PackageVersion Include="Microsoft.CodeAnalysis.Scripting" Version="[4.14.0,6.0.0)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageVersion Update="Microsoft.CodeAnalysis" Version="5.0.0" />
<PackageVersion Update="Microsoft.CodeAnalysis.CSharp" Version="5.0.0" />
<PackageVersion Update="Microsoft.CodeAnalysis.Scripting" Version="5.0.0" />
</ItemGroup>

<!-- Shipping dependencies -->
<ItemGroup>
<PackageVersion Include="Aspire.Hosting" Version="13.3.1" />
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.3.1" />
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.3.1" />
<PackageVersion Include="DotNet.ReproducibleBuilds" Version="1.2.39" />
<PackageVersion Include="FastExpressionCompiler" Version="5.4.1" />
<PackageVersion Include="FSharp.Core" Version="9.0.303" />
<PackageVersion Include="ImTools" Version="4.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageVersion Include="Npgsql" Version="9.0.2" />
<PackageVersion Include="Polly.Core" Version="8.6.5" />
<PackageVersion Include="Spectre.Console" Version="0.55.0" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.0" />
</ItemGroup>

<!--
Test dependencies. Five of these were drifting a version behind in EventStoreTests only
(xunit 2.9.2, xunit.runner.visualstudio 2.9.2, NSubstitute 5.1.0, Shouldly 4.2.1,
Microsoft.Extensions.TimeProvider.Testing 9.0.0); centralizing pulls that suite up to match
everything else.
-->
<ItemGroup>
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="9.7.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageVersion Include="NSubstitute" Version="5.3.0" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.0" />
</ItemGroup>

</Project>
18 changes: 18 additions & 0 deletions build/Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>

<!--
build/ deliberately isolates itself from the repo's MSBuild (see the sibling
Directory.Build.props / .targets, which exist only to stop the parent files from being
imported). Central package management does NOT follow that isolation: NuGet discovers
Directory.Packages.props by walking up the directory tree on its own, so without this file the
root one applies here and Build.csproj's inline Nuke.Common version fails with NU1008.

Opting out keeps the Nuke bootstrap self-contained, which is the same reason the neighbouring
files exist. Do not "fix" this by moving Nuke.Common into the root package list.
-->
<PropertyGroup>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
</PropertyGroup>

</Project>
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "9.0.100",
"version": "10.0.100",
"rollForward": "latestMajor",
"allowPrerelease": true
}
Expand Down
Loading
Loading