Skip to content

Commit

Permalink
Merge pull request #5878 from dnnsoftware/release/9.13.1
Browse files Browse the repository at this point in the history
Merged `release/9.13.1` into `master` to release `v9.13.1`
  • Loading branch information
valadas committed Dec 6, 2023
2 parents 1388ac7 + 9d99b0c commit 64babbe
Show file tree
Hide file tree
Showing 157 changed files with 9,365 additions and 10,182 deletions.
10 changes: 7 additions & 3 deletions .github/BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ There are three supported build scenarios:
When contributing to DNN, you'd typically go through steps 2 and 3 at least and maybe 1 if you wish to run more encompassing tests. But before you delve into code, please familiarize yourself with [How to Contribute](/CONTRIBUTING.md) first.


## Build/Develop Prerequisites

- Visual Studio 2022 (or .NET SDK 6.x) or later
- Node.js 18.x or later
- This project uses [Yarn](https://yarnpkg.com/), enable its local usage by running `corepack enable`

## External sources

There is one project not included in this repository that are distributed with DNN:
Expand Down Expand Up @@ -40,7 +46,7 @@ Note that (unless a build version has been specified, see below) this process wi

This process also uses Cake and follows the same logic as above, with the sole difference that the output is not a distribution zip file but rather this process pumps contents out to a directory you specify. Also you need to tell this process about your SQL server so that it can reset the database. When complete you should get the same experience as if you've built the platform and unpacked it on a server.

### Prerequisites
### Development Site Prerequisites

You'll need to be running IIS and SQL server (Express) locally for this to work. Create a folder on your hard disk and set it up in IIS as a web application. Then create or edit the local settings file.

Expand Down Expand Up @@ -156,8 +162,6 @@ If a build fails midway and you have tracked artifacts, you can simply run:

If you encounter PowerShell security issues, please read [Cake - PowerShell Security](http://cakebuildbotdevelop.azurewebsites.net/docs/tutorials/powershell-security).

If you encouter Yarn issues, please [update Yarn to the lastest version](https://yarnpkg.com/getting-started/install).

### Git branching strategy

Our default branch is called **develop**, this is the branch most pull requests should target in order to be merged into the very next release (bug fixes, minor improvements that are not breaking changes). If you know your change will be a breaking change or more risky, then you should submit it targeting the **future/xx** branch (where xx is the next major release). **release/x.x.x** branches are temporary, they get created at code-freeze to built an alpha release for the testing team, when initial testing is done, we publish one or more release candiate versions (RC1, RC2) as needed until we find the version stable for release, at which point we release that new version and close the release/x.x.x branch. The only pull requests that will be accepted for release/x.x.x branches are for regression issues (the problem was introduced in this very version) or showstopper issues (can't use Dnn with this bug in).
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ body:
**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._
multiple: true
options:
- 9.12.0 (latest release)
- 9.13.0 (release candidate)
- 9.13.0 (latest release)
- 9.13.1 (alpha)
- 10.0.0 (alpha)
validations:
required: true
Expand Down
28 changes: 28 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,31 @@ updates:
labels:
- ".NET"
- "Type: Maintenance"
groups:
MailKit:
patterns:
- "MailKit"
- "MimeKit"
- "BouncyCastle.Cryptography"
Google-Apis:
patterns:
- "Google.Apis*"
AspNet:
patterns:
- "Microsoft.AspNet.*"
SourceLink:
patterns:
- "Microsoft.SourceLink.*"
TestStack-Dossier:
patterns:
- "TestStack.Dossier"
- "AutoFixture"
- "Fare"
- "NSubstitute"
- "Castle.Core"
Cake-Issues:
patterns:
- "Cake.Issues*"
DependencyInjection:
patterns:
- "Microsoft.Extensions.DependencyInjection*"
2 changes: 1 addition & 1 deletion .github/workflows/updateVersions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@v4

- name: Get the release branch version
uses: valadas/get-release-branch-version@v1.0.1
uses: valadas/get-release-branch-version@v1.1.0
id: branchVersion

- name: Set versions
Expand Down
873 changes: 0 additions & 873 deletions .yarn/releases/yarn-3.4.1.cjs

This file was deleted.

4 changes: 2 additions & 2 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
nodeLinker: node-modules
compressionLevel: mixed

yarnPath: .yarn/releases/yarn-3.4.1.cjs
nodeLinker: node-modules
6 changes: 2 additions & 4 deletions Build/Build.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<PackAsTool>true</PackAsTool>
<!-- Make sure start same folder .NET Core CLI and Visual Studio -->
<RunWorkingDirectory>$(MSBuildProjectDirectory)</RunWorkingDirectory>
Expand All @@ -16,15 +16,13 @@
<ItemGroup>
<PackageReference Include="Cake.BuildSystems.Module" Version="5.0.0" />
<PackageReference Include="Cake.FileHelpers" Version="6.1.3" />
<PackageReference Include="Cake.Frosting" Version="3.1.0" />
<PackageReference Include="Cake.Frosting" Version="4.0.0" />
<PackageReference Include="Cake.Git" Version="3.0.0" />
<PackageReference Include="Cake.Issues" Version="3.0.0" />
<PackageReference Include="Cake.Issues.MsBuild" Version="3.0.0" />
<PackageReference Include="Cake.Json" Version="7.0.1" />
<PackageReference Include="Cake.XdtTransform" Version="2.0.0" />
<PackageReference Include="Cake.Yarn" Version="2.0.0" />
<PackageReference Include="Dnn.CakeUtils" Version="2.0.2" />
<PackageReference Include="MSBuild.StructuredLogger" Version="2.1.820" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>all</PrivateAssets>
Expand Down
6 changes: 6 additions & 0 deletions Build/Lifetime.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ namespace DotNetNuke.Build
using Cake.Common;
using Cake.Common.Diagnostics;
using Cake.Core;
using Cake.Core.Diagnostics;
using Cake.Core.IO;
using Cake.Frosting;

Expand All @@ -24,6 +25,11 @@ public override void Setup(Context context, ISetupContext setupContext)
Git(context, "add .");
Git(context, "commit --allow-empty -m 'backup'");
}

if (context.Tools.Resolve(new[] { "corepack", "corepack.cmd", }) is null)
{
throw new CakeException("Could not find corepack, Node.js 18 or later must be installed.");
}
}

/// <inheritdoc/>
Expand Down
2 changes: 1 addition & 1 deletion Build/Symbols/DotNetNuke_Symbols.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke_Symbols" type="Library" version="09.12.00" >
<package name="DotNetNuke_Symbols" type="Library" version="09.13.00" >
<friendlyName>DNN Platform Symbols</friendlyName>
<description>This package contains Debug Symbols and Intellisense files for DNN Platform.</description>
<owner>
Expand Down
51 changes: 30 additions & 21 deletions Build/Tasks/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ namespace DotNetNuke.Build.Tasks
using Cake.Common.Build.AzurePipelines.Data;
using Cake.Common.IO;
using Cake.Common.Tools.MSBuild;
using Cake.Core;
using Cake.Core.IO;
using Cake.Frosting;
using Cake.Issues;
Expand Down Expand Up @@ -40,28 +41,9 @@ public override void Run(Context context)
}
finally
{
var issueProviders =
from logFilePath in new[] { cleanLog, buildLog, }
where context.FileExists(logFilePath)
let settings = new MsBuildIssuesSettings(logFilePath, context.MsBuildBinaryLogFileFormat())
select new MsBuildIssuesProvider(context.Log, settings);
var issues = context.ReadIssues(issueProviders, context.Directory("."));
foreach (var issue in issues)
if (context.AzurePipelines().IsRunningOnAzurePipelines)
{
var messageData = new AzurePipelinesMessageData
{
SourcePath = issue.AffectedFileRelativePath?.FullPath,
LineNumber = issue.Line,
};

if (string.Equals(issue.PriorityName, "Error", StringComparison.Ordinal))
{
context.AzurePipelines().Commands.WriteError(issue.MessageText, messageData);
}
else
{
context.AzurePipelines().Commands.WriteWarning(issue.MessageText, messageData);
}
ReportIssuesToAzurePipelines(context, cleanLog, buildLog);
}
}
}
Expand All @@ -73,5 +55,32 @@ private static MSBuildSettings CreateMsBuildSettings(Context context, FilePath b
.EnableBinaryLogger(binLogPath.FullPath)
.SetNoConsoleLogger(context.IsRunningInCI);
}

