Skip to content

uSync 17.5.0: Umbraco 17.8 readiness - #1137

Open
KevinJump wants to merge 8 commits into
v17/mainfrom
v17/17.5.0
Open

KevinJump wants to merge 8 commits into
v17/mainfrom
v17/17.5.0

Conversation

@KevinJump

@KevinJump KevinJump commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Release PR for uSync 17.5.0. Collects the Umbraco 17.8 readiness work tracked in #1132. Each change was reviewed and merged into v17/17.5.0 on its own PR.

The minimum Umbraco version stays at 17.3 (Umbraco.Cms.Core 17.3.0). Every change works on 17.3–17.8.

Changes

PR Change
#1133 RTE dependencies now include URL-encoded %7BlocalLink:…%7D links, which Umbraco 17.8 resolves.
#1134 The server role is logged at startup. Comments explain the 17.8 role election (behaviour unchanged).
#1135 The dashboard's SignalR hub reconnects automatically, with a capped backoff and a fresh token on each reconnect.
#1136 A content key change also removes the old key's URL alias rows.

Testing (Umbraco 17.8.0-rc)

  • uSync.Tests: 184/184 pass on the 17.3 test packages. The suite also passes against the 17.8.0-rc test packages.
  • Role election: two sites shared one DB. The election loser (Subscriber) skips the startup import. The Single / SchedulingPublisher server runs it.
  • Imported content shows "pending changes" when an invariant Block List contains culture-variant element values #1097 scenario: an invariant block list with culture-variant elements imports with no pending changes (segments not covered).
  • Without AddWebsite(): a backoffice + Delivery API site installs, imports, serves content and runs the dashboard.
  • SignalR: after a server restart, the hub reconnects and a report completes.

Release notes

  • Umbraco 17.8: startup import on load-balanced sites. From Umbraco 17.8 the server role is elected before uSync's startup import. On a load-balanced site using Umbraco's default election, ImportAtStartup now runs only on the elected SchedulingPublisher (or a Single server), not on every server. Sites that pin every server to SchedulingPublisher with a custom IServerRoleAccessor are unaffected. uSync now logs the server role on startup.
  • Rich text dependencies now include links written as %7BlocalLink:…%7D (URL-encoded braces).
  • Live progress reconnects after a server restart or network drop.
  • Key changes now also remove the old key's URL alias rows.

On release

  • Forward-port to v18/main.

Closes #1132

🤖 Generated with Claude Code

KevinJump and others added 8 commits October 15, 2026 11:40
Umbraco 17.8 resolves %7BlocalLink:guid%7D as well as {localLink:guid}
(umbraco/Umbraco-CMS#23767). Extend the regex to match either form and
read the guid from a named group rather than trimming braces.

Refs #1132

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Umbraco 17.8 elects the server role before UmbracoApplicationStartingNotification
(umbraco/Umbraco-CMS#23801), so the Subscriber check in the startup handler
now fires on election-based load-balanced sites. Log the resolved role at
Information to help support, and note in FirstBootMigration that package
migrations still run before the election.

Refs #1132

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The SyncHub connection had no automatic reconnect and captured the access
token once, so after a server restart or network blip the dashboard lost
live progress until the page was reloaded. Add withAutomaticReconnect with a
local copy of Umbraco 17.8's capped-backoff policy (importing theirs breaks
17.3-17.7), fetch the latest token on each (re)connect, and track the
connected state through reconnecting/reconnected.

Refs #1132

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Match URL-encoded localLink tags in RTE dependencies
Log the server role at startup and document 17.8 election
Reconnect the uSync SignalR hub automatically
SyncDocumentUrlCleaner removed umbracoDocumentUrl rows for the old key but
left umbracoDocumentUrlAlias rows behind. IDocumentUrlAliasRepository has
DeleteByDocumentKey from Umbraco 17.2, so it is safe on the 17.3 floor.

Refs #1132

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…change

Clean URL alias rows for the old key on a content key change

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Umbraco 17.8.0 readiness

1 participant