Visitar URL original
refactor!: Drop Skia from the host assemblies, namespaces and types by MartinZikmund · Pull Request #24804 · unoplatform/uno · GitHub
Skip to content

refactor!: Drop Skia from the host assemblies, namespaces and types - #24804

Merged
MartinZikmund merged 9 commits into
masterfrom
dev/mazi/host-rename
Oct 6, 2026
Merged

MartinZikmund merged 9 commits into
masterfrom
dev/mazi/host-rename

Conversation

@MartinZikmund

@MartinZikmund MartinZikmund commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

GitHub Issue: closes unoplatform/uno-private#2395

Follows #24803 (package ids, merged).

PR Type:

🔄 Refactoring

What changed? 🚀

Finishes removing "Skia" from the runtime hosts. #24803 renamed the packages; this PR renames the projects, folders, assemblies, namespaces, JS interop names and public types. After it, every remaining "Skia" name refers to the SkiaSharp drawing backend (Uno.UI.Composition.Skia, SKCanvasElement, the skia feature, Svg/Lottie), which is accurate.

Before After
src/Uno.UI.Runtime.Skia[.<Platform>] projects, assemblies, namespaces src/Uno.UI.Runtime[.<Platform>]
Uno.UI.Runtime.Skia.WebAssembly.Browser Uno.UI.Runtime.WebAssembly.Browser, matching the Uno.WinUI.Runtime.WebAssembly.Browser package id
Uno.WinUI.Runtime.Skia.* namespaces (X11, framebuffer, Android, AppleUIKit, Headless stragglers) unified into Uno.UI.Runtime.*
Uno.UI.MediaPlayer.Skia.{Win32,X11}, Uno.UI.WebView.Skia.X11 Uno.UI.MediaPlayer.{Win32,X11}, Uno.UI.WebView.X11
SkiaHost (an empty subclass of UnoPlatformHost) removed; hosts derive from UnoPlatformHost
MacSkiaHost MacOSHost, matching MacOSHostBuilder
IAndroidSkiaHostBuilder / IAppleUIKitSkiaHostBuilder IAndroidHostBuilder / IAppleUIKitHostBuilder, in line with Win32HostBuilder / X11HostBuilder
internal ISkiaApplicationHost IApplicationHost
JS globals globalThis.Uno.UI.Runtime.Skia.* and [JSExport] paths globalThis.Uno.UI.Runtime.*, renamed in lockstep in the TypeScript and the [JSImport]/[JSExport] strings

The Use<Platform>() entry points already live in Uno.UI.Hosting, so a templated app's host-builder chain compiles unchanged. Only code that names a host type, or uses a UseAndroid(b => …) / UseAppleUIKit(b => …) callback, needs a using or type-name update.