private static void ReportIssuesToAzurePipelines(ICakeContext context, FilePath cleanLog, FilePath buildLog)
{
var issueProviders =
from logFilePath in new[] { cleanLog, buildLog, }
where context.FileExists(logFilePath)
let settings = new MsBuildIssuesSettings(logFilePath, context.MsBuildBinaryLogFileFormat())
select new MsBuildIssuesProvider(context.Log, settings);
var issues = context.ReadIssues(issueProviders, context.Directory("."));
foreach (var issue in issues)
{
var messageData = new AzurePipelinesMessageData
{
SourcePath = issue.AffectedFileRelativePath?.FullPath,
LineNumber = issue.Line,
};

if (string.Equals(issue.PriorityName, "Error", StringComparison.Ordinal))
{
context.AzurePipelines().Commands.WriteError(issue.MessageText, messageData);
}
else
{
context.AzurePipelines().Commands.WriteWarning(issue.MessageText, messageData);
}
}
}
}
}
31 changes: 23 additions & 8 deletions Build/Tasks/BuildNpmPackages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,38 @@
// See the LICENSE file in the project root for more information
namespace DotNetNuke.Build.Tasks
{
using System;

using Cake.Common.IO;
using Cake.Core.Tooling;
using Cake.Common.Tools.Command;
using Cake.Core;
using Cake.Core.IO;
using Cake.Frosting;
using Cake.Yarn;

/// <summary>Builds the npm packages for the entire solution.</summary>
public sealed class BuildNpmPackages : FrostingTask<Context>
{
/// <inheritdoc/>
public override void Run(Context context)
{
context.Yarn().Install(c => c
.WithArgument("--no-immutable")
.WithWorkingDirectory(context.Directory("./")));
context.Yarn().RunScript("build");
var corepackCommand = new CommandSettings
{
ToolName = "Corepack",
ToolExecutableNames = new[] { "corepack", "corepack.cmd", },
WorkingDirectory = context.Directory("./"),
};

context.Command(
corepackCommand,
new ProcessArgumentBuilder()
.Append("yarn")
.Append("install")
.Append("--no-immutable"));

context.Command(
corepackCommand,
new ProcessArgumentBuilder()
.Append("yarn")
.Append("run")
.Append("build"));
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.Console" type="Module" version="09.12.00">
<package name="DotNetNuke.Console" type="Module" version="09.13.00">
<friendlyName>Console</friendlyName>
<description>Display children pages as icon links for navigation.</description>
<iconFile>~/DesktopModules/Admin/Console/console.png</iconFile>
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Connectors/Azure/AzureConnector.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="Dnn.AzureConnector" type="Connector" isSystem="false" version="09.12.00">
<package name="Dnn.AzureConnector" type="Connector" isSystem="false" version="09.13.00">
<friendlyName>Dnn Azure Connector</friendlyName>
<description>The Azure Connector allows you to create folders mapped to Azure Storage accounts.</description>
<iconFile>~/DesktopModules/Connectors/Azure/Images/icon-azure-32px.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleAnalytics" type="Connector" isSystem="false" version="09.12.00">
<package name="DNN.Connectors.GoogleAnalytics" type="Connector" isSystem="false" version="09.13.00">
<friendlyName>Google Analytics (Legacy UA) Connector</friendlyName>
<description>Configure your site's Google Analytics settings using Universal Analytics.</description>
<iconFile>~/DesktopModules/Connectors/GoogleAnalytics/Images/GoogleAnalytics_32X32_Standard.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleAnalytics4" type="Connector" isSystem="false" version="09.12.00">
<package name="DNN.Connectors.GoogleAnalytics4" type="Connector" isSystem="false" version="09.13.00">
<friendlyName>Google Analytics 4 Connector</friendlyName>
<description>Configure your site's Google Analytics 4 settings.</description>
<iconFile>~/DesktopModules/Connectors/GoogleAnalytics4/Images/GoogleAnalytics4_32X32_Standard.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleTagManager" type="Connector" isSystem="false" version="09.12.00">
<package name="DNN.Connectors.GoogleTagManager" type="Connector" isSystem="false" version="09.13.00">
<friendlyName>Google Tag Manager Connector</friendlyName>
<description>Configure your site's Google Tag Manager settings.</description>
<iconFile>~/DesktopModules/Connectors/GoogleTagManager/Images/GoogleTagManager_32X32_Standard.png</iconFile>
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNNJWT" type="Provider" version="09.12.00">
<package name="DNNJWT" type="Provider" version="09.13.00">
<friendlyName>DNN JWT Auth Handler</friendlyName>
<description>DNN Json Web Token Authentication (JWT) library for cookie-less Mobile authentication clients</description>
<dependencies/>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information

namespace DotNetNuke.Abstractions.Security.Permissions;

/// <summary>Information about the application of an instance of a folder permission.</summary>
public interface IFolderPermissionInfo : IPermissionInfo
{
/// <summary>Gets or sets the ID of the folder permission.</summary>
int FolderPermissionId { get; set; }

/// <summary>Gets or sets the folder ID to which the permission applies.</summary>
int FolderId { get; set; }

/// <summary>Gets or sets the path of the folder to which the permission applies.</summary>
string FolderPath { get; set; }

/// <summary>Gets or sets the portal ID of the folder to which the permission applies.</summary>
int PortalId { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information

namespace DotNetNuke.Abstractions.Security.Permissions;

/// <summary>Information about the definition of a permission.</summary>
public interface IPermissionDefinitionInfo
{
/// <summary>Gets or sets the Module Definition ID.</summary>
public int ModuleDefId { get; set; }

/// <summary>Gets or sets the Permission Code.</summary>
public string PermissionCode { get; set; }

/// <summary>Gets or sets the Permission ID.</summary>
public int PermissionId { get; set; }

/// <summary>Gets or sets the Permission Key.</summary>
public string PermissionKey { get; set; }

/// <summary>Gets or sets the Permission Name.</summary>
public string PermissionName { get; set; }
}
Loading

0 comments on commit 64babbe

Please sign in to comment.