Skip to content
Draft
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 .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - \

# Enable Corepack and set pnpm version
RUN corepack enable \
&& corepack prepare pnpm@11.1.3 --activate
&& corepack prepare pnpm@11.4.0 --activate

# Install sqlite3 for local database
RUN apt-get update \
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
with:
fetch-depth: 0

- uses: dotnet/nbgv@v0.5.1
- uses: dotnet/nbgv@v0.5.2
with:
setAllVars: true

Expand All @@ -34,13 +34,13 @@ jobs:
echo "Date: ${NBGV_GitCommitDate}"

- name: Setup pnpm
uses: pnpm/action-setup@v5.0.0
uses: pnpm/action-setup@v6.0.8
with:
version: 10.28
package_json_file: src/Articulate.Web/Client/package.json
run_install: false

- name: Setup NodeJS
uses: actions/setup-node@v6.3.0
uses: actions/setup-node@v6.4.0
with:
node-version-file: "src/Articulate.Web/Client/.node-version"
cache: "pnpm"
Expand All @@ -52,19 +52,19 @@ jobs:
echo "path=$(pnpm store path)" >> "$GITHUB_OUTPUT"

- name: Cache pnpm store
uses: actions/cache@v5.0.4
uses: actions/cache@v5.0.5
with:
path: ${{ steps.pnpm-cache.outputs.path }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('src/Articulate.Web/Client/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Setup .NET SDKs
uses: actions/setup-dotnet@v5.2.0
uses: actions/setup-dotnet@v5.3.0
with:
dotnet-version: |
9.0.309
10.0.201
9.0.x
10.0.x

- name: Run build pipeline script
run: bash ./build/build.sh
Expand Down
4 changes: 1 addition & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,15 @@
<SystemServiceModelSyndicationPackageVersion>[9.0.14,10.0.3)</SystemServiceModelSyndicationPackageVersion>
<SystemSecurityCryptographyXmlPackageVersion>[9.0.15,10.0.0)</SystemSecurityCryptographyXmlPackageVersion>
<MailKitPackageVersion>[4.16.0,5.0.0)</MailKitPackageVersion>
<OpenMcdfPackageVersion>3.1.3</OpenMcdfPackageVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net10.0'">
<!-- Support Umbraco 17.x (including pre-release) on .NET 10 -->
<UmbracoCmsPackageVersion>[17.2.2,18.0.0)</UmbracoCmsPackageVersion>
<UmbracoCmsPackageVersion>[17.4.0,18.0.0)</UmbracoCmsPackageVersion>
<MicrosoftOpenApiPackageVersion>[2.3.0,3.0.0)</MicrosoftOpenApiPackageVersion>
<MicrosoftCodeAnalysisPackageVersion>[5.3.0,6.0.0)</MicrosoftCodeAnalysisPackageVersion>
<SystemServiceModelSyndicationPackageVersion>[10.0.5,11.0.0)</SystemServiceModelSyndicationPackageVersion>
<SystemSecurityCryptographyXmlPackageVersion>[10.0.6,11.0.0)</SystemSecurityCryptographyXmlPackageVersion>
<MailKitPackageVersion>[4.16.0,5.0.0)</MailKitPackageVersion>
<OpenMcdfPackageVersion>3.1.3</OpenMcdfPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- TODO: Enable when 6.0 version is shipped -->
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# syntax=docker/dockerfile:1

# Build stage - .NET 10 SDK
FROM mcr.microsoft.com/dotnet/sdk:10.0.201 AS build
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src

# Allow overriding Umbraco CMS version for the container build
ARG UMBRACO_CMS_VERSION="[17.2.2,18.0.0)"
ARG UMBRACO_CMS_VERSION="[17.4.0,18.0.0)"
ARG BUILD_CONFIGURATION=Release
ARG PACKAGE_DIR=/articulate-packages

Expand Down Expand Up @@ -43,7 +43,7 @@ RUN set -eux; \
/p:ArticulatePackageVersion=\"$ARTICULATE_PKG_VERSION\"

# Runtime stage - ASP.NET 10.0
FROM mcr.microsoft.com/dotnet/aspnet:10.0.2 AS final
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final
WORKDIR /app

ENV ASPNETCORE_URLS=http://+:8080 \
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ _Need help?_ Head over to [Articulate on GitHub](https://github.com/Shazwazza/Ar

### Umbraco 16 (NET 9) & 17 (NET 10) (current track)

Articulate 6 targets Umbraco 16.5.1+ and 17.2.2+
Articulate 6 targets Umbraco 16.5.1+ and 17.4.0+

- Install `Articulate` from NuGet (`dotnet add package Articulate`). The package includes the backoffice extension and static assets; no extra package references or manual copies required.
- When building from source, run the test site `dotnet run -f net9.0 --project src/Articulate.Tests.Website/Articulate.Tests.Website.csproj` (or `-f net10.0` for Umbraco 17) and sign into the Umbraco Back Office to finish setup.
Expand Down Expand Up @@ -245,7 +245,7 @@ Built-in themes render Disqus comments only when both post comments are enabled
## Minimum requirements

- Articulate 5.x (maintenance): Umbraco 13 LTS (security support through Dec 2025, EOL Dec 2026)
- Articulate 6.x (current): Umbraco 16.5.1+ on .NET 9; Umbraco 17.2.2+ on .NET 10
- Articulate 6.x (current): Umbraco 16.5.1+ on .NET 9; Umbraco 17.4.0+ on .NET 10

## [Documentation](https://github.com/Shazwazza/Articulate/wiki)

Expand Down
2 changes: 1 addition & 1 deletion RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
> **Platform requirements**
>
> - Minimum Umbraco version: **16.5.1** on .NET 9
> - Minimum Umbraco version: **17.2.2** on .NET 10
> - Minimum Umbraco version: **17.4.0** on .NET 10
> - Umbraco 15 and earlier are no longer supported by Articulate 6

- Articulate 6 is multi-targeted for `net9.0` and `net10.0`, supporting Umbraco 16 and 17 from a single package.
Expand Down
1 change: 0 additions & 1 deletion build/docker-site/ArticulateDockerSite.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,5 @@
<PackageReference Include="Umbraco.Cms" Version="$(UmbracoCmsPackageVersion)" />
<PackageReference Include="Articulate" Version="$(ArticulatePackageVersion)" />
<PackageReference Include="Articulate.Theme.Sample" Version="$(ArticulatePackageVersion)" />
<PackageReference Include="OpenMcdf" Version="$(OpenMcdfPackageVersion)" PrivateAssets="All" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ services:
dockerfile: Dockerfile
args:
BUILD_CONFIGURATION: ${BUILD_CONFIGURATION:-Release}
UMBRACO_CMS_VERSION: ${UMBRACO_CMS_VERSION:-[17.2.2,18.0.0)}
UMBRACO_CMS_VERSION: ${UMBRACO_CMS_VERSION:-[17.4.0,18.0.0)}
image: ${IMAGE_TAG:-articulate-local:net10}
user: "1654:1654"
environment:
Expand Down
4 changes: 2 additions & 2 deletions global.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"sdk": {
"version": "10.0.201",
"rollForward": "latestPatch",
"version": "10.0.100",
"rollForward": "latestFeature",
"allowPrerelease": false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Umbraco.Cms" Version="$(UmbracoCmsPackageVersion)" />
<PackageReference Include="OpenMcdf" Version="$(OpenMcdfPackageVersion)" PrivateAssets="All" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageReference Include="Umbraco.Cms.DevelopmentMode.Backoffice" Version="$(UmbracoCmsPackageVersion)" />
Expand Down
3 changes: 1 addition & 2 deletions src/Articulate.Tests/Articulate.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,12 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.4.0" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="NUnit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
<PackageReference Include="Umbraco.Cms" Version="$(UmbracoCmsPackageVersion)" />
<PackageReference Include="Umbraco.Cms.Tests.Integration" Version="$(UmbracoCmsPackageVersion)" />
<PackageReference Include="OpenMcdf" Version="$(OpenMcdfPackageVersion)" PrivateAssets="All" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,43 @@ public void Handle_imported_package_does_not_publish_when_runtime_not_run()
sqlContext.VerifyNoOtherCalls();
}

#if NET10_0_OR_GREATER
[Test]
public void Handle_imported_package_publishes_when_runtime_upgrading()
Comment thread
gavinfaux marked this conversation as resolved.
{
IContent root = CreateContent(1, published: true);

Mock<IContentService> contentService = new();
contentService
.Setup(x => x.PublishBranch(root, PublishBranchFilter.All, It.IsAny<string[]>()))
.Returns([]);

Mock<IContentTypeService> contentTypeService = new(MockBehavior.Strict);
Mock<ISqlContext> sqlContext = new(MockBehavior.Strict);

Mock<IRuntimeState> runtimeState = new();
runtimeState.SetupGet(x => x.Level).Returns(RuntimeLevel.Upgrading);

var sut = new ArticulateMigrationPlanExecutedHandler(
runtimeState.Object,
contentService.Object,
contentTypeService.Object,
sqlContext.Object,
NullLogger<ArticulateMigrationPlanExecutedHandler>.Instance,
Microsoft.Extensions.Options.Options.Create(new ArticulateOptions { AutoPublishOnStartup = true }),
_scopeProvider.Object);

sut.Handle(CreateImportedPackageNotification(root));

contentService.Verify(
x => x.PublishBranch(root, PublishBranchFilter.All, It.IsAny<string[]>()),
Times.Once);
contentService.VerifyNoOtherCalls();
contentTypeService.VerifyNoOtherCalls();
sqlContext.VerifyNoOtherCalls();
}
#endif

[Test]
public void Handle_imported_package_does_not_publish_when_package_did_not_install_articulate_roots()
{
Expand Down
5 changes: 2 additions & 3 deletions src/Articulate.Web/Articulate.Web.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,11 @@
<PackageReference Include="Umbraco.Cms.Api.Management" Version="$(UmbracoCmsPackageVersion)" />
<!-- Third-party dependencies (from Articulate.csproj) -->
<PackageReference Include="Argotic.Core" Version="3001.0.0" />
<PackageReference Include="FileSignatures" Version="6.1.1" />
<PackageReference Include="Markdig" Version="0.44.0" />
<PackageReference Include="FileSignatures" Version="7.2.1" />
<PackageReference Include="Markdig" Version="0.45.0" />
<PackageReference Include="WilderMinds.MetaWeblog" Version="5.1.3" />
<PackageReference Include="System.ServiceModel.Syndication" Version="$(SystemServiceModelSyndicationPackageVersion)" />
<PackageReference Include="System.Security.Cryptography.Xml" Version="$(SystemSecurityCryptographyXmlPackageVersion)" PrivateAssets="All" />
<PackageReference Include="OpenMcdf" Version="$(OpenMcdfPackageVersion)" PrivateAssets="All" />
</ItemGroup>

<!-- Build targets shipped with the package (copies XML docs for Swagger) -->
Expand Down
2 changes: 1 addition & 1 deletion src/Articulate.Web/Client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"engines": {
"node": ">=24"
},
"packageManager": "pnpm@11.1.3",
"packageManager": "pnpm@11.4.0",
"keywords": [
"blog",
"umbraco",
Expand Down
Loading