Beyond the find-and-replace

  • Two namespace spellings merged. Several hosts mixed Uno.UI.Runtime.Skia.X and Uno.WinUI.Runtime.Skia.X (X11 had 49 files in the latter). Both collapse into Uno.UI.Runtime.X. A collision scan over all 907 type declarations found no clashes in compiled code. The only hit is src/Uno.UI/Runtime/BrowserPointerInputSource.wasm.cs, a stale copy that no project compiles (Uno.UI excludes .wasm.cs, and the WASM host doesn't link it). Merging also produced duplicate and self-namespace usings in 7 files; those are removed.
  • Strings that locate types by name: Type.GetType("…, Uno.UI.MediaPlayer.Skia.X11") in the Win32/X11 hosts, the runtime tests' FindType/IsSkiaHostAssembly lookups, InternalsVisibleTo across Uno.UI, Uno.WinRT, Uno.Foundation, Uno.UI.Dispatching and Composition, DynamicDependency on Android, and the embedded WasmScripts resource names (via RootNamespace).
  • JS interop. The WASM host's 23 .ts files declare the Uno.UI.Runtime.Skia namespace, and Uno.UI.Composition.WebGpu's WebGpuInit.ts joins it. The globalThis.… strings in [JSImport], and the assemblyExports.Uno.UI.Runtime.Skia.* paths into [JSExport] types, move with them. These fail only at run time if missed, so each was renamed with a rule that also matches a preceding ..
  • The SamplesApp log filter became "Uno.UI.Runtime." with a trailing dot. Logging filters match by prefix, and "Uno.UI.Runtime" would also enable Debug for every Uno.UI.RuntimeTests.* category.
  • Build plumbing: _AdjustedOutputProjects, solution filters and .slnx, .github/labeler.yml, the macOS native build paths in CI, src/.gitignore, the macOS helper .sln, the MediaPlayer override targets, and the CommonOverridePackageId pins feat(build)!: Drop the Skia segment from the host package ids #24803 added (the assembly names derive the right package folder again).
  • PackageDiff: assembly-level ignores in the active 6.7 set for the renamed host assemblies, plus type ignores for the five public Uno.UI types that carried the host namespace (AriaMapper, AriaAttributes, PatternCapabilities, SemanticElementType, WebAssemblyAccessibility, all in the 6.7 baseline). Historical sets are untouched.

Not changed

  • .skia.cs, __SKIA__, __UNO_SKIA__, HAS_UNO_SKIA: out of scope per the issue (dead-#if cleanup, and a separate issue for the consumer symbol).
  • MSBuild properties such as UnoIsSkiaHeadlessHead / UnoIsSkiaLinuxFramebufferHead, and internal types like AndroidSkiaXamlRootHost: no consumer-facing effect.
  • The historical Gtk ids in UnoMissingAssemblyAnalyzer, the historical migration guides, and the frozen PackageDiff sets: they record what shipped under those names.
  • No type forwarders or [Obsolete] aliases: 7.0 is a clean break, like the Uno.UI.Toolkit → Uno.UI.Extras rename.

Downstream

A metadata scan of the first-party binaries in the NuGet cache found no references to the host assemblies from Uno.Toolkit.WinUI, Uno.Toolkit.Skia.WinUI, Uno.Extensions.Hosting.WinUI or the in-app Uno.UI.HotDesign libraries. HotDesign's hits are all inside its self-contained tools/ copy of Uno. So, unlike the Uno → Uno.WinRT assembly rename, this one shouldn't break those binaries. Uno.Extensions.Maui.WinUI.Runtime.Skia (Maui embedding) wasn't in the cache and should be checked. uno.templates, uno.check and the external docs are tracked in unoplatform/uno-private#2148.

PR Checklist ✅

  • 🧪 Added Runtime tests, UI tests, or a manual test sample (for bug fixes / features, if applicable)
    • No new tests. The runtime tests that locate host types by name (Given_Win32UiaBridge, Given_Win32Accessibility, RuntimeTestsPlatformHelper) cover the string lookups; see Validation.
  • 📚 Docs have been added/updated following the documentation template (for bug fixes / features)
    • New Runtime host renames section and checklist entry in migrating-to-uno-7.md; feature and contributor docs point at the new names.
  • 🖼️ Validated PR Screenshots Compare Test Run results.
  • ❗ Contains NO breaking changes
  • 👀 Reviewed 2 other open pull requests (optional but appreciated!)

Breaking change (7.0): host assembly, namespace and public type names change as tabulated above; see Runtime host renames in the migration guide.

Validation

Check Result
Compile: Uno.UI.Runtime.Android (net10.0-android) ✅
Compile: Uno.UI.Runtime.AppleUIKit (net10.0-ios) ✅
Compile: Uno.UI.Runtime.WebAssembly.Browser (net10.0, incl. TypeScript) ✅; the emitted Uno.Runtime.Wasm.js declares UI.Runtime and its only remaining "Skia" mentions are comments about the Skia backend
Compile: Uno.UI.Runtime.Headless (net10.0) ✅
Compile: SamplesApp desktop head (net10.0-desktop): Uno.UI, WinRT, Uno.UI.Runtime{,.Win32,.Win32.Support,.X11,.MacOS,.Linux.FrameBuffer}, Uno.UI.MediaPlayer.{Win32,X11}, Uno.UI.WebView.X11, runtime tests ✅, no CS0105 duplicate-using warnings
Compile: the mechanical-rename commit on its own (Uno.UI.Runtime.MacOS, Uno.UI.Runtime.Win32) ✅; the type-rename commit was split off afterwards and the final tree is byte-identical to the validated one
Runtime: SamplesApp desktop (Win32 host), Given_Win32UiaBridge, Given_Win32Accessibility, Given_MediaPlayerElement ✅ 23 passed, 0 failed, 1 skipped (pre-existing skip). Exercises the FindType("Uno.UI.Runtime.Win32.…") lookups and the Win32 host loading Uno.UI.MediaPlayer.Win32 through its renamed Type.GetType string
Runtime: SamplesApp WASM (net10.0-browserwasm, Release publish, Playwright/Chromium), Given_BrowserPointerInputSource, Given_BrowserKeyboardInputSource, Given_AriaMapper, Given_AccessibleButton, Given_AccessibleCheckBox ✅ 57 passed, 0 failed. Exercises the renamed globalThis.Uno.UI.Runtime.* [JSImport]s, the getAssemblyExports("Uno.UI.Runtime.WebAssembly.Browser").Uno.UI.Runtime.* [JSExport] paths and the Type.GetType(…, Uno.UI.Runtime.WebAssembly.Browser) lookups. Console has no interop errors from the hosts; the one error (globalThis.SampleRunner.init) is the pre-existing native-WASM-era UI-test bridge and is unrelated
Structural: remaining Runtime.Skia / MediaPlayer.Skia / WebView.Skia references only historical records (frozen PackageDiff sets, pre-7.0 migration guides, the analyzer's Gtk ids), the PackageDiff base ids, a 6.x type name in the migration guide, and the external Uno.Extensions.Maui.WinUI.Runtime.Skia
Structural: type collisions after the namespace merge (907 declarations scanned) none in compiled code

Local builds use -p:UnoTargetFrameworkOverride=net10.0*: master targets .NET 11 and no .NET 11 SDK is installed here. Left to CI: the net11 build, the Android/iOS runtime-test legs, the full WASM leg, PackageDiff, and template tests.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CrFdqbK73JzHpqJ8AGQTSv

@MartinZikmund MartinZikmund self-assigned this Sep 29, 2026
@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/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform area/solution-templates Categorizes an issue or PR as relevant to the solution template area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/build Categorizes an issue or PR as relevant to build infrastructure area/automation Categorizes an issue or PR as relevant to project automation kind/documentation area/sdk Categorizes an issue or PR as relevant to the Uno.Sdk platform/x11 🐧 Categorizes an issue or PR as relevant to X11 labels Sep 29, 2026
@MartinZikmund
MartinZikmund force-pushed the dev/mazi/host-rename branch 2 times, most recently from e22dad8 to 70cd4c5 Compare September 29, 2026 11:43
@MartinZikmund
MartinZikmund changed the base branch from master to dev/mazi/host-package-ids September 29, 2026 15:27
Copilot AI balanced review requested due to automatic review settings October 1, 2026 13:39
@github-actions github-actions Bot added the area/code-generation Categorizes an issue or PR as relevant to code generation label Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 3m 18s —— View job


Review complete

  • Gather context (diff vs origin/dev/mazi/host-package-ids, read AGENTS.md rules)
  • Review mechanical rename correctness (namespaces, assemblies, JS interop)
  • Review string-based lookups (Type.GetType, FindType, InternalsVisibleTo, DynamicDependency)
  • Review build plumbing changes (PackageDiffIgnore, slnf, labeler.yml)
  • Review docs changes
  • Post inline comments for findings
  • Post summary

Verdict: ship 👍

No issues found — 0 inline comments posted.

What I checked

This is a 625-file mechanical rename (+1151/-1146), so I focused on the categories most likely to hide a silent runtime break rather than re-reading every renamed file:

  • JS interop (.ts files, [JSImport]/[JSExport] strings, getAssemblyExports(...) paths) — all consistently moved from Uno.UI.Runtime.Skia/Uno.UI.Runtime.Skia.WebAssembly.Browser to Uno.UI.Runtime/Uno.UI.Runtime.BrowserWasm in lockstep with the C# side.
  • Type.GetType / FindType string lookups (Win32/X11 media player extensions, RuntimeTestsPlatformHelper.IsSkiaHostAssembly, Given_Win32UiaBridge, Given_BrowserPointerInputSource, etc.) — all updated to the new assembly/type names.
  • InternalsVisibleTo across Uno.UI, Uno.WinRT, Uno.Foundation, Uno.UI.Dispatching, Composition — every old-named entry was renamed 1:1, no leftover Uno.UI.Runtime.Skia.*/Uno.UI.MediaPlayer.Skia.*/Uno.UI.WebView.Skia.* references anywhere in src/.
  • PackageDiffIgnore.xml — the new entries land correctly under the active 6.7 IgnoreSet (assemblies + the 5 public Uno.UI types that carried the host namespace). The stale Uno.UI.MediaPlayer.Skia.X11/Win32 references under the baseVersion="6.4" set are intentionally untouched (per the file's own note, generatepkgdiff consults only the IgnoreSet matching the active base, non-cumulatively, so this historical set is inert — not a missed rename).
  • Namespace-merge collision risk — spot-checked a using Uno.UI.Runtime.X11; that looked like a possible self-referencing/duplicate using in X11HostBuilder.cs; its namespace is actually Uno.UI.Hosting, so the using is legitimate, not a CS0105 risk.
  • Host-builder call sites in SamplesApp (Android Main.Android.cs, iOS SceneDelegate.iOS.cs, Desktop Program.cs) and the IAndroidHostBuilder/IAppleUIKitHostBuilder renames — all call sites and usings track the new names.
  • Repo-wide grep for leftover Uno.UI.Runtime.Skia.* / Uno.WinUI.Runtime.Skia.* / Uno.UI.MediaPlayer.Skia.* / Uno.UI.WebView.Skia.* in compiled code (.cs/.csproj/.props/.targets) turned up only expected historical references (pre-7.0 Uno.WinUI.Runtime.Skia.* package ids in build/Uno.UI.Build.csproj's package-diff staging, uno.winui.runtime-replace.targets' UNOB0025 message, and doc/articles/uno-build-error-codes.md — all correctly describing the old shipped package id, not a missed rename) plus a stale comment in Given_RuntimeReplaceTargets.cs about a 6.x name, which the PR description already calls out.

Cross-cutting notes

  • No SOLID/DependencyProperty/async/cancellation/event concerns apply — this PR introduces no new logic, only renames.
  • Couldn't execute a build or the runtime-test suite in this sandbox; relying on code-review/static analysis plus the PR's own documented compile/runtime validation matrix (which looks thorough: per-host compiles, SamplesApp desktop + WASM Playwright runs covering the renamed [JSImport]/[JSExport] paths and Type.GetType lookups).
    (branch)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Two logging examples unintentionally enable unrelated runtime-test categories and should use the scoped prefix.

Review effort: Balanced
Findings: 2 Low severity

Open (2)
What changed in this PR

Removes obsolete “Skia” naming from runtime-host assemblies, namespaces, APIs, interop paths, and build infrastructure.

Changes:

  • Renames shared and platform runtime hosts and public host APIs.
  • Updates WASM interop, package/build plumbing, tests, samples, and add-ins.
  • Documents the Uno 7 migration.

Findings: 2 documentation issues and 1 spelling issue.

File(s) Description
src/​Uno.UI.Runtime/​** Renames shared runtime and Vulkan namespaces.
src/​Uno.UI.Runtime.{Win32,X11,MacOS,Linux.FrameBuffer,Headless}/​** Renames desktop host assemblies, namespaces, and build assets.
src/​Uno.UI.Runtime.{Android,AppleUIKit}/​** Renames mobile hosts and builder APIs.
src/​Uno.UI.Runtime.BrowserWasm/​** Renames WASM assembly, interop paths, and TypeScript globals.
src/​Uno.UI/​** Updates host contracts, accessibility APIs, and WASM imports.
src/​Uno.WinRT/​** Updates launcher namespaces and host visibility.
src/​Uno.UI.RuntimeTests/​** Updates runtime type and namespace lookups.
src/​AddIns/​** Renames MediaPlayer and WebView host add-ins.
src/​SamplesApp/​**, src/​SolutionTemplate/​** Updates platform-host consumers.
build/​**, src/​*.sln*, .github/​** Updates packaging, solutions, CI, and repository plumbing.
doc/​articles/​** Documents renamed APIs and logging configuration.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The extensive cross-platform assembly and runtime-interop rename requires the remaining CI validation before approval.

Review effort: Balanced
Findings: None

Resolved since last review (2)

Base automatically changed from dev/mazi/host-package-ids to master October 5, 2026 16:55
@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 2m 41s —— View job


Review complete

  • Gather context (diff vs origin/master, prior review history, AGENTS.md rules)
  • Check status of previously-reported findings (stale Given_BitmapSource.cs JS reference, PackageDiff macOS entry)
  • Review new/changed content since last review round
  • Review mechanical rename correctness, string-based lookups, build plumbing, docs
  • Post inline comments for findings
  • Post summary

Verdict: fix-first 🟡

HEAD is unchanged since the prior review round (a3264c54, same tree as previously reviewed) — no new commits landed. Both previously-reported issues are still open; 1 inline comment posted this round (the other can't be inline-commented, see below).

Findings (1 inline comment posted)

  • build/PackageDiffIgnore.xml:3687 — the assembly-ignore block renames 7 of the 8 renamed host assemblies (Uno.UI.Runtime.Skia{,.Android,.AppleUIKit,.Linux.FrameBuffer,.WebAssembly.Browser,.Win32,.Win32.Support,.X11} → Uno.UI.Runtime.*) but is missing Uno.UI.Runtime.Skia.MacOS, even though src/Uno.UI.Runtime.MacOS/Uno.UI.Runtime.MacOS.csproj confirms that host was renamed too and build/Uno.UI.Build.csproj:271 diffs the macOS package against its old assembly identity. PackageDiff will report the whole macOS assembly as removed without this entry. This file is part of the PR diff, so the finding is posted as a suggested inline fix.

Outstanding finding (not inline-commentable — file isn't touched by this PR's diff)

  • src/Uno.UI.RuntimeTests/Microsoft/UI/Xaml/Media/Imaging/Given_BitmapSource.cs:573 — DecodeInBrowser still embeds Uno.UI.Runtime.Skia.ImageLoader.loadFromArray(...), but src/Uno.UI.Runtime.BrowserWasm/ts/Runtime/ImageLoader.ts was renamed from namespace Uno.UI.Runtime.Skia to namespace Uno.UI.Runtime by this PR. The WASM-gated test calling this ([PlatformCondition(ConditionMode.Include, RuntimeTestPlatforms.SkiaWasm)]) will throw Uno.UI.Runtime.Skia is undefined at runtime until the string is updated to Uno.UI.Runtime.ImageLoader.loadFromArray. GitHub rejects an inline comment here because the line isn't part of this PR's diff — this has now been flagged across three prior review rounds and a Copilot review without being addressed.

Fix both →

What else was re-checked (no issues)

  • Diff-wide grep for new event Action/event Action<T>, .Result/.GetAwaiter().GetResult(), and async void in *.cs changes: none introduced.
  • Spot-checked non-1:1-line renames (ExtensionsRegistrar.cs, AndroidGLGraphicsContext.cs under Uno.UI.Runtime.Android) against their origin/master originals — the only deltas are the namespace update and removal of the now-self-referencing using Uno.WinUI.Runtime.Skia.Android;, consistent with the PR's described "duplicate/self-namespace using cleanup in 7 files."
  • _diffPackage entries in build/Uno.UI.Build.csproj (lines 264–283): all 8 hosts, including MacOS, correctly diff against their old published package identities — this part is fine, only the PackageDiffIgnore.xml assembly-ignore block is missing the MacOS entry.
  • No XAML files touched, no new DependencyProperty registrations, no async/cancellation changes — this remains a pure mechanical rename.

Cross-cutting notes

Could not execute a build or the runtime-test suite in this sandbox. Both findings above are static/code-review assessments, not runtime-validated here; the PackageDiff one would surface in the PackageDiff CI leg, the Given_BitmapSource one only on the WASM runtime-test leg (SkiaWasm-gated test), which is why neither has failed CI yet if those legs haven't both run against this exact HEAD.
· branch

Comment thread build/PackageDiffIgnore.xml Resolved
@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-24804/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-24804/docs/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 237495 found UI Test snapshots differences: skia-linux-screenshots: 120, skia-windows-screenshots: 164

Details
  • skia-linux-screenshots: 120 changed over 2458

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • CompositionEffectBrush.png-dark
    • CompositionEffectBrush.png
    • CompositionNineGridBrush_Source_Changes.png-dark
    • CompositionNineGridBrush_Source_Changes.png
    • AutomationProperties_AutomationId.png-dark
    • ClipboardTests.png-dark
    • AutomationProperties_AutomationId.png
    • CalendarView_Theming.png-dark
    • DisplayInformation.png-dark
    • Focus_FocusVisual_Properties.png-dark
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • ImageSourceUrlMsAppDataScheme.png-dark
    • ImageSourceUrlMsAppDataScheme.png
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • ImageBrush_Stretch.png-dark
  • skia-windows-screenshots: 164 changed over 2458

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • CalendarView_Theming.png-dark
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • Buttons.png
    • ClipboardTests.png-dark
    • Grid_left_column_Auto.png-dark
    • Grid_left_column_Auto.png
    • Grid_Margin_And_Padding.png-dark
    • Grid_Margin_And_Padding.png
    • Grid_middle_col_auto__bottom_row_auto.png-dark
    • Grid_middle_col_auto__bottom_row_auto.png
    • Grid_MinWidth_MaxWidth.png-dark
    • Grid_MinWidth_MaxWidth.png
    • Examples.png
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • Grid_Multi_Column_Span.png-dark

@unodevops

Copy link
Copy Markdown
Contributor

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

MartinZikmund and others added 9 commits October 6, 2026 09:02
The runtime hosts no longer depend on SkiaSharp, so `Uno.UI.Runtime.Skia.*`
named a backend they do not select. Rename the host and host add-in
projects, folders, assemblies and namespaces to `Uno.UI.Runtime.*`,
`Uno.UI.MediaPlayer.*` and `Uno.UI.WebView.*`, folding the stray
`Uno.WinUI.Runtime.Skia.*` namespaces into the same names. The WASM JS
interop namespace moves in lockstep with the managed names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrFdqbK73JzHpqJ8AGQTSv
Remove the empty `SkiaHost` layer so the hosts derive from
`UnoPlatformHost` directly, and rename `MacSkiaHost` to `MacOSHost`,
`IAndroidSkiaHostBuilder` to `IAndroidHostBuilder`,
`IAppleUIKitSkiaHostBuilder` to `IAppleUIKitHostBuilder` and the internal
`ISkiaApplicationHost` to `IApplicationHost`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrFdqbK73JzHpqJ8AGQTSv
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrFdqbK73JzHpqJ8AGQTSv
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrFdqbK73JzHpqJ8AGQTSv
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7PsEU6gSpLZXrYuK8WWpt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DS3vx6w19rXvxYD4Q3qTCU
Copilot AI balanced review requested due to automatic review settings October 6, 2026 07:04
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 21s —— View job


Status check: both open review findings are already fixed at HEAD

You gave no specific request, so I checked the two findings still open from the last review rounds against the current branch (e2df1c10). I made no changes and pushed nothing.

  • Given_BitmapSource.cs:573: the JS string now calls Uno.UI.Runtime.ImageLoader.loadFromArray, which matches the renamed TypeScript namespace. This landed in 78a43e27.
  • build/PackageDiffIgnore.xml: the assembly-ignore block now has the Uno.UI.Runtime.Skia.MacOS → Uno.UI.Runtime.MacOS entry (line 3686). This landed in 0afbed9f.

The "fix-first" verdict from 2026-10-05 16:56Z was based on the earlier HEAD (a3264c54), so it no longer applies.

I did not build or run anything, so this is a code-review check only.

Still open:

  • Failed Azure DevOps build 237495 (Uno.UI - CI, 2026-10-05). It also reported 120 Linux and 164 Windows screenshot differences. It was built before these fixes landed, so the failure may no longer reproduce. Re-run CI on the current HEAD. If the screenshot differences remain, check whether they come from this rename, since a pure rename shouldn't change rendering. If you want me to dig into the failed build log, ask and I'll do it.
  • Host folder name. The checkout has src/Uno.UI.Runtime.WebAssembly.Browser, while the PR description and the earlier reviews refer to Uno.UI.Runtime.BrowserWasm. The commit e2df1c10 ("Expect the WebAssembly.Browser host folder") suggests this was deliberate. Please update the PR description table and validation rows to match.
    · branch

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The breaking cross-platform assembly and interop rename spans hundreds of files and still depends on CI-only target validation.

Review effort: Balanced
Findings: None

Resolved since last review (2)

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-24804/docs/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-24804/wasm-skia-net9/index.html

@nventive-devops

Copy link
Copy Markdown
Contributor

The build 237592 found UI Test snapshots differences: skia-linux-screenshots: 130, skia-windows-screenshots: 162

Details
  • skia-linux-screenshots: 130 changed over 2458

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • CalendarView_Theming.png-dark
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • Buttons.png
    • CompositionEffectBrush.png-dark
    • CompositionEffectBrush.png
    • CompositionNineGridBrush_Source_Changes.png-dark
    • CompositionNineGridBrush_Source_Changes.png
    • AutomationProperties_AutomationId.png-dark
    • AutomationProperties_AutomationId.png
    • ClipboardTests.png-dark
    • CompositionPath.png-dark
    • CompositionPath.png
    • DisplayInformation.png-dark
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • Focus_FocusVisual_Properties.png-dark
  • skia-windows-screenshots: 162 changed over 2458

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • Buttons.png-dark
    • Buttons.png
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Grid_InsideStackPanel_InsideButton.png-dark
    • Grid_InsideStackPanel_InsideButton.png
    • Grid_in_Canvas.png-dark
    • Grid_in_Canvas.png
    • Grid_in_GridClipping.png-dark
    • Grid_in_GridClipping.png
    • Grid_in_StackPanel.png-dark
    • Grid_in_StackPanel.png

@mergify

mergify Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

This pull request does not currently match the merge queue conditions, so it cannot be queued from here. The box comes back if it matches again.

@MartinZikmund
MartinZikmund merged commit 849e469 into master Oct 6, 2026
65 checks passed
@MartinZikmund
MartinZikmund deleted the dev/mazi/host-rename branch October 6, 2026 09:34
@MemerGamer MemerGamer mentioned this pull request Oct 13, 2026
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/sdk Categorizes an issue or PR as relevant to the Uno.Sdk area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/solution-templates Categorizes an issue or PR as relevant to the solution template 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/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.

5 participants