Skip to content

Merge v17 into v18 (2026-09-30) - #1103

Merged
KevinJump merged 5 commits into
v18/mainfrom
merge/v17-to-v18-2026-09-30
Sep 30, 2026
Merged

KevinJump merged 5 commits into
v18/mainfrom
merge/v17-to-v18-2026-09-30

Conversation

@KevinJump

Copy link
Copy Markdown
Owner

Summary

Forward-ports the v17 work landed after the last forward merge (#1086). One commit per v17 PR, re-applied onto v18's code rather than merged. The squashed forward merges left the git merge base back at 17.3.2, so a straight git merge conflicts in 45 files.

Umbraco 18.0–18.1 have the same core behaviour as 17.3–17.6; 18.2 brings the 17.7 fixes. So all three product changes are needed on v18's 18.1 floor, and they have no effect from 18.2 on. Comments say "before 18.2".

Not ported: #1096 (CI parity). It brought v17's workflows up to v18, so there is nothing to take forward.

Test plan

  • dotnet build ./uSync.slnx -c Release: succeeds, 0 errors
  • dotnet test on Umbraco 18.1.0: 250/250 passed
  • dotnet test with the packages bumped to Umbraco 18.2.0 (local only, not committed): 250/250 passed
  • On 18.1 with the Keep the published cache current after content type imports before Umbraco 17.7 #1102 workarounds removed, the new cache tests fail (composition in both cache modes, variance with the real cache), so the bugs exist on 18.1 as well
  • The usync-assets client wasn't rebuilt locally after the brace-expansion bump; CI covers it

Please merge with a merge commit, not squash.

🤖 Generated with Claude Code

KevinJump and others added 5 commits September 30, 2026 11:58
Forward-ported from v17/main (cherry picked from commit 10e617b).

Adapted for v18: the import serializer options start from Jumoo.Json's
JsonTextOptions.GetOptions(false), since uSync.Core's own options moved
there, and the test passes the IVariationContextAccessor that
BlockEditorVarianceHandler now takes.

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

Forward-ported from v17/main (c12bc72). Umbraco 18.0-18.1 have the same core
behaviour as 17.3-17.6; 18.2 brings the 17.7 fixes.

- Culture codes are written in standard casing on export (names, values,
  published and schedule cultures), and normalised before the direct
  CultureInfos.Add on import.
- Property moves go through an internal helper; the tests check the
  outcome, so they pass before and after 18.2, with save-and-reload
  coverage in both directions.

Adapted for v18: the published and schedule cultures live in
PublishableContentBaseSerializer, and the tests use
IContentTypeService.CreateAsync/UpdateAsync and don't need the local
link composer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…braco 18.2 (#1102)

Forward-ported from v17/main (e89bd81). Umbraco 18.0-18.1 have the same
two cache bugs as 17.3-17.6 (umbraco/Umbraco-CMS#23433, #23445); 18.2
fixes them and the workarounds do nothing there.

- After saving a composition change, refresh the types composed of it.
- Clear the property types' stale dirty state when a content type is
  loaded for import, so a variance-only change is treated as structural.

Adapted for v18: the tests use IContentTypeService.CreateAsync and don't
need the local link composer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#1099)

Forward-ported from v17/main, written against v18's prerelease.yml.
v18/main builds keep the "-prerelease.{date}.{run}" version; any other
branch gets "-branch.{name}.{date}.{run}" so it can't be mistaken for a
main nightly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Forward-ported from v17/main. v18's lockfile only has the top-level
copy (5.0.9); v17's nested @vue/language-core copy doesn't exist here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@KevinJump
KevinJump merged commit cfcce22 into v18/main Sep 30, 2026
2 checks passed
@KevinJump
KevinJump deleted the merge/v17-to-v18-2026-09-30 branch September 30, 2026 11:07
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.

1 participant