| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Sorry, something went wrong.
|
Claude finished @MartinZikmund's task in 7m 1s —— View job Code Review
SummaryOverall the rename is mechanically thorough — the compiler-invisible literals (WASM getAssemblyExports, linker descriptor, InternalsVisibleTo, RuntimeAssetsSelectorTask, sync generator expectedRefs, nuspec file names) are all updated, and the duplicate-identity trap in the generator tests is cleanly resolved by filtering out the pre-7.0 Uno.dll reference before adding the local Uno.WinRT assemblies. 1 issue, 1 nit — both in build/PackageDiffIgnore.xml and a doc comment respectively. Issues by severity:
Key cross-cutting observations (no line anchor):
|
Sorry, something went wrong.
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-24104/wasm-skia-net9/index.html |
Sorry, something went wrong.
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-24104/docs/index.html |
Sorry, something went wrong.
|
The build 228353 found UI Test snapshots differences: skia-linux-screenshots: 73, skia-windows-screenshots: 125 Details
|
Sorry, something went wrong.
|
Claude finished @MartinZikmund's task in 5m 6s —— View job Code Review
SummaryThe rename is mechanically thorough. All compiler-invisible string literals are correctly updated:
Issues by severity:
Cross-cutting observations (no line anchor):
Verdict: fix-first — the IgnoreSet revert is a one-liner and should be done before merge to keep the diff-tool baselines correct. |
Sorry, something went wrong.
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-24104/wasm-skia-net9/index.html |
Sorry, something went wrong.
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-24104/docs/index.html |
Sorry, something went wrong.
|
The build 228929 found UI Test snapshots differences: skia-linux-screenshots: 73, skia-windows-screenshots: 174 Details
|
Sorry, something went wrong.
|
Claude finished @MartinZikmund's task in 3m 40s —— View job Code Review
SummaryThis push adds specs/058-winrt-assembly-rename/spec.md (a new documentation-only commit). The two unresolved findings from the Aug 18 and Aug 20 reviews are still present — nothing in this push addressed them. Issues by severity:
Medium — build/PackageDiffIgnore.xml The rename commit (021a95f1) changed 6 occurrences of Uno.UWP.Resource → Uno.WinRT.Resource inside the historical 4.4.20 (3 occurrences, lines 228/238/248) and 4.5 (3 occurrences, lines 351/361/371) IgnoreSets. At those historical baselines the assembly was named Uno.UWP, so the diff tool compares against Uno.UWP.Resource. Changing these suppresses the wrong type name and will re-surface the Uno.UWP.Resource removal warning while silencing a name (Uno.WinRT.Resource) that was never in those packages. The spec correctly describes the fix as "a single assembly-level entry under 6.6" — the historical entries should be reverted to Uno.UWP.Resource. The 6.6 <Assemblies> entry (<Member fullName="Uno" reason="Assembly renamed Uno -> Uno.WinRT (7.0 assembly renames)" />) is correct and untouched. Nit — src/Uno.WinRT/ApplicationModel/Core/CoreApplication.cs:103 "native UI elements in non Uno.WinRT" → "native UI elements outside Uno.WinRT" New content (no issues): specs/058-winrt-assembly-rename/spec.md is accurate — its description of the merge gate, the string-literal checklist, and the outstanding CI-only validation items (net11-only generator tests, WASM app startup, template Debug builds, Android ResgenNamespace) match the actual code state. The spec at line 39 says "a single assembly-level entry" which describes the intended state (after the IgnoreSet revert, not the current state). Verdict: fix-first — revert the six Uno.UWP.Resource → Uno.WinRT.Resource changes in the 4.4.20 and 4.5 IgnoreSets before merge. |
Sorry, something went wrong.
Uno.dll becomes Uno.WinRT.dll, so folder, csprojs, assembly and package finally agree. Flips every identity literal the compiler never checks: the WASM getAssemblyExports lookup, the linker descriptor, InternalsVisibleTo, the reference-assembly loader and the sync generator's expected refs. DO NOT MERGE until Uno.UI.HotDesign ships a 7.0 build: the Uno.Sdk references it implicitly in every Debug app build, and a 6.x binary cannot resolve the renamed assembly. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011nVqNSZBu7E3FpHxWyPdtk
Records the merge gate, the string literals no compiler checks, and which validation is still owed to CI. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011nVqNSZBu7E3FpHxWyPdtk
The 4.4.20 and 4.5 IgnoreSets record the type names as they existed in those baselines, where the Android resgen namespace was Uno.UWP. Renaming them to Uno.WinRT unsuppressed the real Uno.UWP.Resource removal while silencing a name that was never in those packages. The 6.6 assembly-level entry already covers the rename for the current diff baseline. Also reworded the CoreApplication.RequestedTheme doc comment to read "outside Uno.WinRT", mirroring the original "outside Uno.dll" phrasing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PbK9hM2hwovjr4GMj5sAFa
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
Sorry, something went wrong.
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-24104/wasm-skia-net9/index.html |
Sorry, something went wrong.
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-24104/docs/index.html |
Sorry, something went wrong.
|
The build 229700 found UI Test snapshots differences: skia-linux-screenshots: 73, skia-windows-screenshots: 123 Details
|
Sorry, something went wrong.
The merge gate on this change was circular: Uno.UI.HotDesign cannot be compiled against Uno.WinRT.dll until a package containing it exists, and no such package ships until this merges. Waiting for the dependent to move first waits for something that cannot happen. Disables the three Dotnet_Template_Tests_* jobs (12 matrix legs) so the rename can land and produce the 7.0 packages HotDesign needs. Every disabled item carries the greppable marker "TODO Uno (HotDesign 7.0)"; the restore checklist is in the spec. The DevServer CLI jobs in the same file stay enabled -- they exercise the host rather than compiling app code against the local build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PbK9hM2hwovjr4GMj5sAFa
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
Sorry, something went wrong.
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
Sorry, something went wrong.
There was a problem hiding this comment.
This PR completes the Uno.dll → Uno.WinRT.dll assembly-identity rename for the WinRT layer and updates the repo’s build, packaging, runtime string lookups, and test infrastructure to reference the new assembly name.
Changes:
Process note: the PR description’s issue reference (closes unoplatform/uno-private#2137) is not a fully-qualified public GitHub issue URL; it should be updated to a full https://github.com/.../issues/... link (or replaced with the repo’s “no related issue” note if this is internal maintenance).
Copilot reviewed 31 out of 31 changed files in this pull request and generated 1 comment.
Show a summary per file| File | Description |
|---|---|
| src/Uno.WinRT/Uno.WinRT.Wasm.csproj | Changes AssemblyName to Uno.WinRT for WASM output. |
| src/Uno.WinRT/Uno.WinRT.Skia.csproj | Changes AssemblyName to Uno.WinRT for Skia output. |
| src/Uno.WinRT/Uno.WinRT.Reference.csproj | Changes AssemblyName to Uno.WinRT for reference output. |
| src/Uno.WinRT/Uno.WinRT.netcoremobile.csproj | Changes AssemblyName to Uno.WinRT and updates AndroidResgenNamespace. |
| src/Uno.WinRT/ts/Windows/ApplicationModel/Core/CoreApplication.ts | Updates WASM runtime export lookup to getAssemblyExports("Uno.WinRT"). |
| src/Uno.WinRT/Helpers/DispatcherTimerProxy.cs | Updates comment to reference Uno.WinRT.dll. |
| src/Uno.WinRT/ApplicationModel/DataTransfer/DragDrop/Core/CoreDragDropManager.cs | Updates comment to reflect new assembly identity. |
| src/Uno.WinRT/ApplicationModel/Core/CoreApplication.cs | Updates comment to reflect new assembly identity. |
| src/Uno.WinAppSDKSyncGenerator/Generator.cs | Updates expected compilation reference name from Uno to Uno.WinRT. |
| src/Uno.UI/LinkerDefinition.Wasm.xml | Updates linker descriptor to refer to assembly Uno.WinRT. |
| src/Uno.UI/Extensions/ViewHelper.cs | Updates TODO comments referencing the old Uno.dll name. |
| src/Uno.UI.XamlHost/Properties/AssemblyInfo.cs | Updates InternalsVisibleTo target from Uno to Uno.WinRT. |
| src/Uno.UI.RuntimeTests/Tests/Windows_Graphics/Given_DisplayInformation_WindowIdMap.cs | Updates test comment for the new assembly name on Android loads. |
| src/Uno.UI.RuntimeTests/Tests/AssemblyLoadContext/TestAssemblyLoadContext.cs | Removes special-casing for Uno exact assembly name (now expects Uno.*). |
| src/Uno.UI.FluentTheme/AssemblyInfo.cs | Updates InternalsVisibleTo target to Uno.WinRT. |
| src/Uno.UI.Dispatching/AssemblyInfo.cs | Updates InternalsVisibleTo target to Uno.WinRT. |
| src/Uno.Foundation/Uno.Core.Extensions/AssemblyInfo.cs | Updates InternalsVisibleTo target to Uno.WinRT. |
| src/Uno.Foundation/AssemblyInfo.cs | Updates InternalsVisibleTo target to Uno.WinRT. |
| src/Uno.Foundation.Runtime.WebAssembly/AssemblyInfo.cs | Updates InternalsVisibleTo target to Uno.WinRT. |
| src/Uno.Foundation.Logging/AssemblyInfo.cs | Updates InternalsVisibleTo target to Uno.WinRT. |
| src/SourceGenerators/Uno.UI.Tasks/RuntimeAssetsSelector/RuntimeAssetsSelectorTask.cs | Updates WinRT assembly identification to uno.winrt. |
| src/SourceGenerators/Uno.UI.SourceGenerators.Tests/XamlCodeGeneratorTests/Verifiers/CSGenerator.cs | Removes Uno.dll metadata refs from pre-7.0 packages to avoid duplicate Windows.* types. |
| src/SourceGenerators/Uno.UI.SourceGenerators.Tests/UnoAssemblyHelper.cs | Updates expected WinRT assembly filename to Uno.WinRT.dll. |
| src/SamplesApp/SamplesApp.Skia.Generic/SamplesApp.Skia.Generic.csproj | Updates hard-coded WinRT output file paths to Uno.WinRT.dll. |
| src/AddIns/Uno.UI.Foldable/ViewHelper.cs | Updates TODO comment referencing Uno.dll. |
| specs/058-winrt-assembly-rename/spec.md | Adds a spec documenting sequencing, risks, and the restore checklist. |
| build/test-scripts/run-netcore-mobile-template-tests.ps1 | Adds UnoDisableHotDesign workaround and narrows feature set temporarily. |
| build/test-scripts/run-net7-template-linux.ps1 | Adds UnoDisableHotDesign workaround temporarily. |
| build/PackageDiffIgnore.xml | Adds assembly-level ignore entry for the Uno → Uno.WinRT rename and updates related reasons. |
| build/nuget/Uno.WinRT.nuspec | Packs Uno.WinRT.dll/.pdb instead of Uno.dll/.pdb across TFMs. |
| build/ci/tests/.azure-devops-tests-templates.yml | Temporarily disables template test jobs pending downstream rebuilds. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Sorry, something went wrong.
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-24104/wasm-skia-net9/index.html |
Sorry, something went wrong.
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-24104/docs/index.html |
Sorry, something went wrong.
|
The build 229730 found UI Test snapshots differences: skia-linux-screenshots: 73, skia-windows-screenshots: 174 Details
|
Sorry, something went wrong.
RealAppLaunchIntegrationTests scaffolds MyApp with `dotnet new unoapp` from the published Uno.Templates, so the app output carries the pre-7.0 Uno.dll, then overwrites Uno.UI.RemoteControl.dll with the local build, which now references Uno.WinRT. The app builds and launches, but the RemoteControl client cannot resolve Uno.WinRT and never connects, so the app-launch/connected telemetry event is never emitted. Deterministic, not flaky: it failed on every CI run of this branch since 2026-08-20 and passes on feature/breakingchanges. Copying Uno.WinRT.dll into the app output only moves the failure, since the package's Uno.UI.dll still binds Windows.* to Uno.dll. The harness has to scaffold against 7.0 packages, which is the same restore condition as the template tests. Also renames the restore marker to "TODO Uno (7.0 dependents)", which covers both this and the HotDesign-blocked template jobs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PbK9hM2hwovjr4GMj5sAFa
|
Claude finished @MartinZikmund's task in 2m 26s —— View job Code Review
SummaryBoth blocking findings from prior reviews are resolved in 06fbfd96:
1 new nit posted inline — the comment at RuntimeAssetsSelectorTask.cs:261 still says (Uno.UWP) while the code on the next line already uses "uno.winrt". This is cosmetic and does not block merge. Cross-cutting observations (no line anchor):
Verdict: ship — the rename is mechanically thorough, all previously blocking issues are resolved, and the one remaining nit is purely cosmetic. |
Sorry, something went wrong.
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-24104/wasm-skia-net9/index.html |
Sorry, something went wrong.
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-24104/docs/index.html |
Sorry, something went wrong.
|
The build 229784 found UI Test snapshots differences: skia-linux-screenshots: 73, skia-windows-screenshots: 177 Details
|
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
GitHub Issue: closes unoplatform/uno-private#2137
PR Type:
🔄 Refactoring (no functional changes, no api changes)
What changed? 🚀
Completes the rename begun in #24009, which moved the folder and csprojs to Uno.WinRT but deliberately left the assembly alone. This flips the remaining half:
Per the breaking-changes hard-remove policy there are no type-forwarders.
PackageDiffIgnore.xml carries a single assembly-level entry, since every type in the assembly reads as removed against the 6.6 baseline. Historical IgnoreSets are untouched.
Why this is a breaking change, and why it is still in 7.0
Uno.dll and Uno.WinRT.dll are different assembly identities. This is the asymmetry that matters:
Measured, not assumed — type references read out of the shipped Uno.Toolkit.WinUI 6.3.0-dev.6 binaries (net8.0):
Those 18 include Windows.UI.Color, Windows.UI.Text.FontWeight, Windows.System.VirtualKey and Windows.UI.Core.CoreDispatcher — types that appear throughout public signatures. The Uno.Sdk references Uno.UI.HotDesign implicitly in every Debug app build, and it transitively pulls Uno.Toolkit.WinUI and Uno.Themes.WinUI, so until those have 7.0 builds every template Debug build fails with CS0012.
That is an ordering problem, not a compatibility one. 7.0 breaks compatibility by design and the first-party ecosystem is being rebuilt for it regardless — so the rename is sequenced inside the 7.0 preview line rather than deferred to a later major. Deferring to 8.0 would buy a second ecosystem-wide rebuild for a change that is purely cosmetic, which is strictly worse than paying for it inside a rebuild that is already funded.
Breaking the deadlock
The original plan was to merge this only after Uno.UI.HotDesign shipped a 7.0 build. That ordering cannot happen: HotDesign cannot be compiled against Uno.WinRT.dll until a package containing Uno.WinRT.dll exists, and no such package is produced until this merges. Waiting for the dependent to move first is waiting for something that cannot happen.
So the sequence is inverted, with the template test jobs temporarily off:
What is disabled
Every item carries the greppable marker TODO Uno (7.0 dependents) — git grep for it returns exactly the restore checklist:
Dotnet_Tests_Validate_DevServerCli and …_Compat are deliberately left running — they restore and exercise the DevServer host rather than compiling app code against the local build. Both, and the addin_version_alignment stage, are green on build 229730.
The one unit test that did break
CI found it, not inference. Exactly one test out of 6201 fails, on every run of this branch (2026-08-20 → 08-24), and passes on feature/breakingchanges — deterministic, not flaky:
It is the same cross-major mixing hazard, injected by the test harness itself:
The app builds clean (0 errors) and launches — app-launch/launched is emitted — but the client never starts, so app-launch/connected never arrives.
Copying Uno.WinRT.dll in alongside does not fix it: the package's Uno.UI.dll still binds every Windows.* type to Uno.dll, trading FileNotFoundException for TypeLoadException. The harness has to scaffold against 7.0 packages — the same restore condition as the template jobs — so the test is [Ignore]d under the same marker.
The cost, stated plainly
Between merge and step 3, CI does not verify that the repository can build its own templates, and a Debug build of a freshly created 7.0-preview app fails. That is a real coverage gap in a preview line, accepted deliberately because the alternative is a chain that never moves.
Reviewer attention: the literals no compiler checks
An assembly identity is referenced by string from places the build never type-checks. Each of these was a separate failure in the earlier attempt:
The duplicate-identity hazard, which fails silently
Uno.dll and Uno.WinRT.dll can both end up in one compilation and define every Windows.* type twice. Roslyn's Compilation.GetTypeByMetadataName returns null on ambiguity rather than erroring, which previously made the XAML generator silently drop literal and extended properties. It broke 8 source-generator tests that reference a pre-7.0 Uno.WinUI package on top of the local build; with identical identities the local assembly simply shadowed the package's. The same failure mode reaches real consumers mixing majors.
PR Checklist ✅
Validation
Local builds use -p:UnoTargetFrameworkOverride=net10.0 because feature/breakingchanges targets .NET 11 and no .NET 11 SDK is installed here.
Not validated locally — CI must cover:
🤖 Generated with Claude Code
https://claude.ai/code/session_011nVqNSZBu7E3FpHxWyPdtk