Skip to content

Dev/bc public api phase4 - #23619

Open
ramezgerges wants to merge 17 commits into
feature/breakingchangesfrom
dev/bc-public-api-phase4
Open

Dev/bc public api phase4#23619
ramezgerges wants to merge 17 commits into
feature/breakingchangesfrom
dev/bc-public-api-phase4

Conversation

@ramezgerges

@ramezgerges ramezgerges commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

GitHub Issue: closes https://github.com/unoplatform/uno-private/issues/2126, closes #13709

PR Type:

What changed? 🚀

PR Checklist ✅

@ramezgerges
ramezgerges requested a review from MartinZikmund July 2, 2026 03:26
@github-actions github-actions Bot added platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform platform/android 🤖 Categorizes an issue or PR as relevant to the Android platform platform/macos 🍏 Categorizes an issue or PR as relevant to the macOS platform platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/code-generation Categorizes an issue or PR as relevant to code generation area/automation Categorizes an issue or PR as relevant to project automation kind/documentation platform/x11 🐧 Categorizes an issue or PR as relevant to X11 labels Jul 2, 2026
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

WinAppSDK sync generator drift detected on cbde846

The Uno.WinAppSDKSyncGenerator produced changes that are not committed on this PR.

To apply automatically (PRs from branches in this repo only): comment /apply-sync-gen on this PR and a bot will push chore: Sync generator run to the head branch.

To apply manually (required for PRs from forks):

  1. Download the sync-generator-patch artifact from this run.
  2. In your local checkout of the PR branch:
    git apply sync-generator.patch
    git add -A
    git commit -m "chore: Sync generator run"
    git push
    

Or re-run the generator locally on Windows via build\run-api-sync-tool.cmd.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

2 similar comments
@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@github-actions github-actions Bot added the area/build Categorizes an issue or PR as relevant to build infrastructure label Jul 6, 2026
@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

2 similar comments
@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 220938 did not find any UI Test snapshots differences.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 220970 did not find any UI Test snapshots differences.

@unodevops

Copy link
Copy Markdown
Contributor

⚠️⚠️ The build 220970 has failed on Uno.UI - CI.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 221070 found UI Test snapshots differences: skia-linux-screenshots: 0, skia-windows-screenshots: 72

Details
  • skia-linux-screenshots: 0 changed over 2366

  • skia-windows-screenshots: 72 changed over 2366

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DoubleImageBrushInList.png-dark
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • CalendarView_Theming.png-dark
    • DisplayInformation.png-dark
    • DropDownButtonPage.png-dark
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • Image_UseTargetSize.png-dark
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • Buttons.png-dark
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • ImageIconPage.png-dark
    • ImageIconPage.png
    • ClipboardTests.png-dark
    • ClipboardTests.png

@unodevops

Copy link
Copy Markdown
Contributor

⚠️⚠️ The build 221070 has failed on Uno.UI - CI.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 221124 found UI Test snapshots differences: skia-linux-screenshots: 0, skia-windows-screenshots: 72

Details
  • skia-linux-screenshots: 0 changed over 2366

  • skia-windows-screenshots: 72 changed over 2366

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • CalendarView_Theming.png-dark
    • DisplayInformation.png-dark
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Image_AnimatedWebP.png-dark
    • Image_AnimatedWebP.png
    • Buttons.png-dark
    • DropDownButtonPage.png-dark
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • ClipboardTests.png-dark
    • Examples.png-dark
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • ImageBrushInList.png-dark

@unodevops

Copy link
Copy Markdown
Contributor

⚠️⚠️ The build 221124 has failed on Uno.UI - CI.

ramezgerges and others added 4 commits July 30, 2026 15:08
Removing IEnumerable from FrameworkElement/ContentControl breaks C#
collection-initializer syntax (new Panel { child }) across tests,
samples, and user code. Reverted; needs a decision + migration sweep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC16 is decided (dropped): the DependencyPropertyChangedEventArgs pool
already captures the allocation win, and the struct drops precedence/
bypass fields. Delete the #if false struct and its stale commented
reference instead of leaving 'bring back in Uno 6' dead code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (BC41)

Move PointerPoint, PointerPointProperties, PointerUpdateKind and
IPointerPointTransform out of Uno.UI (Microsoft.UI.Input) into Uno.UWP so
Uno.UI.Composition can reference the modern type. This unblocks BC41:
VisualInteractionSource/ICompositionTarget/CompositionTarget.TryRedirectForManipulation
now take Microsoft.UI.Input.PointerPoint (was Windows.UI.Input.PointerPoint).

