Skip to content

Commit 8558566

Browse files
committed
Merge branch 'develop' into serilog-2026
# Conflicts: # DNN Platform/Admin Modules/Dnn.Modules.Console/ViewConsole.ascx.cs # DNN Platform/DotNetNuke.Web/InternalServices/ControlBarController.cs # DNN Platform/DotNetNuke.Web/InternalServices/EventLogServiceController.cs # DNN Platform/DotNetNuke.Web/InternalServices/FileUploadController.cs # DNN Platform/DotNetNuke.Web/InternalServices/ItemListServiceController.cs # DNN Platform/DotNetNuke.Web/InternalServices/MessagingServiceController.cs # DNN Platform/DotNetNuke.Web/InternalServices/ModuleServiceController.cs # DNN Platform/DotNetNuke.Web/InternalServices/NotificationsServiceController.cs # DNN Platform/DotNetNuke.Web/InternalServices/RelationshipServiceController.cs # DNN Platform/DotNetNuke.Web/InternalServices/UserFileController.cs # DNN Platform/Modules/CoreMessaging/Services/MessagingServiceController.cs # DNN Platform/Modules/Journal/ServicesController.cs # Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Components/Themes/ThemesController.cs # Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Services/PagesController.cs
2 parents a6e51be + aa5eaba commit 8558566

208 files changed

Lines changed: 15567 additions & 13111 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug-report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ body:
7272
**NOTE:** _If your version is not listed, please upgrade to the latest version. If you cannot upgrade at this time, please open a [Discussion](https://github.com/dnnsoftware/Dnn.Platform/discussions) instead._
7373
multiple: true
7474
options:
75-
- 10.3.2 (latest release)
75+
- 10.3.3 (latest release)
7676
- develop build (unreleased)
7777
validations:
7878
required: true

.github/workflows/browserslist-update-db.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
pull-requests: "write" # creates a pull request if there's an update
2020
steps:
2121
- name: "Checkout repository"
22-
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6.0.2
22+
uses: "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0" # v7.0.0
2323
with:
2424
fetch-depth: 0
2525
persist-credentials: false

.github/workflows/ci.yml

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -59,26 +59,32 @@ jobs:
5959
name: "Build and Validate"
6060
runs-on: "windows-2025-vs2026"
6161
permissions:
62-
checks: "write"
63-
pull-requests: "write"
62+
checks: "write" # needed by EnricoMi/publish-unit-test-result-action
63+
pull-requests: "write" # needed by EnricoMi/publish-unit-test-result-action
6464
defaults:
6565
run:
6666
shell: "pwsh"
6767
steps:
6868
- name: "Setup Environment Variables"
6969
run: |
70-
"CAKE_TARGET=${{ inputs.CAKE_TARGET || env.CAKE_TARGET }}" >> $env:GITHUB_ENV;
71-
"CAKE_VERBOSITY=${{ inputs.CAKE_VERBOSITY || env.CAKE_VERBOSITY }}" >> $env:GITHUB_ENV;
72-
"RELEASE_MODE=${{ inputs.RELEASE_MODE || env.RELEASE_MODE }}" >> $env:GITHUB_ENV;
73-
"RUN_TESTS=${{ inputs.RUN_TESTS || env.RUN_TESTS }}" >> $env:GITHUB_ENV;
70+
"CAKE_TARGET=$env:CAKE_TARGET" >> $env:GITHUB_ENV;
71+
"CAKE_VERBOSITY=$env:CAKE_VERBOSITY" >> $env:GITHUB_ENV;
72+
"RELEASE_MODE=$env:RELEASE_MODE" >> $env:GITHUB_ENV;
73+
"RUN_TESTS=$env:RUN_TESTS" >> $env:GITHUB_ENV;
74+
env:
75+
CAKE_TARGET: ${{ inputs.CAKE_TARGET || env.CAKE_TARGET }}
76+
CAKE_VERBOSITY: ${{ inputs.CAKE_VERBOSITY || env.CAKE_VERBOSITY }}
77+
RELEASE_MODE: ${{ inputs.RELEASE_MODE || env.RELEASE_MODE }}
78+
RUN_TESTS: ${{ inputs.RUN_TESTS || env.RUN_TESTS }}
7479

7580
- name: "Checkout"
76-
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6.0.2
81+
uses: "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0" # v7.0.0
7782
with:
7883
fetch-depth: 0 # include all history for GitVersion
84+
persist-credentials: false
7985

8086
- name: "Setup Node.js"
81-
uses: "actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e" # v6.4.0
87+
uses: "actions/setup-node@820762786026740c76f36085b0efc47a31fe5020" # v7.0.0
8288
with:
8389
node-version-file: ".node-version"
8490
package-manager-cache: false
@@ -87,7 +93,7 @@ jobs:
8793
run: "corepack enable"
8894

8995
- name: "Setup .NET SDK"
90-
uses: "actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7" # v5.2.0
96+
uses: "actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68" # v6.0.0
9197
with:
9298
global-json-file: "global.json"
9399

@@ -103,22 +109,22 @@ jobs:
103109
(Get-Content $path) | ForEach-Object {
104110
if ($_ -match $pattern3) {
105111
# We have found the matching line
106-
'[assembly: AssemblyStatus(ReleaseMode.{0})]' -f '${{ env.RELEASE_MODE }}'
112+
'[assembly: AssemblyStatus(ReleaseMode.{0})]' -f $env:RELEASE_MODE
107113
} else {
108114
$_
109115
}
110116
} | Set-Content $path
111117
112118
- name: "Run DNN Build via Cake"
113-
run: "./build.ps1 --target=${{ env.CAKE_TARGET }} --verbosity=${{ env.CAKE_VERBOSITY }}"
119+
run: "./build.ps1 --target=$env:CAKE_TARGET --verbosity=$env:CAKE_VERBOSITY"
114120

115121
- name: "Run Unit Tests via Cake"
116122
if: ${{ env.RUN_TESTS == 'true' }}
117-
run: "./build.ps1 --target=UnitTests --verbosity=${{ env.CAKE_VERBOSITY }}"
123+
run: "./build.ps1 --target=UnitTests --verbosity=$env:CAKE_VERBOSITY"
118124
continue-on-error: true
119125

120126
- name: "Publish Test Results"
121-
uses: "EnricoMi/publish-unit-test-result-action/windows@c950f6fb443cb5af20a377fd0dfaa78838901040" # v2.23.0
127+
uses: "EnricoMi/publish-unit-test-result-action/windows@d0a4676d0e0b938bc201470d88276b7c74c712b3" # v2.24.0
122128
if: ${{ !cancelled() && env.RUN_TESTS == 'true' }}
123129
with:
124130
files: "**/TestResults/*.trx"
@@ -135,8 +141,8 @@ jobs:
135141
overwrite: true
136142

137143
- name: "Create GitHub Pull Request"
138-
if: ${{ success() && !contains('pull_request', github.event_name) && (contains(fromJSON('["develop", "main"]'), github.ref_name) || startsWith('release/', github.ref_name)) }}
139-
run: "./build.ps1 --target=CreateGitHubPullRequest --verbosity=${{ env.CAKE_VERBOSITY }}"
144+
if: ${{ success() && github.event_name == 'push' && (github.ref_name == 'develop' || startsWith('release/', github.ref_name)) }}
145+
run: "./build.ps1 --target=CreateGitHubPullRequest --verbosity=$env:CAKE_VERBOSITY"
140146
env:
141147
GITHUB_APP_ID: ${{ secrets.GITHUB_APP_ID }}
142148
GITHUB_APP_PRIVATE_KEY: ${{ secrets.GITHUB_APP_PRIVATE_KEY }}
@@ -150,17 +156,17 @@ jobs:
150156
if: ${{ github.event_name == 'workflow_dispatch' }}
151157
runs-on: "ubuntu-latest"
152158
permissions:
153-
id-token: "write"
159+
id-token: "write" # needed by actions/attest
154160
contents: "read"
155-
attestations: "write"
161+
attestations: "write" # needed by actions/attest
156162
steps:
157163
- name: "Download Artifacts"
158164
uses: "actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c" # v8.0.1
159165
with:
160166
artifact-ids: ${{ needs.build-and-validate.outputs.artifact-id }}
161167

162168
- name: "Generate artifact attestations"
163-
uses: "actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26" # v4.1.0
169+
uses: "actions/attest@a1948c3f048ba23858d222213b7c278aabede763" # v4.1.1
164170
with:
165171
subject-path: |
166172
*.nupkg
@@ -174,7 +180,7 @@ jobs:
174180
if: ${{ github.event_name == 'workflow_dispatch' }}
175181
runs-on: "ubuntu-latest"
176182
permissions:
177-
id-token: "write"
183+
id-token: "write" # needed by NuGet/login
178184
defaults:
179185
run:
180186
shell: "pwsh"
@@ -191,4 +197,7 @@ jobs:
191197
user: ${{ secrets.NUGET_USER }}
192198

193199
- name: "NuGet Push"
194-
run: "dotnet nuget push *.nupkg --api-key ${{ steps.nuget-login.outputs.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json"
200+
run: "dotnet nuget push *.nupkg --api-key $env:NUGET_API_KEY --source https://api.nuget.org/v3/index.json"
201+
env:
202+
NUGET_API_KEY: ${{ steps.nuget-login.outputs.NUGET_API_KEY }}
203+
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: "Dependency Review"
22

3-
on:
3+
on:
44
pull_request:
55
merge_group:
6-
types:
6+
types:
77
- "checks_requested"
88

99
concurrency:
@@ -14,11 +14,17 @@ permissions: {}
1414

1515
jobs:
1616
dependency-review:
17+
name: "Dependency Review"
1718
runs-on: "ubuntu-latest"
1819
permissions:
1920
contents: "read"
2021
steps:
2122
- name: "Checkout Repository"
22-
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6.0.2
23+
uses: "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0" # v7.0.0
24+
with:
25+
persist-credentials: false
26+
2327
- name: "Dependency Review"
2428
uses: "actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294" # v5.0.0
29+
30+

.github/workflows/image-actions.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ jobs:
3636
contents: "read"
3737
steps:
3838
- name: "Checkout Repo"
39-
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6.0.2
39+
uses: "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0" # v7.0.0
4040
with:
4141
persist-credentials: false
4242

4343
- name: "Compress Images"
4444
id: "compress_images"
45-
uses: "calibreapp/image-actions@f32575787d333b0579f0b7d506ff03be63a669d1" # 1.4.1
45+
uses: "calibreapp/image-actions@9d037c06280028c110ff61c433ad4dc7d33c3c43" # 1.5.0
4646
with:
4747
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4848
compressOnly: ${{ github.event_name != 'pull_request' }} # For non-Pull Requests, run in compressOnly mode and we'll PR after.

.github/workflows/ossf-scorecard.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929

3030
steps:
3131
- name: "Checkout code"
32-
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6.0.2
32+
uses: "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0" # v7.0.0
3333
with:
3434
persist-credentials: false
3535

@@ -58,6 +58,6 @@ jobs:
5858
# Upload the results to GitHub's code scanning dashboard (optional).
5959
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
6060
- name: "Upload to code-scanning"
61-
uses: "github/codeql-action/upload-sarif@68bde559dea0fdcac2102bfdf6230c5f70eb485e" # v4.35.4
61+
uses: "github/codeql-action/upload-sarif@99df26d4f13ea111d4ec1a7dddef6063f76b97e9" # v4.37.0
6262
with:
6363
sarif_file: "results.sarif"

.github/workflows/zizmor.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ jobs:
2828
actions: read # Only needed for private repos. Needed for upload-sarif to read workflow run info.
2929
steps:
3030
- name: Checkout repository
31-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
31+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
3232
with:
3333
persist-credentials: false
3434

3535
- name: Run zizmor 🌈
36-
uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3
36+
uses: zizmorcore/zizmor-action@6599ee8b7a49aef6a770f63d261d214911a7ce02 # v0.6.0

.yarnrc.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
approvedGitRepositories: []
2+
13
compressionLevel: mixed
24

5+
enableScripts: false
6+
37
nodeLinker: node-modules
48

5-
npmMinimalAgeGate: "1d"
9+
npmMinimalAgeGate: 1d
610

711
npmPreapprovedPackages:
812
- "@dnncommunity/dnn-elements"

Build/Symbols/DotNetNuke_Symbols.dnn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<dotnetnuke type="Package" version="5.0">
22
<packages>
3-
<package name="DotNetNuke_Symbols" type="Library" version="10.03.03" >
3+
<package name="DotNetNuke_Symbols" type="Library" version="10.03.04" >
44
<friendlyName>DNN Platform Symbols</friendlyName>
55
<description>This package contains Debug Symbols and Intellisense files for DNN Platform.</description>
66
<owner>

Build/Tasks/PreparePackaging.cs

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@
44
namespace DotNetNuke.Build.Tasks
55
{
66
using System;
7+
using System.Collections.Generic;
8+
using System.Globalization;
79
using System.Linq;
10+
using System.Reflection;
811
using System.Xml.Linq;
912

1013
using Cake.Common.Diagnostics;
1114
using Cake.Common.IO;
15+
using Cake.Core.IO;
1216
using Cake.Frosting;
1317
using Cake.Json;
1418
using Dnn.CakeUtils;
@@ -60,14 +64,52 @@ private static void CreateWebConfig(Context context)
6064

6165
context.PackagingPatterns = context.DeserializeJsonFromFile<PackagingPatterns>("./Build/Tasks/packaging.json");
6266
var files = context.GetFilesByPatterns(context.WebsiteDir, BinFolderInclude, context.PackagingPatterns.InstallExclude);
63-
var parsedAssemblies = files.ParseAssemblies();
64-
parsedAssemblies.RemoveAll(a => a.PublicKeyToken is null);
65-
var redirects = parsedAssemblies.ConvertAll(a => a.AssemblyBindingRedirect());
67+
var redirects = BuildBindingRedirects(files);
6668
assemblyBinding.Add(redirects.ToArray<object>());
6769

6870
// save XML document to target file
6971
var targetFile = context.WebsiteDir + context.File("web.config");
7072
doc.Save(targetFile);
7173
}
74+
75+
private static List<XElement> BuildBindingRedirects(IEnumerable<FilePath> files)
76+
{
77+
XNamespace asm = "urn:schemas-microsoft-com:asm.v1";
78+
var redirects = new List<XElement>();
79+
80+
foreach (var file in files)
81+
{
82+
AssemblyName assemblyName;
83+
try
84+
{
85+
assemblyName = AssemblyName.GetAssemblyName(file.FullPath);
86+
}
87+
catch
88+
{
89+
continue;
90+
}
91+
92+
var tokenBytes = assemblyName.GetPublicKeyToken();
93+
if (tokenBytes == null || tokenBytes.Length == 0 || string.IsNullOrEmpty(assemblyName.Name) || assemblyName.Version == null)
94+
{
95+
continue;
96+
}
97+
98+
var token = string.Concat(tokenBytes.Select(static b => b.ToString("x2", CultureInfo.InvariantCulture)));
99+
redirects.Add(
100+
new XElement(
101+
asm + "dependentAssembly",
102+
new XElement(
103+
asm + "assemblyIdentity",
104+
new XAttribute("name", assemblyName.Name),
105+
new XAttribute("publicKeyToken", token)),
106+
new XElement(
107+
asm + "bindingRedirect",
108+
new XAttribute("oldVersion", "0.0.0.0-32767.32767.32767.32767"),
109+
new XAttribute("newVersion", assemblyName.Version.ToString()))));
110+
}
111+
112+
return redirects;
113+
}
72114
}
73115
}

0 commit comments

Comments
 (0)