Skip to content

Merge v17 into v18 (2026-09-12) - #1086

Merged
KevinJump merged 1 commit into
v18/mainfrom
merge/v17-to-v18-2026-09-12
Sep 12, 2026
Merged

KevinJump merged 1 commit into
v18/mainfrom
merge/v17-to-v18-2026-09-12

Conversation

@KevinJump

Copy link
Copy Markdown
Owner

Summary

Forward-ports the v17 work landed after the last forward merge (#1081)
that was still outstanding.

  • Configurable bad file name blocklist — cherry-picked from
    #1085: adds
    AdditionalBadNames/IncludeWindowsReservedNames to uSyncSettings so
    the export-time unsafe-filename check can be extended via
    appsettings.json, optionally including Windows reserved device names.
    ToAppSafeFileName gets an additive overload taking the extra names.
    Applied cleanly on top of the ToAppSafeFileName fix already ported in
    Merge v17 into v18 (2026-09-08) #1081.

Not ported (judgement call, left for a separate decision):

  • #1082 "Convert nightly
    build workflow to manual prerelease trigger" — renames v17's
    package-build.yml to prerelease.yml and switches its trigger to
    workflow_dispatch. v18's package-build.yml is still push-triggered
    but was already independently modernized past v17's CI in Merge v17 into v18 (2026-09-08) #1081, so
    this is being held back rather than ported automatically.

Test plan

  • dotnet build ./uSync.slnx -c Release — succeeds, 0 errors
  • dotnet test ./uSync.Tests/uSync.Tests.csproj -c Release — 230/230 passed

Please merge with a merge commit, not squash, so the next forward-port
run can find this baseline directly from ancestry.

🤖 Generated with Claude Code

Adds AdditionalBadNames and IncludeWindowsReservedNames to uSyncSettings
so the export-time unsafe-filename check (app.config/web.config) can be
extended via appsettings.json, optionally including Windows reserved
device names (CON, COM1-9, LPT1-9, etc). Built-in defaults stay active
either way.

ToAppSafeFileName gets an additive overload taking the extra names so
existing callers are unaffected. The merged list is cached per handler
instance to avoid rebuilding it per exported node.
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.

2 participants