Drops the legacy Windows.UI.Input pointer variant of these types (and the
Microsoft<->Windows bridge), migrating in-assembly consumers (CoreWindow,
PointerEventArgs, injection, InputManager, PointerRoutedEventArgs) to the
modern type. GestureRecognizer/Manipulation stay in Uno.UI (Composition dep).

Compile-validated on Skia + Reference + RuntimeTests. Native/WASM/other Skia
hosts and interactive pointer input pending CI + device validation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ramezgerges
ramezgerges force-pushed the dev/bc-public-api-phase4 branch from d357a32 to 681e0a8 Compare July 30, 2026 15:26
The WinAppSDKSyncGenerator's GetNamespaceBasePath routed all
Microsoft.UI.Input stubs to Uno.UI; after relocating PointerPoint,
PointerPointProperties, PointerUpdateKind and IPointerPointTransform to
Uno.UWP, their generated stubs must be routed there too so a regen
reproduces the layout. Rest of Microsoft.UI.Input stays in Uno.UI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

WinAppSDK sync generator drift detected on 681e0a8

The Uno.WinAppSDKSyncGenerator produced changes that are not committed on this PR.

To apply automatically (PRs from branches in this repo only): comment /apply-sync-gen on this PR and a bot will push chore: Sync generator run to the head branch.

To apply manually (required for PRs from forks):

  1. Download the sync-generator-patch artifact from this run.
  2. In your local checkout of the PR branch:
    git apply sync-generator.patch
    git add -A
    git commit -m "chore: Sync generator run"
    git push
    

Or re-run the generator locally on Windows via build\run-api-sync-tool.cmd.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-23619/docs/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 224987 found UI Test snapshots differences: skia-linux-screenshots: 88, skia-windows-screenshots: 99

Details
  • skia-linux-screenshots: 88 changed over 2392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • ColorPickerSample.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • ImageSourceUrlMsAppDataScheme.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • Basics Pivot Test.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • Image_UseTargetSizeLate.png-dark
    • Image_UseTargetSizeLate.png
    • Buttons.png-dark
    • Buttons.png
    • Image_AnimatedWebP.png-dark
  • skia-windows-screenshots: 99 changed over 2392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Buttons.png
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • Focus_FocusVisual_Properties.png-dark
    • CalendarView_Theming.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • ContextRequested.png-dark
    • Buttons.png-dark
    • CalendarView_Theming.png-dark
    • ColorPickerSample.png-dark
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • Image_UseTargetSize.png-dark

Follow-up to the PointerPoint relocation (BC41): migrate the platform-
specific and host consumers off the removed Windows.UI.Input pointer
types — PointerHelpers.Android, BrowserPointerInputSource (wasm + Browser
host), FrameBuffer/Tizen input sources, and the GestureRecognizer unit
test + samples. Disambiguate PointerDeviceType (Windows.Devices.Input vs
Microsoft.UI.Input) with per-file aliases/casts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

WinAppSDK sync generator drift detected on e808bf7

The Uno.WinAppSDKSyncGenerator produced changes that are not committed on this PR.

To apply automatically (PRs from branches in this repo only): comment /apply-sync-gen on this PR and a bot will push chore: Sync generator run to the head branch.

To apply manually (required for PRs from forks):

  1. Download the sync-generator-patch artifact from this run.
  2. In your local checkout of the PR branch:
    git apply sync-generator.patch
    git add -A
    git commit -m "chore: Sync generator run"
    git push
    

Or re-run the generator locally on Windows via build\run-api-sync-tool.cmd.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-23619/docs/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 225017 found UI Test snapshots differences: skia-linux-screenshots: 88, skia-windows-screenshots: 99

Details
  • skia-linux-screenshots: 88 changed over 2392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Image_Margin_Large.png-dark
    • ImageSourceUrlMsAppDataScheme.png
    • Buttons.png-dark
    • Buttons.png
    • EllipsemaskingEllipseGrid.png
    • ImageBrush_Stretch.png
    • DropDownButtonPage.png-dark
    • Gamepad_Enumeration.png-dark
  • skia-windows-screenshots: 99 changed over 2392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Gamepad_CurrentReading.png-dark
    • Buttons.png
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • ColorPickerSample.png-dark
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • ContextRequested.png-dark
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Image_UseTargetSize.png-dark
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • Focus_FocusVisual_Properties.png-dark
    • ButtonClippingTestsControl.png-dark
    • ClipboardTests.png-dark

