diff --git a/.github/workflows/build-samples-todoapp-uno.yml b/.github/workflows/build-samples-todoapp-uno.yml
index 54ea20dd..e8b1f1e9 100644
--- a/.github/workflows/build-samples-todoapp-uno.yml
+++ b/.github/workflows/build-samples-todoapp-uno.yml
@@ -1,14 +1,5 @@
name: Build Sample - TodoApp Uno
-# NOTE: This workflow is NOT currently wired into build-samples.yml. #506 fixed the NU1605
-# restore blocker that used to affect every head (see samples/todoapp/TodoApp.Uno/global.json),
-# so restore now succeeds everywhere. However, build now fails on every Skia-based head (android,
-# ios, maccatalyst, browserwasm, desktop) with UXAML0001/CS1061 (EventTriggerBehavior could not
-# be found) - see the `desktop` job below for details and
-# https://github.com/CommunityToolkit/Datasync/issues/506 for background. Re-add the
-# `todoapp-uno` job to build-samples.yml (and to all-samples-built's `needs`) once that build
-# failure is resolved and every head restores AND builds cleanly.
-
on:
workflow_call:
@@ -145,27 +136,6 @@ jobs:
--no-restore
desktop:
- # NOTE: this head (along with every other Skia-based head in this file - android,
- # ios-maccatalyst, browserwasm) currently fails to BUILD (not restore) with:
- # error UXAML0001: The type {using:Microsoft.Xaml.Interactions.Core}EventTriggerBehavior
- # could not be found
- # CommunityToolkit.WinUI.Behaviors 8.2.250402 resolves
- # Uno.Microsoft.Xaml.Behaviors.Interactivity.WinUI 3.0.0-dev.17.g7c09b9114d on Skia heads
- # (confirmed via project.assets.json for desktop and browserwasm), which appears to lack the
- # Microsoft.Xaml.Interactions.Core types used in Views/TodoListPage.xaml. The `windows` job
- # below is unaffected - it resolves the real Microsoft.Xaml.Behaviors.WinUI.Managed 3.0.0
- # package instead. This is a separate, pre-existing bug from the NU1903 Tmds.DBus finding
- # below and from the NU1605 restore blocker #506 originally hit (now fixed - see
- # samples/todoapp/TodoApp.Uno/global.json) - it was never surfaced before because restore
- # always failed first. Tracked as a #506 follow-up issue.
- #
- # Restore also emits a NU1903 warning for 'Tmds.DBus' 0.16.0 (GHSA-xrw6-gwf8-vvr9 /
- # CVE-2026-39959), floated transitively via Uno.WinUI.Runtime.Skia.X11. This is harmless as a
- # CI matter today (this repo does not configure NuGet audit to fail on warnings) but is not
- # yet resolved - Uno only switches Uno.WinUI.Runtime.Skia.X11 to the patched
- # Tmds.DBus.Protocol starting at Uno.WinUI 6.0.465, which requires a major-version bump of
- # Uno.Sdk. See https://github.com/CommunityToolkit/Datasync/issues/506 for background and the
- # tracked major-version-bump follow-up issue.
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
diff --git a/.github/workflows/build-samples.yml b/.github/workflows/build-samples.yml
index 3b19ca8c..1fb39ae0 100644
--- a/.github/workflows/build-samples.yml
+++ b/.github/workflows/build-samples.yml
@@ -37,20 +37,8 @@ jobs:
todoapp-maui:
uses: ./.github/workflows/build-samples-todoapp-maui.yml
- # NOTE: todoapp-uno (build-samples-todoapp-uno.yml) is intentionally NOT wired in here yet.
- # #506 fixed the NU1605 restore blocker that used to affect every head (bumped Uno.Sdk in
- # samples/todoapp/TodoApp.Uno/global.json from 5.4.5 to 5.6.54), so TodoApp.Uno.csproj now
- # restores cleanly. However, restoring cleanly surfaced a separate, pre-existing bug: on every
- # Skia-based head (android, ios, maccatalyst, browserwasm, desktop - confirmed for desktop and
- # browserwasm; android/ios/maccatalyst require workloads not available where this was
- # verified), CommunityToolkit.WinUI.Behaviors 8.2.250402 resolves
- # Uno.Microsoft.Xaml.Behaviors.Interactivity.WinUI 3.0.0-dev.17.g7c09b9114d instead of the real
- # Microsoft.Xaml.Behaviors.WinUI.Managed package (which the windows head still gets), and that
- # substitute is missing the Microsoft.Xaml.Interactions.Core types used in
- # Views/TodoListPage.xaml, so build fails with UXAML0001/CS1061 (EventTriggerBehavior could not
- # be found). This was never surfaced before because restore always failed first. See the
- # tracking issue for this build failure (filed as a #506 follow-up) - re-add this job once
- # that's resolved and every head restores AND builds cleanly.
+ todoapp-uno:
+ uses: ./.github/workflows/build-samples-todoapp-uno.yml
# Single aggregation point so branch protection only needs to require one check,
# regardless of how many sample workflows are added over time.
@@ -66,6 +54,7 @@ jobs:
- todoapp-avalonia
- todoapp-windows
- todoapp-maui
+ - todoapp-uno
runs-on: ubuntu-latest
steps:
- name: Check sample build results
diff --git a/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Android/Main.Android.cs b/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Android/Main.Android.cs
index 8fc5119a..fe602390 100644
--- a/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Android/Main.Android.cs
+++ b/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Android/Main.Android.cs
@@ -8,8 +8,6 @@
using Android.Runtime;
using Android.Views;
using Android.Widget;
-using Com.Nostra13.Universalimageloader.Core;
-using Microsoft.UI.Xaml.Media;
namespace TodoApp.Uno.Droid;
[global::Android.App.ApplicationAttribute(
@@ -25,19 +23,9 @@ public class Application : Microsoft.UI.Xaml.NativeApplication
public Application(IntPtr javaReference, JniHandleOwnership transfer)
: base(() => new App(), javaReference, transfer)
{
- ConfigureUniversalImageLoader();
- }
-
- private static void ConfigureUniversalImageLoader()
- {
- // Create global configuration and initialize ImageLoader with this config
- ImageLoaderConfiguration config = new ImageLoaderConfiguration
- .Builder(Context)
- .Build();
-
- ImageLoader.Instance.Init(config);
-
- ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync;
+ // Uno Platform 6.0 handles image loading entirely with the Skia Rendering mode, so the
+ // UniversalImageLoader configuration previously required here has been removed.
+ // See https://platform.uno/docs/articles/migrating-to-uno-6.html.
}
}
diff --git a/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Desktop/Program.cs b/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Desktop/Program.cs
index 648eb542..5d435dbb 100644
--- a/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Desktop/Program.cs
+++ b/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Platforms/Desktop/Program.cs
@@ -1,4 +1,4 @@
-using Uno.UI.Runtime.Skia;
+using Uno.UI.Hosting;
namespace TodoApp.Uno;
public class Program
@@ -6,12 +6,12 @@ public class Program
[STAThread]
public static void Main(string[] args)
{
- var host = SkiaHostBuilder.Create()
+ var host = UnoPlatformHostBuilder.Create()
.App(() => new App())
.UseX11()
.UseLinuxFrameBuffer()
.UseMacOS()
- .UseWindows()
+ .UseWin32()
.Build();
host.Run();
diff --git a/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Views/TodoListPage.xaml b/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Views/TodoListPage.xaml
index 807f4e94..6ca8c580 100644
--- a/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Views/TodoListPage.xaml
+++ b/samples/todoapp/TodoApp.Uno/TodoApp.Uno/Views/TodoListPage.xaml
@@ -9,7 +9,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewmodels="using:TodoApp.Uno.ViewModels"
xmlns:controls="using:Microsoft.UI.Xaml.Controls"
- xmlns:interactions="using:Microsoft.Xaml.Interactions.Core"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:uen="using:Uno.Extensions.Navigation.UI"
xmlns:utu="using:Uno.Toolkit.UI"
@@ -17,13 +16,6 @@
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
-
-
-
-
-
-
-
diff --git a/samples/todoapp/TodoApp.Uno/global.json b/samples/todoapp/TodoApp.Uno/global.json
index 7cef2161..a4fc6b1c 100644
--- a/samples/todoapp/TodoApp.Uno/global.json
+++ b/samples/todoapp/TodoApp.Uno/global.json
@@ -1,14 +1,18 @@
{
// To update the version of Uno please update the version of the Uno.Sdk here. See https://aka.platform.uno/upgrade-uno-packages for more information.
- // Bumped from 5.4.5 (-> Uno.WinUI 5.4.22) to 5.6.54 (-> Uno.WinUI 5.6.99) to resolve NU1605:
- // CommunityToolkit.WinUI.Behaviors 8.2.250402 floors Uno.WinUI at >= 5.5.87, which is higher
- // than what Uno.Sdk 5.4.5 resolves, causing a package-downgrade restore error on every head.
- // This does NOT resolve the separate NU1903 (Tmds.DBus 0.16.0) advisory on the desktop head -
- // Uno.WinUI.Runtime.Skia.X11 keeps floating vulnerable Tmds.DBus 0.16.0 through the entire
- // 5.x line and only switches to the patched Tmds.DBus.Protocol starting at Uno.WinUI 6.0.465.
- // See https://github.com/CommunityToolkit/Datasync/issues/506.
+ // Bumped from 5.6.54 (-> Uno.WinUI 5.6.99) to 6.5.36 (-> Uno.WinUI 6.5.237). See #524:
+ // this major-version bump resolves the NU1903 (Tmds.DBus 0.16.0, GHSA-xrw6-gwf8-vvr9) advisory
+ // on the desktop head for free - Uno.WinUI.Runtime.Skia.X11 switches to the patched
+ // Tmds.DBus.Protocol dependency starting at Uno.WinUI 6.0.465, and 6.5.237 resolves well above
+ // that floor. It also lifts the Uno.Wasm.Bootstrap net9.0+ TargetFramework guard blocking the
+ // browserwasm head (Uno.Sdk 6.x implicitly resolves Uno.Wasm.Bootstrap 10.0.96 instead of the
+ // 5.x line's 8.0.23). See https://platform.uno/docs/articles/migrating-to-uno-6.html for the
+ // accompanying manual code changes required across heads (Platforms/Desktop/Program.cs,
+ // Platforms/Android/Main.Android.cs).
+ // See https://github.com/CommunityToolkit/Datasync/issues/506 and
+ // https://github.com/CommunityToolkit/Datasync/issues/524.
"msbuild-sdks": {
- "Uno.Sdk": "5.6.54"
+ "Uno.Sdk": "6.5.36"
},
"sdk":{
"allowPrerelease": false