Skip to content

Commit 8fefca5

Browse files
authoredDec 6, 2023
Improve Central Package Management, update dependencies and fix package validation/MSBuild warnings (#15362)
* Use version overrides for ImageSharp 2 * Move Directory.Packages.props to root, use GlobalPackageReference and replace Microsoft.CSharp with Microsoft.CodeAnalysis.CSharp * Replace NPoco.SqlServer with NPoco and remove unused System dependencies * Fix package validation and MSBuild warnings * Add nuget.config and enable package source mapping * Remove explicitly set C# language version * Add empty Directory.Packages.props file for acceptance test * Downgrade SixLabors.ImageSharp back to 3.0.2 because of breaking changes * Update ImageSharp/ImageSharp.Web to 3.1.0 and use ComputeHMAC
1 parent a6b53b0 commit 8fefca5

21 files changed

+137
-102
lines changed
 

‎Directory.Build.props

+6-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
<Project>
33
<PropertyGroup>
44
<TargetFramework>net8.0</TargetFramework>
5-
<LangVersion>11.0</LangVersion>
65
<Company>Umbraco HQ</Company>
76
<Authors>Umbraco</Authors>
87
<Copyright>Copyright © Umbraco $([System.DateTime]::Today.ToString('yyyy'))</Copyright>
@@ -17,6 +16,7 @@
1716
<WarningsAsErrors>nullable</WarningsAsErrors>
1817
<ImplicitUsings>enable</ImplicitUsings>
1918
<GenerateDocumentationFile>true</GenerateDocumentationFile>
19+
<WarnOnPackingNonPackableProject>false</WarnOnPackingNonPackableProject>
2020
</PropertyGroup>
2121

2222
<!-- SourceLink -->
@@ -35,21 +35,16 @@
3535
<EnableStrictModeForCompatibleTfms>true</EnableStrictModeForCompatibleTfms>
3636
</PropertyGroup>
3737

38-
<ItemGroup>
39-
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.133" PrivateAssets="all" IsImplicitlyDefined="true" />
40-
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.507" PrivateAssets="all" IsImplicitlyDefined="true" />
41-
<PackageReference Include="Umbraco.Code" Version="2.0.0" PrivateAssets="all" IsImplicitlyDefined="true" />
42-
<PackageReference Include="Umbraco.GitVersioning.Extensions" Version="0.2.0" PrivateAssets="all" IsImplicitlyDefined="true" />
43-
</ItemGroup>
38+
<!-- Calculate version only once for the whole repository -->
39+
<PropertyGroup>
40+
<GitVersionBaseDirectory>$(MSBuildThisFileDirectory)</GitVersionBaseDirectory>
41+
</PropertyGroup>
4442

43+
<!-- Include icon in generated NuGet packages -->
4544
<ItemGroup>
4645
<Content Include="$(MSBuildThisFileDirectory)icon.png" Pack="true" PackagePath="" Visible="false" />
4746
</ItemGroup>
4847

49-
<PropertyGroup>
50-
<GitVersionBaseDirectory>$(MSBuildThisFileDirectory)</GitVersionBaseDirectory>
51-
</PropertyGroup>
52-
5348
<!-- Use version range on project references (to limit on major version in generated packages) -->
5449
<Target Name="_GetProjectReferenceVersionRanges" AfterTargets="_GetProjectReferenceVersions">
5550
<ItemGroup>

‎src/Directory.Packages.props ‎Directory.Packages.props

+58-32
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,69 @@
22
<Project>
33
<PropertyGroup>
44
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
5-
<NoWarn>NU1507</NoWarn>
5+
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
66
</PropertyGroup>
7+
8+
<!-- Global packages (private, build-time packages for all projects) -->
9+
<ItemGroup>
10+
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.6.133" />
11+
<GlobalPackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.507" />
12+
<GlobalPackageReference Include="Umbraco.Code" Version="2.0.0" />
13+
<GlobalPackageReference Include="Umbraco.GitVersioning.Extensions" Version="0.2.0" />
14+
</ItemGroup>
15+
16+
<!-- Microsoft packages -->
717
<ItemGroup>
8-
<PackageVersion Include="Asp.Versioning.Mvc" Version="7.1.0" />
9-
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.1.0" />
10-
<PackageVersion Include="Dazinator.Extensions.FileProviders" Version="2.0.0" />
11-
<PackageVersion Include="Examine" Version="3.1.0" />
12-
<PackageVersion Include="Examine.Core" Version="3.1.0" />
13-
<PackageVersion Include="HtmlAgilityPack" Version="1.11.54" />
14-
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.6" />
15-
<PackageVersion Include="MailKit" Version="4.3.0" />
16-
<PackageVersion Include="Markdown" Version="2.2.1" />
17-
<PackageVersion Include="MessagePack" Version="2.5.129" />
1818
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0" />
1919
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.0" />
20+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
2021
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.0" />
21-
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
22-
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
2322
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0" />
23+
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
24+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" />
25+
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
26+
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
27+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
2428
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
2529
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="8.0.0" />
2630
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
31+
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" />
2732
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.0" />
33+
<PackageVersion Include="Microsoft.Extensions.Identity.Stores" Version="8.0.0" />
2834
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
2935
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.0" />
3036
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
3137
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="8.0.0" />
32-
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
33-
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
34-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
35-
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" />
36-
<PackageVersion Include="Microsoft.Extensions.Identity.Stores" Version="8.0.0" />
38+
<PackageVersion Include="System.Runtime.Caching" Version="8.0.0" />
39+
</ItemGroup>
40+
41+
<!-- Umbraco packages -->
42+
<ItemGroup>
43+
<PackageVersion Include="Umbraco.JsonSchema.Extensions" Version="0.3.0" />
44+
<PackageVersion Include="Umbraco.CSharpTest.Net.Collections" Version="15.0.0" />
45+
</ItemGroup>
46+
47+
<!-- Third-party packages -->
48+
<ItemGroup>
49+
<PackageVersion Include="Asp.Versioning.Mvc" Version="7.1.0" />
50+
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.1.0" />
51+
<PackageVersion Include="Dazinator.Extensions.FileProviders" Version="2.0.0" />
52+
<PackageVersion Include="Examine" Version="3.1.0" />
53+
<PackageVersion Include="Examine.Core" Version="3.1.0" />
54+
<PackageVersion Include="HtmlAgilityPack" Version="1.11.54" />
55+
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.6" />
56+
<PackageVersion Include="MailKit" Version="4.3.0" />
57+
<PackageVersion Include="Markdown" Version="2.2.1" />
58+
<PackageVersion Include="MessagePack" Version="2.5.140" />
3759
<PackageVersion Include="MiniProfiler.AspNetCore.Mvc" Version="4.3.8" />
3860
<PackageVersion Include="MiniProfiler.Shared" Version="4.3.8" />
3961
<PackageVersion Include="ncrontab" Version="3.3.3" />
4062
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
63+
<PackageVersion Include="NPoco" Version="5.7.1" />
4164
<PackageVersion Include="NPoco.SqlServer" Version="5.7.1" />
42-
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
43-
<PackageVersion Include="OpenIddict.Abstractions" Version="4.10.0" />
44-
<PackageVersion Include="OpenIddict.AspNetCore" Version="4.10.0" />
45-
<PackageVersion Include="OpenIddict.EntityFrameworkCore" Version="4.10.0" />
65+
<PackageVersion Include="OpenIddict.Abstractions" Version="4.10.1" />
66+
<PackageVersion Include="OpenIddict.AspNetCore" Version="4.10.1" />
67+
<PackageVersion Include="OpenIddict.EntityFrameworkCore" Version="4.10.1" />
4668
<PackageVersion Include="Serilog" Version="3.1.1" />
4769
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.0" />
4870
<PackageVersion Include="Serilog.Enrichers.Process" Version="2.0.2" />
@@ -55,16 +77,20 @@
5577
<PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" />
5678
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
5779
<PackageVersion Include="Serilog.Sinks.Map" Version="1.0.2" />
58-
<PackageVersion Include="SixLabors.ImageSharp" Version="3.0.2" />
59-
<PackageVersion Include="SixLabors.ImageSharp.Web" Version="3.0.1" />
80+
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.0" />
81+
<PackageVersion Include="SixLabors.ImageSharp.Web" Version="3.1.0" />
6082
<PackageVersion Include="Smidge.InMemory" Version="4.3.0" />
6183
<PackageVersion Include="Smidge.Nuglify" Version="4.3.0" />
62-
<PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
63-
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="8.0.0" />
64-
<PackageVersion Include="System.Threading.Tasks.Dataflow" Version="8.0.0" />
65-
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
66-
<PackageVersion Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
67-
<PackageVersion Include="System.Runtime.Caching" Version="8.0.0" />
68-
<PackageVersion Include="Umbraco.CSharpTest.Net.Collections" Version="15.0.0" />
84+
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
85+
</ItemGroup>
86+
87+
<!-- Transitive pinned versions -->
88+
<ItemGroup>
89+
<!-- NPoco.SqlServer brings in a vulnerable version of Azure.Identity -->
90+
<PackageVersion Include="Azure.Identity" Version="1.10.4" />
91+
<!-- Umbraco.Code depends on an outdated Microsoft.CodeAnalysis.CSharp.Workspaces version-->
92+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.8.0" />
93+
<!-- Dazinator.Extensions.FileProviders brings in a vulnerable version of System.Net.Http -->
94+
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
6995
</ItemGroup>
70-
</Project>
96+
</Project>

‎nuget.config

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<packageSources>
4+
<clear />
5+
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
6+
</packageSources>
7+
<packageSourceMapping>
8+
<!-- Ensure all packages are pulled from NuGet -->
9+
<packageSource key="nuget">
10+
<package pattern="*" />
11+
</packageSource>
12+
</packageSourceMapping>
13+
</configuration>

‎src/Umbraco.Cms.Imaging.ImageSharp/Media/ImageSharpImageUrlGenerator.cs

+1-5
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,7 @@ internal ImageSharpImageUrlGenerator(IEnumerable<string> supportedImageFileTypes
130130
{
131131
var uri = QueryHelpers.AddQueryString(options.ImageUrl, queryString);
132132

133-
// It's important that we call the async version here.
134-
// This is because if we call the synchronous version, we ImageSharp will start a new Task ever single time.
135-
// This becomes a huge problem if the site is under load, and will result in massive spikes in response time.
136-
// See https://github.com/SixLabors/ImageSharp.Web/blob/main/src/ImageSharp.Web/AsyncHelper.cs#L24
137-
var token = _requestAuthorizationUtilities.ComputeHMACAsync(uri, CommandHandling.Sanitize).GetAwaiter().GetResult();
133+
var token = _requestAuthorizationUtilities.ComputeHMAC(uri, CommandHandling.Sanitize);
138134
if (string.IsNullOrEmpty(token) is false)
139135
{
140136
queryString.Add(RequestAuthorizationUtilities.TokenCommand, token);

‎src/Umbraco.Cms.Imaging.ImageSharp/Umbraco.Cms.Imaging.ImageSharp.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
<PropertyGroup>
33
<Title>Umbraco CMS - Imaging - ImageSharp</Title>
44
<Description>Adds imaging support using ImageSharp/ImageSharp.Web to Umbraco CMS.</Description>
5-
<EnablePackageValidation>false</EnablePackageValidation>
65
</PropertyGroup>
76

87
<ItemGroup>

‎src/Umbraco.Cms.Imaging.ImageSharp2/Umbraco.Cms.Imaging.ImageSharp2.csproj

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
<PropertyGroup>
33
<Title>Umbraco CMS - Imaging - ImageSharp 2</Title>
44
<Description>Adds imaging support using ImageSharp/ImageSharp.Web version 2 to Umbraco CMS.</Description>
5-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
65
</PropertyGroup>
76

87
<ItemGroup>
9-
<PackageReference Include="SixLabors.ImageSharp" Version="[2.1.6, 3)" />
10-
<PackageReference Include="SixLabors.ImageSharp.Web" Version="[2.0.2, 3)" />
8+
<PackageReference Include="SixLabors.ImageSharp" VersionOverride="[2.1.6, 3)" />
9+
<PackageReference Include="SixLabors.ImageSharp.Web" VersionOverride="[2.0.2, 3)" />
1110
</ItemGroup>
1211

1312
<ItemGroup>

‎src/Umbraco.Cms.Targets/Umbraco.Cms.Targets.csproj

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
<Description>Installs Umbraco CMS with minimal dependencies in your ASP.NET Core project.</Description>
55
<IncludeBuildOutput>false</IncludeBuildOutput>
66
<IncludeSymbols>false</IncludeSymbols>
7-
<!-- TODO: Enable when final version is shipped (because there's currently no previous version) -->
8-
<EnablePackageValidation>false</EnablePackageValidation>
9-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
107
</PropertyGroup>
118

129
<ItemGroup>
@@ -24,7 +21,7 @@
2421
<NoWarn>NU5100;NU5128</NoWarn>
2522
</PropertyGroup>
2623
<ItemGroup>
27-
<PackageReference Include="Umbraco.JsonSchema.Extensions" Version="0.3.0" PrivateAssets="all" GeneratePathProperty="true" />
24+
<PackageReference Include="Umbraco.JsonSchema.Extensions" PrivateAssets="all" GeneratePathProperty="true" />
2825
<None Include="$(PkgUmbraco_JsonSchema_Extensions)\tasks\netstandard2.0\**" Pack="true" PackagePath="tasks\netstandard2.0" Visible="false" />
2926
<Content Include="$(_UmbracoCmsJsonSchemaReference)" PackagePath="" Visible="false" />
3027
</ItemGroup>

‎src/Umbraco.Cms/Umbraco.Cms.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
<Description>Installs Umbraco CMS with all default dependencies in your ASP.NET Core project.</Description>
55
<IncludeBuildOutput>false</IncludeBuildOutput>
66
<IncludeSymbols>false</IncludeSymbols>
7-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
87
</PropertyGroup>
98

109
<ItemGroup>

‎src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj

+9-13
Original file line numberDiff line numberDiff line change
@@ -12,35 +12,31 @@
1212

1313
<ItemGroup>
1414
<PackageReference Include="Examine.Core" />
15-
<PackageReference Include="HtmlAgilityPack" />
16-
<PackageReference Include="MailKit" />
15+
<PackageReference Include="HtmlAgilityPack" />
16+
<PackageReference Include="MailKit" />
1717
<PackageReference Include="Markdown" />
18-
<PackageReference Include="Microsoft.CSharp" />
18+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
1919
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" />
2020
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
2121
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
2222
<PackageReference Include="Microsoft.Extensions.Http" />
2323
<PackageReference Include="Microsoft.Extensions.Identity.Stores" />
2424
<PackageReference Include="MiniProfiler.Shared" />
25-
<PackageReference Include="ncrontab" />
25+
<PackageReference Include="ncrontab" />
2626
<PackageReference Include="Newtonsoft.Json" />
27-
<PackageReference Include="Serilog" />
27+
<PackageReference Include="NPoco" />
2828
<PackageReference Include="OpenIddict.Abstractions" />
29-
<PackageReference Include="NPoco.SqlServer" />
30-
<PackageReference Include="Serilog.Enrichers.Process" />
31-
<PackageReference Include="Serilog.Enrichers.Thread" />
29+
<PackageReference Include="Serilog" />
30+
<PackageReference Include="Serilog.Enrichers.Process" />
31+
<PackageReference Include="Serilog.Enrichers.Thread" />
3232
<PackageReference Include="Serilog.Expressions" />
33-
<PackageReference Include="Serilog.Extensions.Hosting" />
33+
<PackageReference Include="Serilog.Extensions.Hosting" />
3434
<PackageReference Include="Serilog.Formatting.Compact" />
3535
<PackageReference Include="Serilog.Formatting.Compact.Reader" />
3636
<PackageReference Include="Serilog.Settings.Configuration" />
3737
<PackageReference Include="Serilog.Sinks.Async" />
3838
<PackageReference Include="Serilog.Sinks.File" />
3939
<PackageReference Include="Serilog.Sinks.Map" />
40-
<PackageReference Include="System.IO.FileSystem.AccessControl" />
41-
<PackageReference Include="System.Security.Cryptography.Pkcs" />
42-
<PackageReference Include="System.Threading.Tasks.Dataflow" />
43-
4440
</ItemGroup>
4541

4642
<ItemGroup>

‎src/Umbraco.Web.UI/Umbraco.Web.UI.csproj

+6-3
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,23 @@
33
<RootNamespace>Umbraco.Cms.Web.UI</RootNamespace>
44
<IsPackable>false</IsPackable>
55
<EnablePackageValidation>false</EnablePackageValidation>
6-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
76
</PropertyGroup>
87

98
<Import Project="..\Umbraco.Cms.Targets\buildTransitive\Umbraco.Cms.Targets.props" />
109
<Import Project="..\Umbraco.Cms.Targets\buildTransitive\Umbraco.Cms.Targets.targets" />
1110
<ItemGroup>
1211
<ProjectReference Include="..\Umbraco.Cms\Umbraco.Cms.csproj" />
12+
</ItemGroup>
13+
14+
<ItemGroup>
1315
<!-- Add design/build time support for EF Core migrations -->
14-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" PrivateAssets="all" />
16+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" PrivateAssets="all" />
1517
</ItemGroup>
1618

1719
<ItemGroup>
20+
<!-- Ensure the AppLocalIcu setting is the same as the referenced ICU package version and changes are also done to the template project! -->
1821
<!-- Opt-in to app-local ICU to ensure consistent globalization APIs across different platforms -->
19-
<PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="72.1.0.3" />
22+
<PackageReference Include="Microsoft.ICU.ICU4C.Runtime" VersionOverride="72.1.0.3" />
2023
<RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="72.1.0.3" Condition="$(RuntimeIdentifier.StartsWith('linux')) or $(RuntimeIdentifier.StartsWith('win')) or ('$(RuntimeIdentifier)' == '' and !$([MSBuild]::IsOSPlatform('osx')))" />
2124
</ItemGroup>
2225

‎templates/Directory.Build.props

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
12
<Project>
23
<!-- Enable multi-level merging with src -->
3-
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)..\src\'))" />
4+
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props, $(MSBuildThisFileDirectory)..\src))" />
45
</Project>

‎templates/Umbraco.Templates.csproj

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
<IncludeContentInPack>true</IncludeContentInPack>
1010
<ContentTargetFolders>.</ContentTargetFolders>
1111
<NoWarn>NU5128</NoWarn>
12-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
1312
</PropertyGroup>
1413

1514
<ItemGroup>
@@ -44,7 +43,7 @@
4443

4544
<!-- Update template.json files with the default UmbracoVersion value set to the current build version -->
4645
<ItemGroup>
47-
<PackageReference Include="Umbraco.JsonSchema.Extensions" Version="0.3.0" PrivateAssets="all" />
46+
<PackageReference Include="Umbraco.JsonSchema.Extensions" PrivateAssets="all" />
4847
</ItemGroup>
4948
<ItemGroup>
5049
<Content Update="**\.template.config\template.json" Pack="false" />

‎templates/UmbracoPackage/UmbracoPackage.csproj

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFramework>net8.0</TargetFramework>
4+
<Nullable>enable</Nullable>
5+
<ImplicitUsings>enable</ImplicitUsings>
46
<ContentTargetFolders>.</ContentTargetFolders>
5-
<Product>UmbracoPackage</Product>
7+
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">UmbracoPackage</RootNamespace>
8+
</PropertyGroup>
9+
10+
<PropertyGroup>
611
<PackageId>UmbracoPackage</PackageId>
12+
<Product>UmbracoPackage</Product>
713
<Title>UmbracoPackage</Title>
814
<Description>...</Description>
915
<PackageTags>umbraco plugin package</PackageTags>
10-
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">UmbracoPackage</RootNamespace>
11-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
1216
</PropertyGroup>
13-
17+
1418
<ItemGroup>
1519
<PackageReference Include="Umbraco.Cms.Web.Website" Version="UMBRACO_VERSION_FROM_TEMPLATE" />
1620
<PackageReference Include="Umbraco.Cms.Web.BackOffice" Version="UMBRACO_VERSION_FROM_TEMPLATE" />

‎templates/UmbracoProject/UmbracoProject.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
<ImplicitUsings>enable</ImplicitUsings>
55
<Nullable>enable</Nullable>
66
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Umbraco.Cms.Web.UI</RootNamespace>
7-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
87
</PropertyGroup>
98

109
<ItemGroup>

‎tests/Directory.Build.props

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
12
<Project>
23
<!-- Enable multi-level merging -->
3-
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
4+
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props, $(MSBuildThisFileDirectory)..))" />
45

56
<PropertyGroup>
67
<!-- Disable packaging and validation for test projects to fix benchmarks (that auto-generates boilerplate code) -->

‎tests/Directory.Packages.props

+15-14
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project>
3-
<PropertyGroup>
4-
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
5-
<NoWarn>NU1507</NoWarn>
6-
</PropertyGroup>
3+
<!-- Enable multi-level merging -->
4+
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Packages.props, $(MSBuildThisFileDirectory)..))" />
75
<ItemGroup>
8-
<PackageVersion Include="AngleSharp" Version="0.17.1" />
6+
<!-- Microsoft packages -->
7+
<PackageVersion Include="BenchmarkDotNet" Version="0.13.10" />
8+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.0" />
9+
<PackageVersion Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
10+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
11+
<PackageVersion Include="System.Data.DataSetExtensions" Version="4.5.0" />
12+
<PackageVersion Include="System.Data.Odbc" Version="8.0.0" />
13+
<PackageVersion Include="System.Data.OleDb" Version="8.0.0" />
14+
<PackageVersion Include="System.Reflection.Emit" Version="4.7.0" />
15+
</ItemGroup>
16+
<ItemGroup>
17+
<!-- Third-party packages -->
918
<PackageVersion Include="AutoFixture.AutoMoq" Version="4.18.1" />
1019
<PackageVersion Include="AutoFixture.NUnit3" Version="4.18.1" />
11-
<PackageVersion Include="BenchmarkDotNet" Version="0.13.5" />
1220
<PackageVersion Include="Bogus" Version="34.0.2" />
13-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="6.0.24" />
14-
<PackageVersion Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
15-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
1621
<PackageVersion Include="Moq" Version="4.18.4" />
1722
<PackageVersion Include="NUnit" Version="3.14.0" />
1823
<PackageVersion Include="NUnit3TestAdapter" Version="4.5.0" PrivateAssets="all" />
19-
<PackageVersion Include="System.Data.DataSetExtensions" Version="4.5.0" />
20-
<PackageVersion Include="System.Data.Odbc" Version="6.0.1" />
21-
<PackageVersion Include="System.Data.OleDb" Version="6.0.0" />
22-
<PackageVersion Include="System.Reflection.Emit" Version="4.7.0" />
2324
</ItemGroup>
24-
</Project>
25+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project>
3+
<!--
4+
Keep this empty Directory.Packages.props file to prevent inheriting from parent directories,
5+
because the Windows E2E test that outputs a new Umbraco project into this directory otherwise won't build.
6+
-->
7+
</Project>

‎tests/Umbraco.Tests.Benchmarks/Umbraco.Tests.Benchmarks.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
<OutputType>Exe</OutputType>
44
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
55
<IsPackable>false</IsPackable>
6-
<EnablePackageValidation>false</EnablePackageValidation>
76
<GenerateProgramFile>false</GenerateProgramFile>
87
</PropertyGroup>
98

‎tests/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<RootNamespace>Umbraco.Cms.Tests.Integration</RootNamespace>
88
<IsPackable>true</IsPackable>
99
<EnablePackageValidation>$(BaseEnablePackageValidation)</EnablePackageValidation>
10+
<NoWarn>NU5100</NoWarn>
1011
</PropertyGroup>
1112

1213
<ItemGroup>

‎tools/Umbraco.JsonSchema/Umbraco.JsonSchema.csproj

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
<OutputType>Exe</OutputType>
44
<IsPackable>false</IsPackable>
55
<EnablePackageValidation>false</EnablePackageValidation>
6-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
76
</PropertyGroup>
87

98
<ItemGroup>
10-
<PackageReference Include="CommandLineParser" Version="2.9.1" />
11-
<PackageReference Include="NJsonSchema" Version="10.9.0" />
9+
<PackageReference Include="CommandLineParser" VersionOverride="2.9.1" />
10+
<PackageReference Include="NJsonSchema" VersionOverride="10.9.0" />
1211
</ItemGroup>
1312

1413
<ItemGroup>

‎umbraco.sln

+3-2
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
129129
.gitignore = .gitignore
130130
.globalconfig = .globalconfig
131131
Directory.Build.props = Directory.Build.props
132+
Directory.Packages.props = Directory.Packages.props
133+
global.json = global.json
132134
icon.png = icon.png
133135
LICENSE.md = LICENSE.md
134136
umbraco.sln.DotSettings = umbraco.sln.DotSettings
137+
nuget.config = nuget.config
135138
version.json = version.json
136-
global.json = global.json
137-
src\Directory.Packages.props = src\Directory.Packages.props
138139
EndProjectSection
139140
EndProject
140141
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{20CE9C97-9314-4A19-BCF1-D12CF49B7205}"

0 commit comments

Comments
 (0)
Please sign in to comment.