Round-3 CI fixes: X11/Win32/MacOS/FrameBuffer/Tizen/WASM-Browser input
sources + InputManager.Pointers referenced the removed Windows.UI.Input
pointer types via bare names. Import Microsoft.UI.Input (needed for the
PointerPointProperties extension methods) and disambiguate PointerEventArgs
(-> Windows.UI.Core) and PointerDeviceType (-> Windows.Devices.Input) via
per-file aliases. Validated locally: X11 + FrameBuffer hosts, Uno.UI.Skia,
RuntimeTests.Skia, UnitTests all build clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

WinAppSDK sync generator drift detected on 0504cfd

The Uno.WinAppSDKSyncGenerator produced changes that are not committed on this PR.

To apply automatically (PRs from branches in this repo only): comment /apply-sync-gen on this PR and a bot will push chore: Sync generator run to the head branch.

To apply manually (required for PRs from forks):

  1. Download the sync-generator-patch artifact from this run.
  2. In your local checkout of the PR branch:
    git apply sync-generator.patch
    git add -A
    git commit -m "chore: Sync generator run"
    git push
    

Or re-run the generator locally on Windows via build\run-api-sync-tool.cmd.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-23619/docs/index.html

Apply the WinAppSDKSyncGenerator patch (re-adds the Windows.UI.Input.*
NotImplemented stubs the UWP contract requires, and normalizes the moved
Microsoft.UI.Input pointer stubs) so the sync-generator check passes.

Fix consumers shadowed by the re-added Windows.UI.Input stubs: CoreWindow
and PointerEventArgs drop the now-redundant Windows.UI.Input import; the
Preview.Injection files use namespace-scoped Microsoft.UI.Input aliases
(compilation-unit aliases lose to the enclosing Windows.UI.Input namespace).

Validated: Uno.UWP.Skia, Uno.UI.Skia, X11 + FrameBuffer hosts, UnitTests,
RuntimeTests.Skia all build clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-23619/docs/index.html

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-23619/docs/index.html

Adds PackageDiffIgnore entries for the Phase-4 visibility reductions,
navigation ctor/setter hiding, Duration.TimeSpan read-only change, and
the Microsoft.UI.Input.PointerPoint family relocation (BC41).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-23619/docs/index.html

The BC41 relocation removed the whole `UI\Input\WinRT\*.cs` compile glob
from the Uno.UWP heads, which dropped the entire Windows.UI.Input gesture/
manipulation surface (GestureRecognizer, ManipulationDelta, etc.) — not just
the relocated PointerPoint family. Only the 4 PointerPoint-family files were
meant to move; that removal was accidental scope creep into BC76.

Restore the glob (the 4 relocated files already left the folder) and point
the gesture files' PointerPoint/PointerPointProperties/PointerUpdateKind
references at the relocated global::Microsoft.UI.Input types so they resolve
in both namespace flavors. Revert the 14 gesture/manipulation generated stubs
to their skip-already-declared form that coexists with the glob.

Compile-validated: Uno.UWP Skia+Reference, Uno.UI Skia, RuntimeTests Skia.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-23619/docs/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 225115 found UI Test snapshots differences: skia-linux-screenshots: 88, skia-windows-screenshots: 90

Details
  • skia-linux-screenshots: 88 changed over 2392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • Image_Margin_Large.png-dark
    • ImageSourceUrlMsAppDataScheme.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • Image_AnimatedWebP.png-dark
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • ColorPickerSample.png
    • EllipsemaskingEllipseGrid.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Buttons.png-dark
    • Buttons.png
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • ImageIconPage.png-dark
    • ImageIconPage.png
  • skia-windows-screenshots: 90 changed over 2392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Focus_FocusVisual_Properties.png-dark
    • Buttons.png-dark
    • Buttons.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • AutoSizedPathCentered.png-dark
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • Attributed_text_FontSize_Changing.png
    • ContextRequested.png-dark
    • Gamepad_Enumeration.png-dark

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

Labels

area/automation Categorizes an issue or PR as relevant to project automation area/build Categorizes an issue or PR as relevant to build infrastructure area/code-generation Categorizes an issue or PR as relevant to code generation area/skia ✏️ Categorizes an issue or PR as relevant to Skia kind/documentation platform/android 🤖 Categorizes an issue or PR as relevant to the Android platform platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform platform/macos 🍏 Categorizes an issue or PR as relevant to the macOS platform platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform platform/x11 🐧 Categorizes an issue or PR as relevant to X11

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants