Skip to content

Commit 07b7c26

Browse files
iOvergaardronaldbarendse
andauthoredNov 19, 2024··
Feature: Build static assets conditionally for Backoffice and Login (#17527)
* feat: conditionally install and build the 'login' and 'backoffice' targets depending on source files * feat: remove the preconditions target, because we are now compiling a file list to check if we need to build * feat: remove the 'clean' targets, because the project will be cleaned if any of the compiled file lists do not exist * feat: remove the preserve.* files as they are no longer needed * Enable default content items again * Remove package.json from restore target inputs * Include generated files as static assets after build * Clean up project files * Exclude CS0618 warning as error and fix CA2264 * Exclude CS0612 warning as error * Suppress removal of test fixture * Use separate property/item groups for backoffice and login project --------- Co-authored-by: Ronald Barendse <[email protected]>
1 parent 0f86cad commit 07b7c26

File tree

28 files changed

+409
-285
lines changed

28 files changed

+409
-285
lines changed
 

‎.gitignore

-4
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,6 @@ NDependOut/
4747
QueryResult.htm
4848
tools/docfx/
4949

50-
# Ignore rule for clearing out Belle (avoid rebuilding all the time)
51-
preserve.bellissima
52-
preserve.login
53-
5450
# csharp-docs
5551
/build/csharp-docs/api/
5652
/build/csharp-docs/_site/

‎Directory.Build.props

+9-3
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,20 @@
1515
<Nullable>enable</Nullable>
1616
<WarningsAsErrors>nullable</WarningsAsErrors>
1717
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
18-
<!-- TODO: [NU5104] Warning As Error: A stable release of a package should not have a prerelease dependency. Either modify the version spec of dependency -->
19-
<NoWarn>$(NoWarn);NU5104</NoWarn>
20-
<WarningsNotAsErrors>$(WarningsNotAsErrors);NU5104</WarningsNotAsErrors>
2118
<ImplicitUsings>enable</ImplicitUsings>
2219
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2320
<WarnOnPackingNonPackableProject>false</WarnOnPackingNonPackableProject>
2421
</PropertyGroup>
2522

23+
<PropertyGroup>
24+
<!--
25+
TODO: Fix and remove overrides:
26+
[NU5104] Warning As Error: A stable release of a package should not have a prerelease dependency. Either modify the version spec of dependency
27+
-->
28+
<NoWarn>$(NoWarn),NU5104</NoWarn>
29+
<WarningsNotAsErrors>$(WarningsNotAsErrors),NU5104</WarningsNotAsErrors>
30+
</PropertyGroup>
31+
2632
<!-- SourceLink -->
2733
<PropertyGroup>
2834
<PublishRepositoryUrl>true</PublishRepositoryUrl>

‎Directory.Packages.props

+13-8
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
<PropertyGroup>
44
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
55
</PropertyGroup>
6+
67
<!-- Global packages (private, build-time packages for all projects) -->
78
<ItemGroup>
89
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.6.146" />
910
<GlobalPackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
1011
<GlobalPackageReference Include="Umbraco.Code" Version="2.2.0" />
1112
<GlobalPackageReference Include="Umbraco.GitVersioning.Extensions" Version="0.2.0" />
1213
</ItemGroup>
14+
1315
<!-- Microsoft packages -->
1416
<ItemGroup>
1517
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="9.0.0" />
@@ -35,11 +37,13 @@
3537
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="9.0.0" />
3638
<PackageVersion Include="Microsoft.Extensions.Caching.Hybrid" Version="9.0.0-preview.9.24556.5" />
3739
</ItemGroup>
40+
3841
<!-- Umbraco packages -->
3942
<ItemGroup>
4043
<PackageVersion Include="Umbraco.JsonSchema.Extensions" Version="0.3.0" />
4144
<PackageVersion Include="Umbraco.CSharpTest.Net.Collections" Version="15.0.0" />
4245
</ItemGroup>
46+
4347
<!-- Third-party packages -->
4448
<ItemGroup>
4549
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.0" />
@@ -77,25 +81,26 @@
7781
<PackageVersion Include="SixLabors.ImageSharp.Web" Version="3.1.3" />
7882
<PackageVersion Include="Swashbuckle.AspNetCore" Version="7.0.0" />
7983
</ItemGroup>
84+
8085
<!-- Transitive pinned versions (only required because our direct dependencies have vulnerable versions of transitive dependencies) -->
8186
<ItemGroup>
82-
<!-- Both Microsoft.EntityFrameworkCore.SqlServer and NPoco.SqlServer bring in a vulnerable version of Azure.Identity -->
87+
<!-- Microsoft.EntityFrameworkCore.SqlServer and NPoco.SqlServer brings in a vulnerable version of Azure.Identity -->
8388
<PackageVersion Include="Azure.Identity" Version="1.13.1" />
84-
<!-- Both Microsoft.EntityFrameworkCore.SqlServer and NPoco.SqlServer bring in a vulnerable version of Azure.Identity -->
89+
<!-- Microsoft.EntityFrameworkCore.SqlServer brings in a vulnerable version of System.Runtime.Caching -->
8590
<PackageVersion Include="System.Runtime.Caching" Version="9.0.0" />
8691
<!-- Dazinator.Extensions.FileProviders brings in a vulnerable version of System.Net.Http -->
8792
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
8893
<!-- Examine brings in a vulnerable version of System.Security.Cryptography.Xml -->
8994
<PackageVersion Include="System.Security.Cryptography.Xml" Version="9.0.0" />
90-
<!-- Both Dazinator.Extensions.FileProviders and MiniProfiler.AspNetCore.Mvc bring in a vulnerable version of System.Text.RegularExpressions -->
95+
<!-- Dazinator.Extensions.FileProviders and MiniProfiler.AspNetCore.Mvc brings in a vulnerable version of System.Text.RegularExpressions -->
9196
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
92-
<!-- Both OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer bring in a vulnerable version of Microsoft.IdentityModel.JsonWebTokens -->
97+
<!-- OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer brings in a vulnerable version of Microsoft.IdentityModel.JsonWebTokens -->
9398
<PackageVersion Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.2.0" />
94-
<!-- Both Azure.Identity, Microsoft.EntityFrameworkCore.SqlServer, Dazinator.Extensions.FileProviders bring in legacy versions of System.Text.Encodings.Web -->
99+
<!-- Azure.Identity, Microsoft.EntityFrameworkCore.SqlServer and Dazinator.Extensions.FileProviders brings in a legacy version of System.Text.Encodings.Web -->
95100
<PackageVersion Include="System.Text.Encodings.Web" Version="9.0.0" />
96-
<!-- NPoco.SqlServer bring in vulnerable version of Microsoft.Data.SqlClient -->
101+
<!-- NPoco.SqlServer brings in a vulnerable version of Microsoft.Data.SqlClient -->
97102
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.2.2" />
98-
<!-- Examine.Lucene bring in a vulnerable version of Lucene.Net.Replicator -->
103+
<!-- Examine.Lucene brings in a vulnerable version of Lucene.Net.Replicator -->
99104
<PackageVersion Include="Lucene.Net.Replicator" Version="4.8.0-beta00017" />
100105
</ItemGroup>
101-
</Project>
106+
</Project>

‎src/Umbraco.Cms.Api.Common/Umbraco.Cms.Api.Common.csproj

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<Title>Umbraco CMS - API Common</Title>
44
<Description>Contains the bits and pieces that are shared between the Umbraco CMS APIs.</Description>
55
</PropertyGroup>
6+
67
<ItemGroup>
78
<FrameworkReference Include="Microsoft.AspNetCore.App" />
89
</ItemGroup>
@@ -13,14 +14,15 @@
1314
<PackageReference Include="Swashbuckle.AspNetCore" />
1415
<PackageReference Include="OpenIddict.Abstractions" />
1516
<PackageReference Include="OpenIddict.AspNetCore" />
17+
</ItemGroup>
1618

17-
<!-- Both OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer bring in a vulnerable version of Microsoft.IdentityModel.JsonWebTokens -->
18-
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens"/>
19+
<ItemGroup>
20+
<!-- Take top-level depedendency on Microsoft.IdentityModel.JsonWebTokens, because OpenIddict.AspNetCore depends on a vulnerable version -->
21+
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" />
1922
</ItemGroup>
2023

2124
<ItemGroup>
2225
<ProjectReference Include="..\Umbraco.Core\Umbraco.Core.csproj" />
2326
<ProjectReference Include="..\Umbraco.Web.Common\Umbraco.Web.Common.csproj" />
24-
2527
</ItemGroup>
2628
</Project>

‎src/Umbraco.Cms.Api.Delivery/Umbraco.Cms.Api.Delivery.csproj

+8-7
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
<Title>Umbraco CMS - Delivery API</Title>
44
<Description>Contains the presentation layer for the Umbraco CMS Delivery API.</Description>
55
</PropertyGroup>
6+
67
<PropertyGroup>
7-
<!-- TODO: [ASP0019] use IHeaderDictionary.Append or the indexer to append or set headers,
8-
and remove this override -->
9-
<WarningsNotAsErrors>ASP0019</WarningsNotAsErrors>
8+
<!--
9+
TODO: Fix and remove overrides:
10+
[ASP0019] use IHeaderDictionary.Append or the indexer to append or set headers
11+
[CS0618/CS0612] update obsolete references
12+
-->
13+
<WarningsNotAsErrors>$(WarningsNotAsErrors),ASP0019,CS0618,CS0612</WarningsNotAsErrors>
1014
</PropertyGroup>
15+
1116
<ItemGroup>
1217
<ProjectReference Include="..\Umbraco.Cms.Api.Common\Umbraco.Cms.Api.Common.csproj" />
1318
<ProjectReference Include="..\Umbraco.Web.Common\Umbraco.Web.Common.csproj" />
1419
</ItemGroup>
1520

16-
<PropertyGroup>
17-
<!-- TODO: Fix all warnings and remove this override -->
18-
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
19-
</PropertyGroup>
2021
<ItemGroup>
2122
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
2223
<_Parameter1>Umbraco.Tests.UnitTests</_Parameter1>

‎src/Umbraco.Cms.Api.Management/Umbraco.Cms.Api.Management.csproj

+18-17
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,27 @@
22
<PropertyGroup>
33
<Title>Umbraco CMS - Management API</Title>
44
<Description>Contains the presentation layer for the Umbraco CMS Management API.</Description>
5-
<IsPackable>true</IsPackable>
6-
<EnablePackageValidation>false</EnablePackageValidation>
7-
<AssemblyName>Umbraco.Cms.Api.Management</AssemblyName>
8-
<RootNamespace>Umbraco.Cms.Api.Management</RootNamespace>
95
</PropertyGroup>
6+
107
<PropertyGroup>
11-
<!-- TODO: Fix [SA1117] params all on same line, [SA1401] make fields private,
12-
[SA1134] own line attributes, [CS0108] hidden inherited member, [CS0618]/[CS9042] update
13-
obsolete references, [CS1998] remove async or make method synchronous, [CS8524] switch statement,
14-
[IDE0060] removed unused parameter, [SA1649] file name match type, [CS0419] ambiguous reference,
15-
[CS1573] param tag for all parameters, [CS1574] unresolveable cref, and remove overrides -->
16-
<WarningsNotAsErrors>
17-
SA1117,SA1401,SA1134,CS0108,CS0618,CS1998,CS8524,CS9042,IDE0060,SA1649,CS0419,
18-
CS1573,CS1574
19-
</WarningsNotAsErrors>
8+
<!--
9+
TODO: Fix and remove overrides:
10+
[SA1117] params all on same line
11+
[SA1401] make fields private
12+
[SA1134] own line attributes
13+
[CS0108] hidden inherited member
14+
[CS0618]/[CS9042] update obsolete references
15+
[CS1998] remove async or make method synchronous
16+
[CS8524] switch statement
17+
[IDE0060] removed unused parameter
18+
[SA1649] file name match type
19+
[CS0419] ambiguous reference
20+
[CS1573] param tag for all parameters
21+
[CS1574] unresolveable cref
22+
-->
23+
<WarningsNotAsErrors>$(WarningsNotAsErrors),SA1117,SA1401,SA1134,CS0108,CS0618,CS9042,CS1998,CS8524,IDE0060,SA1649,CS0419,CS1573,CS1574</WarningsNotAsErrors>
2024
</PropertyGroup>
25+
2126
<ItemGroup>
2227
<PackageReference Include="JsonPatch.Net" />
2328
<PackageReference Include="Swashbuckle.AspNetCore" />
@@ -41,8 +46,4 @@
4146
<ItemGroup>
4247
<EmbeddedResource Include="OpenApi.json" />
4348
</ItemGroup>
44-
45-
<ItemGroup>
46-
<Compile Remove="Security\Authorization\Dictionary\IDictionaryPermissionAuthorizer.cs" />
47-
</ItemGroup>
4849
</Project>

‎src/Umbraco.Cms.Persistence.EFCore.SqlServer/Umbraco.Cms.Persistence.EFCore.SqlServer.csproj

+7-6
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
<Title>Umbraco CMS - Persistence - Entity Framework Core - SQL Server migrations</Title>
44
<Description>Adds support for Entity Framework Core SQL Server migrations to Umbraco CMS.</Description>
55
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
9+
</ItemGroup>
10+
611
<ItemGroup>
712
<!-- Take top-level depedendency on Azure.Identity, because Microsoft.EntityFrameworkCore.SqlServer depends on a vulnerable version -->
813
<PackageReference Include="Azure.Identity" />
914
<!-- Take top-level depedendency on System.Runtime.Caching, because Microsoft.EntityFrameworkCore.SqlServer depends on a vulnerable version -->
1015
<PackageReference Include="System.Runtime.Caching" />
11-
12-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
13-
14-
15-
<!-- Both OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer bring in a vulnerable version of Microsoft.IdentityModel.JsonWebTokens -->
16-
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens"/>
16+
<!-- Take top-level depedendency on Microsoft.IdentityModel.JsonWebTokens, because OpenIddict.AspNetCore, NPoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer depends on a vulnerable version -->
17+
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" />
1718
</ItemGroup>
1819

1920
<ItemGroup>

‎src/Umbraco.Cms.Persistence.EFCore/Umbraco.Cms.Persistence.EFCore.csproj

+13-7
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,30 @@
33
<Title>Umbraco CMS - Persistence - Entity Framework Core</Title>
44
<Description>Adds support for Entity Framework Core to Umbraco CMS.</Description>
55
</PropertyGroup>
6+
67
<PropertyGroup>
7-
<!-- TODO: [IDE0270] Simplify null checks, [CS0108] resolve hiding inherited members, [CS1998]
8-
remove async or make method synchronous, and remove these overrides -->
9-
<WarningsNotAsErrors>IDE0270,CS0108,CS1998</WarningsNotAsErrors>
8+
<!--
9+
TODO: Fix and remove overrides:
10+
[IDE0270] Simplify null checks
11+
[CS0108] resolve hiding inherited members
12+
[CS1998] remove async or make method synchronous
13+
-->
14+
<WarningsNotAsErrors>$(WarningsNotAsErrors),IDE0270,CS0108,CS1998</WarningsNotAsErrors>
1015
</PropertyGroup>
11-
<ItemGroup>
1216

17+
<ItemGroup>
1318
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
1419
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" />
1520
<PackageReference Include="OpenIddict.EntityFrameworkCore" />
21+
</ItemGroup>
1622

23+
<ItemGroup>
1724
<!-- Take top-level depedendency on Azure.Identity, because Microsoft.EntityFrameworkCore.SqlServer depends on a vulnerable version -->
1825
<PackageReference Include="Azure.Identity" />
1926
<!-- Take top-level depedendency on System.Runtime.Caching, because Microsoft.EntityFrameworkCore.SqlServer depends on a vulnerable version -->
2027
<PackageReference Include="System.Runtime.Caching" />
21-
22-
<!-- Both Azure.Identity, Microsoft.EntityFrameworkCore.SqlServer, Dazinator.Extensions.FileProviders bring in legacy versions of System.Text.Encodings.Web -->
23-
<PackageReference Include="System.Text.Encodings.Web"/>
28+
<!-- Take top-level depedendency on System.Text.Encodings.Web, because Microsoft.EntityFrameworkCore.SqlServer brings in a legacy version -->
29+
<PackageReference Include="System.Text.Encodings.Web" />
2430
</ItemGroup>
2531

2632
<ItemGroup>

‎src/Umbraco.Cms.Persistence.SqlServer/Umbraco.Cms.Persistence.SqlServer.csproj

+26-17
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,39 @@
33
<Title>Umbraco CMS - Persistence - SQL Server</Title>
44
<Description>Adds support for SQL Server to Umbraco CMS.</Description>
55
</PropertyGroup>
6+
67
<PropertyGroup>
7-
<!-- TODO: [SA1405] Debug assret message text, [SA1121] resolve hiding inherited members, [SA1117] remove
8-
async or make method synchronous, [IDE1006] fix naming rule violation, [CS0618] handle member
9-
obsolete appropriately, [IDE0270] simplify null check, [IDE0057] simplify substring, [IDE0054]
10-
use compound assignment, [CSO618] use NVARCARMAX, [IDE0048] add parenthesis for clarity,
11-
[CS1574] resolve ML comment cref attribute, and remove these overrides -->
12-
<WarningsNotAsErrors>
13-
SA1405,SA1121,SA1117,SA1116,IDE1006,CS0618,IDE0270,IDE0057,IDE0054,CSO618,IDE0048,
14-
CS1574
15-
</WarningsNotAsErrors>
8+
<!--
9+
TODO: Fix and remove overrides:
10+
[SA1405] Debug assret message text
11+
[SA1121] resolve hiding inherited members
12+
[SA1117] remove async or make method synchronous
13+
[IDE1006] fix naming rule violation
14+
[CS0618] handle member obsolete appropriately
15+
[IDE0270] simplify null check
16+
[IDE0057] simplify substring
17+
[IDE0054] use compound assignment
18+
[CSO618] use NVARCARMAX
19+
[IDE0048] add parenthesis for clarity
20+
[CS1574] resolve ML comment cref attribute
21+
-->
22+
<WarningsNotAsErrors>$(WarningsNotAsErrors),SA1405,SA1121,SA1117,IDE1006,CS0618,IDE0270,IDE0057,IDE0054,CSO618,IDE0048,CS1574</WarningsNotAsErrors>
1623
</PropertyGroup>
24+
25+
<ItemGroup>
26+
<PackageReference Include="NPoco.SqlServer" />
27+
</ItemGroup>
28+
1729
<ItemGroup>
1830
<!-- Take top-level depedendency on Azure.Identity, because NPoco.SqlServer depends on a vulnerable version -->
1931
<PackageReference Include="Azure.Identity" />
20-
<PackageReference Include="NPoco.SqlServer" />
2132
<!-- Take top-level depedendency on System.Runtime.Caching, because Microsoft.EntityFrameworkCore.SqlServer depends on a vulnerable version -->
2233
<PackageReference Include="System.Runtime.Caching" />
23-
<!-- Both OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer bring in a vulnerable version of Microsoft.IdentityModel.JsonWebTokens -->
24-
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens"/>
25-
26-
<!-- Both Azure.Identity, Microsoft.EntityFrameworkCore.SqlServer, Dazinator.Extensions.FileProviders bring in legacy versions of System.Text.Encodings.Web -->
27-
<PackageReference Include="System.Text.Encodings.Web"/>
28-
29-
<!-- NPoco.SqlServer bring in vulnerable version of Microsoft.Data.SqlClient -->
34+
<!-- Take top-level depedendency on Microsoft.IdentityModel.JsonWebTokens, because OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer depends on a vulnerable version -->
35+
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" />
36+
<!-- Take top-level depedendency on System.Text.Encodings.Web, because Azure.Identity, Microsoft.EntityFrameworkCore.SqlServer, Dazinator.Extensions.FileProviders depends on a vulnerable version -->
37+
<PackageReference Include="System.Text.Encodings.Web" />
38+
<!-- Take top-level depedendency on Microsoft.Data.SqlClient, because NPoco.SqlServer depends on a vulnerable version -->
3039
<PackageReference Include="Microsoft.Data.SqlClient" />
3140
</ItemGroup>
3241

‎src/Umbraco.Cms.Persistence.Sqlite/Umbraco.Cms.Persistence.Sqlite.csproj

+7-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@
33
<Title>Umbraco CMS - Persistence - SQLite</Title>
44
<Description>Adds support for SQLite to Umbraco CMS.</Description>
55
</PropertyGroup>
6+
67
<PropertyGroup>
7-
<!-- TODO: [CS0114] Resolve hiding inherited members and remove this override -->
8-
<WarningsNotAsErrors>CS0114</WarningsNotAsErrors>
8+
<!--
9+
TODO: Fix and remove overrides:
10+
[CS0114] Resolve hiding inherited members
11+
-->
12+
<WarningsNotAsErrors>$(WarningsNotAsErrors),CS0114</WarningsNotAsErrors>
913
</PropertyGroup>
14+
1015
<ItemGroup>
1116
<PackageReference Include="Microsoft.Data.Sqlite" />
1217
</ItemGroup>

0 commit comments

Comments
 (0)
Please sign in to comment.