From 1d533200d5e6083ac1e78c1b48778e8abe9ae8ad Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 10 Oct 2024 11:01:59 -0400 Subject: [PATCH 001/205] chore: Adjust release branch --- build/Uno.UI.Build.csproj | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/build/Uno.UI.Build.csproj b/build/Uno.UI.Build.csproj index da6061f9ecc2..be051cb0dc48 100644 --- a/build/Uno.UI.Build.csproj +++ b/build/Uno.UI.Build.csproj @@ -358,40 +358,7 @@ - - Uno.WinUI - Uno.UI - WinUI - UWP - - - - <_diffPackage Include="$(PackageNamePrefix)" Other="$(PackageNamePrefix).$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Foldable" Other="..\..\..\NugetPackages-Artifacts-netcoremobile-$(ArtifactsPlatformName)\vslatest-netcoremobile\$(PackageNamePrefix).Foldable.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Lottie" Other="$(PackageNamePrefix).Lottie.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Maps" Other="..\..\..\NugetPackages-Artifacts-netcoremobile-$(ArtifactsPlatformName)\vslatest-netcoremobile\$(PackageNamePrefix).Maps.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).MSAL" Other="$(PackageNamePrefix).MSAL.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Svg" Other="$(PackageNamePrefix).Svg.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Skia.Gtk" Other="$(PackageNamePrefix).Skia.Gtk.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.Skia.Gtk" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\$(PackageNamePrefix).Runtime.Skia.Gtk.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.Skia.Linux.FrameBuffer" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\$(PackageNamePrefix).Runtime.Skia.Linux.FrameBuffer.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Skia.Linux.FrameBuffer" Other="$(PackageNamePrefix).Skia.Linux.FrameBuffer.$(GITVERSION_SemVer).nupkg" /> - - <_diffPackage Include="$(PackageNamePrefix).Skia.Wpf" Other="$(PackageNamePrefix).Skia.Wpf.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.Skia.Wpf" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\$(PackageNamePrefix).Runtime.Skia.Wpf.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).XamlHost" Other="$(PackageNamePrefix).XamlHost.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).XamlHost.Skia.Wpf" Other="$(PackageNamePrefix).XamlHost.Skia.Wpf.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).WebAssembly" Other="$(PackageNamePrefix).WebAssembly.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.WebAssembly" Other="..\..\..\NugetPackages-Artifacts-wasm-$(ArtifactsPlatformName)\vslatest-wasm\$(PackageNamePrefix).Runtime.WebAssembly.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="Uno.Foundation.Logging" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\Uno.Foundation.Logging.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="Uno.Foundation.Runtime.WebAssembly" Other="..\..\..\NugetPackages-Artifacts-wasm-$(ArtifactsPlatformName)\vslatest-wasm\Uno.Foundation.Runtime.WebAssembly.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\Uno.UI.Adapter.Microsoft.Extensions.Logging.$(GITVERSION_SemVer).nupkg" /> - - - - - - + From 7761c6204f3653239b2df80cb521f611bc9fa760 Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Thu, 10 Oct 2024 18:52:13 +0300 Subject: [PATCH 002/205] ci: Fix Graphics3DGL version publishing (cherry picked from commit 03001c8a7e47e7689bda79150bc9bc0eabf1a1d8) --- build/ci/.azure-devops-package-netcoremobile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/.azure-devops-package-netcoremobile.yml b/build/ci/.azure-devops-package-netcoremobile.yml index b0599d845a9d..68b6e65ac2c0 100644 --- a/build/ci/.azure-devops-package-netcoremobile.yml +++ b/build/ci/.azure-devops-package-netcoremobile.yml @@ -74,7 +74,7 @@ jobs: msbuildLocationMethod: version msbuildVersion: latest msbuildArchitecture: x86 - msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog + msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageVersion=$(GITVERSION.SemVer) InformationalVersion=$(GITVERSION.InformationalVersion) /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog clean: false restoreNugetPackages: false logProjectEvents: false From 35603126d393ea1afd33792b7104e9b002e8a08b Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Thu, 10 Oct 2024 18:56:23 +0300 Subject: [PATCH 003/205] chore: Update build/ci/.azure-devops-package-netcoremobile.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban (cherry picked from commit fd405a3c186269f992a7f4e6bf3b089fd41c6baf) --- build/ci/.azure-devops-package-netcoremobile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/.azure-devops-package-netcoremobile.yml b/build/ci/.azure-devops-package-netcoremobile.yml index 68b6e65ac2c0..bb8cf9e3afdb 100644 --- a/build/ci/.azure-devops-package-netcoremobile.yml +++ b/build/ci/.azure-devops-package-netcoremobile.yml @@ -74,7 +74,7 @@ jobs: msbuildLocationMethod: version msbuildVersion: latest msbuildArchitecture: x86 - msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageVersion=$(GITVERSION.SemVer) InformationalVersion=$(GITVERSION.InformationalVersion) /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog + msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageVersion=$(GITVERSION.SemVer) /p:InformationalVersion=$(GITVERSION.InformationalVersion) /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog clean: false restoreNugetPackages: false logProjectEvents: false From 87101c205de5b12d1bf940414ad4d19ecedcb5e0 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 16:01:19 +0300 Subject: [PATCH 004/205] fix(GLCanvasElement): GLCanvasElement not working on Uno Islands (cherry picked from commit c59eeffb8a3310e5c863f23af2ff41c58f3d7d21) --- src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore | 3 +- .../Uno.WinUI.Graphics3DGL/GLCanvasElement.cs | 97 ++++++++++--------- .../Uno.WinUI.Graphics3DGL.csproj | 2 +- .../Extensions/WpfNativeOpenGLWrapper.cs | 5 +- 4 files changed, 54 insertions(+), 53 deletions(-) diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore b/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore index 8d1f1ac147eb..7edd3d4bc3d7 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore @@ -1,2 +1 @@ -angle/ -angle_binaries/ \ No newline at end of file +angle_binaries/ diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs index ef4bb7be5826..360ab5e9a891 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Logging; using Silk.NET.OpenGL; @@ -40,7 +41,7 @@ public abstract partial class GLCanvasElement : Grid, INativeContext { private const int BytesPerPixel = 4; private static readonly BitmapImage _fallbackImage = new BitmapImage(new Uri("ms-appx:///Assets/error.png")); - private static bool? _glAvailable; + private static readonly Dictionary _xamlRootToWrapper = new(); private readonly uint _width; private readonly uint _height; @@ -48,7 +49,6 @@ public abstract partial class GLCanvasElement : Grid, INativeContext private readonly WriteableBitmap _backBuffer; - private bool _loadedAtleastOnce; // valid if and only if _loadedAtleastOnce and _glAvailable private INativeOpenGLWrapper? _nativeOpenGlWrapper; // These are valid if and only if IsLoaded and _glAvailable @@ -118,18 +118,24 @@ protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) Unloaded += OnUnloaded; } - private static INativeOpenGLWrapper? CreateNativeOpenGlWrapper(XamlRoot xamlRoot, Func? getWindowFunc) + private static INativeOpenGLWrapper? GetOrCreateNativeOpenGlWrapper(XamlRoot xamlRoot, Func? getWindowFunc) { try { + // This is done on the UI thread, so no concurrency concerns. + if (!_xamlRootToWrapper.TryGetValue(xamlRoot, out var nativeOpenGlWrapper)) + { #if WINAPPSDK - var nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); + var nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); #else - if (!ApiExtensibility.CreateInstance(xamlRoot, out var nativeOpenGlWrapper)) - { - throw new InvalidOperationException($"Couldn't create a {nameof(INativeOpenGLWrapper)} object. Make sure you are running on a platform with OpenGL support."); - } + if (!ApiExtensibility.CreateInstance(xamlRoot, out nativeOpenGlWrapper)) + { + throw new InvalidOperationException($"Couldn't create a {nameof(INativeOpenGLWrapper)} object. Make sure you are running on a platform with OpenGL support."); + } #endif + + _xamlRootToWrapper.Add(xamlRoot, nativeOpenGlWrapper); + } return nativeOpenGlWrapper; } catch (Exception e) @@ -144,16 +150,16 @@ protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) private void OnClosed(object _, object __) { - if (GlAvailable!.Value) + // OnUnloaded is called after OnClosed, which leads to disposing the context first and then trying to + // delete the framebuffer, etc. and this causes exceptions. + DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => { - // OnUnloaded is called after OnClosed, which leads to disposing the context first and then trying to - // delete the framebuffer, etc. and this causes exceptions. - DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => + if (_xamlRootToWrapper.Remove(XamlRoot!, out var wrapper)) { - using var _ = _nativeOpenGlWrapper!.MakeCurrent(); - _nativeOpenGlWrapper.Dispose(); - }); - } + using var _ = wrapper.MakeCurrent(); + wrapper.Dispose(); + } + }); } /// @@ -168,44 +174,25 @@ private void OnClosed(object _, object __) public void Invalidate() => NativeDispatcher.Main.Enqueue(Render, NativeDispatcherPriority.Idle); #endif - /// not null after the first instance is loaded. - private bool? GlAvailable + private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { - get => _glAvailable; - set + if (GetOrCreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc) is { } glWrapper) { - if (!value!.Value) - { - ((ImageBrush)Background).ImageSource = _fallbackImage; - } - _glAvailable = value; + _nativeOpenGlWrapper = glWrapper; + ((ImageBrush)Background).ImageSource = _backBuffer; } - } - - private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) - { - if (!_loadedAtleastOnce) + else { - _loadedAtleastOnce = true; - - if ((!GlAvailable ?? false) || CreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc) is not { } glWrapper) - { - GlAvailable = false; - } - else - { - GlAvailable = true; - _nativeOpenGlWrapper = glWrapper; - } + _nativeOpenGlWrapper = null; + ((ImageBrush)Background).ImageSource = _fallbackImage; } - if (!GlAvailable!.Value) + if (_nativeOpenGlWrapper is null) { return; } _gl = GL.GetApi(this); - GlAvailable = true; #if WINAPPSDK _pixels = Marshal.AllocHGlobal((int)(_width * _height * BytesPerPixel)); @@ -251,16 +238,23 @@ private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) #if WINAPPSDK _getWindowFunc!(); #else - XamlRoot?.HostWindow; + XamlRoot!.HostWindow; #endif - window!.Closed += OnClosed; + if (window is not null) + { + window.Closed += OnClosed; + } + else if (XamlRoot.Content is FrameworkElement fe) // for Uno Islands + { + fe.Unloaded += OnClosed; + } Invalidate(); } private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) { - if (!GlAvailable!.Value) + if (_nativeOpenGlWrapper is null) { return; } @@ -302,9 +296,16 @@ private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) #if WINAPPSDK _getWindowFunc!(); #else - XamlRoot?.HostWindow; + XamlRoot!.HostWindow; #endif - window!.Closed -= OnClosed; + if (window is not null) + { + window.Closed -= OnClosed; + } + else if (XamlRoot.Content is FrameworkElement fe) // for Uno Islands + { + fe.Unloaded -= OnClosed; + } } private unsafe void Render() diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj index 0c3fbedc6a50..ff33ec179446 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj @@ -67,7 +67,7 @@ $(DefaultItemExcludes);angle/** - + diff --git a/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs b/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs index 513c15c561c2..680b595a3ccb 100644 --- a/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs @@ -18,6 +18,7 @@ using Uno.Graphics; using Uno.UI.Runtime.Skia.Wpf.Rendering; using WpfWindow = System.Windows.Window; +using WpfControl = System.Windows.Controls.Control; #endif #if WINDOWS_UWP || WINAPPSDK @@ -68,9 +69,9 @@ public WpfNativeOpenGLWrapper(XamlRoot xamlRoot) #if WINDOWS_UWP || WINAPPSDK var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(_getWindowFunc()); #else - if (xamlRoot.HostWindow?.NativeWindow is not WpfWindow wpfWindow) + if (WpfManager.XamlRootMap.GetHostForRoot(xamlRoot) is not WpfControl wpfControl || WpfWindow.GetWindow(wpfControl) is not { } wpfWindow) { - throw new InvalidOperationException($"The XamlRoot and its NativeWindow must be initialized on the element before constructing a {_type.Name}."); + throw new InvalidOperationException($"The XamlRoot and the XamlRootMap must be initialized before constructing a {_type.Name}."); } var hwnd = new WindowInteropHelper(wpfWindow).Handle; #endif From 747ff3e540aa4aae20036fd974ebd7bb07a77b3d Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:54:16 +0300 Subject: [PATCH 005/205] chore: csproj adjustments (cherry picked from commit c73deeae9ac2fa37680e492f841b7bcab7302295) --- .../Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj index ff33ec179446..2c5f21008c14 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj @@ -69,15 +69,21 @@ + + + + From c88ca5091f4d7c2c86a74d413898d41e1fbe7e7b Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:55:07 +0300 Subject: [PATCH 006/205] chore: resize framebuffer when GLCanvasElement is resized (cherry picked from commit baef2c6d0de84855815472e8a3f9f3d3fd0ca6e1) --- .../GLCanvasElement.FrameBufferDetails.cs | 60 ++++++++ .../Uno.WinUI.Graphics3DGL/GLCanvasElement.cs | 136 ++++++++---------- .../RotatingCubeGlCanvasElement.cs | 2 +- .../SimpleTriangleGlCanvasElement.cs | 4 +- 4 files changed, 121 insertions(+), 81 deletions(-) create mode 100644 src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs new file mode 100644 index 000000000000..e2c52511b49a --- /dev/null +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs @@ -0,0 +1,60 @@ +using System; +using Windows.Foundation; +using Silk.NET.OpenGL; + +namespace Uno.WinUI.Graphics3DGL; + +public abstract partial class GLCanvasElement +{ + private class FrameBufferDetails : IDisposable + { + private readonly GL _gl; + private readonly uint _textureColorBuffer; + private readonly uint _renderBuffer; + + public uint Framebuffer { get; } + + public unsafe FrameBufferDetails(GL gl, Size renderSize) + { + _gl = gl; + + Framebuffer = gl.GenBuffer(); + gl.BindFramebuffer(GLEnum.Framebuffer, Framebuffer); + { + _textureColorBuffer = gl.GenTexture(); + gl.BindTexture(GLEnum.Texture2D, _textureColorBuffer); + { + gl.TexImage2D(GLEnum.Texture2D, 0, InternalFormat.Rgb, (uint)renderSize.Width, (uint)renderSize.Height, 0, GLEnum.Rgb, + GLEnum.UnsignedByte, (void*)0); + gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMinFilter, (uint)GLEnum.Linear); + gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMagFilter, (uint)GLEnum.Linear); + gl.FramebufferTexture2D(GLEnum.Framebuffer, FramebufferAttachment.ColorAttachment0, + GLEnum.Texture2D, _textureColorBuffer, 0); + } + gl.BindTexture(GLEnum.Texture2D, 0); + + _renderBuffer = gl.GenRenderbuffer(); + gl.BindRenderbuffer(GLEnum.Renderbuffer, _renderBuffer); + { + gl.RenderbufferStorage(GLEnum.Renderbuffer, InternalFormat.Depth24Stencil8, (uint)renderSize.Width, (uint)renderSize.Width); + gl.FramebufferRenderbuffer(GLEnum.Framebuffer, GLEnum.DepthStencilAttachment, + GLEnum.Renderbuffer, _renderBuffer); + } + gl.BindRenderbuffer(GLEnum.Renderbuffer, 0); + + if (gl.CheckFramebufferStatus(GLEnum.Framebuffer) != GLEnum.FramebufferComplete) + { + throw new InvalidOperationException("Offscreen framebuffer is not complete"); + } + } + gl.BindFramebuffer(GLEnum.Framebuffer, 0); + } + + public void Dispose() + { + _gl.DeleteFramebuffer(Framebuffer); + _gl.DeleteTexture(_textureColorBuffer); + _gl.DeleteRenderbuffer(_renderBuffer); + } + } +} diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs index 360ab5e9a891..d4047aa01561 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs @@ -43,19 +43,14 @@ public abstract partial class GLCanvasElement : Grid, INativeContext private static readonly BitmapImage _fallbackImage = new BitmapImage(new Uri("ms-appx:///Assets/error.png")); private static readonly Dictionary _xamlRootToWrapper = new(); - private readonly uint _width; - private readonly uint _height; private readonly Func? _getWindowFunc; - private readonly WriteableBitmap _backBuffer; - - // valid if and only if _loadedAtleastOnce and _glAvailable + // valid if and only if _loadedAtleastOnce and OpenGL is available on the running platform private INativeOpenGLWrapper? _nativeOpenGlWrapper; - // These are valid if and only if IsLoaded and _glAvailable + // These are valid if and only if IsLoaded private GL? _gl; - private uint _framebuffer; - private uint _textureColorBuffer; - private uint _renderBuffer; + private WriteableBitmap? _backBuffer; + private FrameBufferDetails? _details; #if WINAPPSDK private IntPtr _pixels; #endif @@ -97,25 +92,21 @@ public abstract partial class GLCanvasElement : Grid, INativeContext /// The height of the backing framebuffer. /// A function that returns the Window object that this element belongs to. This parameter is only used on WinUI. On Uno Platform, it can be set to null. #if WINAPPSDK - protected GLCanvasElement(uint width, uint height, Func getWindowFunc) + protected GLCanvasElement(Func getWindowFunc) #else - protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) + protected GLCanvasElement(Func? getWindowFunc) #endif { - _width = width; - _height = height; _getWindowFunc = getWindowFunc; - _backBuffer = new WriteableBitmap((int)width, (int)height); - Background = new ImageBrush { - ImageSource = _backBuffer, RelativeTransform = new ScaleTransform { ScaleX = 1, ScaleY = -1, CenterX = 0.5, CenterY = 0.5 } // because OpenGL coordinates go bottom-to-top }; Loaded += OnLoaded; Unloaded += OnUnloaded; + SizeChanged += (_, _) => UpdateFramebuffer(); } private static INativeOpenGLWrapper? GetOrCreateNativeOpenGlWrapper(XamlRoot xamlRoot, Func? getWindowFunc) @@ -140,9 +131,9 @@ protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) } catch (Exception e) { - if (typeof(INativeOpenGLWrapper).Log().IsEnabled(LogLevel.Error)) + if (typeof(GLCanvasElement).Log().IsEnabled(LogLevel.Error)) { - typeof(INativeOpenGLWrapper).Log().Error($"{nameof(INativeOpenGLWrapper)} creation failed.", e); + typeof(GLCanvasElement).Log().Error($"{nameof(INativeOpenGLWrapper)} creation failed.", e); } return null; } @@ -154,6 +145,10 @@ private void OnClosed(object _, object __) // delete the framebuffer, etc. and this causes exceptions. DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => { + if (this.Log().IsEnabled(LogLevel.Debug)) + { + this.Log().Debug($"Window is closing. Destroying the {nameof(INativeOpenGLWrapper)} for this window"); + } if (_xamlRootToWrapper.Remove(XamlRoot!, out var wrapper)) { using var _ = wrapper.MakeCurrent(); @@ -174,18 +169,9 @@ private void OnClosed(object _, object __) public void Invalidate() => NativeDispatcher.Main.Enqueue(Render, NativeDispatcherPriority.Idle); #endif - private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) + private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { - if (GetOrCreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc) is { } glWrapper) - { - _nativeOpenGlWrapper = glWrapper; - ((ImageBrush)Background).ImageSource = _backBuffer; - } - else - { - _nativeOpenGlWrapper = null; - ((ImageBrush)Background).ImageSource = _fallbackImage; - } + _nativeOpenGlWrapper = GetOrCreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc); if (_nativeOpenGlWrapper is null) { @@ -194,44 +180,10 @@ private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) _gl = GL.GetApi(this); -#if WINAPPSDK - _pixels = Marshal.AllocHGlobal((int)(_width * _height * BytesPerPixel)); -#endif - using (_nativeOpenGlWrapper!.MakeCurrent()) { - _framebuffer = _gl.GenBuffer(); - _gl.BindFramebuffer(GLEnum.Framebuffer, _framebuffer); - { - _textureColorBuffer = _gl.GenTexture(); - _gl.BindTexture(GLEnum.Texture2D, _textureColorBuffer); - { - _gl.TexImage2D(GLEnum.Texture2D, 0, InternalFormat.Rgb, _width, _height, 0, GLEnum.Rgb, - GLEnum.UnsignedByte, (void*)0); - _gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMinFilter, (uint)GLEnum.Linear); - _gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMagFilter, (uint)GLEnum.Linear); - _gl.FramebufferTexture2D(GLEnum.Framebuffer, FramebufferAttachment.ColorAttachment0, - GLEnum.Texture2D, _textureColorBuffer, 0); - } - _gl.BindTexture(GLEnum.Texture2D, 0); - - _renderBuffer = _gl.GenRenderbuffer(); - _gl.BindRenderbuffer(GLEnum.Renderbuffer, _renderBuffer); - { - _gl.RenderbufferStorage(GLEnum.Renderbuffer, InternalFormat.Depth24Stencil8, _width, _height); - _gl.FramebufferRenderbuffer(GLEnum.Framebuffer, GLEnum.DepthStencilAttachment, - GLEnum.Renderbuffer, _renderBuffer); - } - _gl.BindRenderbuffer(GLEnum.Renderbuffer, 0); - - if (_gl.CheckFramebufferStatus(GLEnum.Framebuffer) != GLEnum.FramebufferComplete) - { - throw new InvalidOperationException("Offscreen framebuffer is not complete"); - } - - Init(_gl); - } - _gl.BindFramebuffer(GLEnum.Framebuffer, 0); + UpdateFramebuffer(); + Init(_gl); } var window = @@ -248,8 +200,6 @@ private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { fe.Unloaded += OnClosed; } - - Invalidate(); } private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) @@ -278,16 +228,12 @@ private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) } #endif OnDestroy(_gl); - _gl.DeleteFramebuffer(_framebuffer); - _gl.DeleteTexture(_textureColorBuffer); - _gl.DeleteRenderbuffer(_renderBuffer); + _details?.Dispose(); _gl.Dispose(); } _gl = default; - _framebuffer = default; - _textureColorBuffer = default; - _renderBuffer = default; + _details = default; #if WINAPPSDK _pixels = default; #endif @@ -308,6 +254,40 @@ private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) } } + private void UpdateFramebuffer() + { + if (!IsLoaded) + { + return; + } + + global::System.Diagnostics.Debug.Assert(_gl is not null); + + if (this.Log().IsEnabled(LogLevel.Debug)) + { + this.Log().Debug($"Updating backing framebuffer with size={RenderSize}"); + } + + using (_nativeOpenGlWrapper!.MakeCurrent()) + { + _details?.Dispose(); + _details = new FrameBufferDetails(_gl, RenderSize); + } + +#if WINAPPSDK + if (_pixels != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pixels); + } + _pixels = Marshal.AllocHGlobal(((int)RenderSize.Width * (int)RenderSize.Height * BytesPerPixel)); +#endif + + _backBuffer = new WriteableBitmap((int)RenderSize.Width, (int)RenderSize.Height); + ((ImageBrush)Background).ImageSource = _backBuffer; + + Invalidate(); + } + private unsafe void Render() { if (!IsLoaded) @@ -315,13 +295,13 @@ private unsafe void Render() return; } - global::System.Diagnostics.Debug.Assert(_gl is not null); // because _gl exists if loaded + global::System.Diagnostics.Debug.Assert(_gl is not null && _details is not null && _backBuffer is not null); using var _ = _nativeOpenGlWrapper!.MakeCurrent(); - _gl!.BindFramebuffer(GLEnum.Framebuffer, _framebuffer); + _gl!.BindFramebuffer(GLEnum.Framebuffer, _details.Framebuffer); { - _gl.Viewport(new System.Drawing.Size((int)_width, (int)_height)); + _gl.Viewport(new System.Drawing.Size((int)RenderSize.Width, (int)RenderSize.Height)); RenderOverride(_gl); @@ -336,9 +316,9 @@ private unsafe void Render() #else Buffer.Cast(_backBuffer.PixelBuffer).ApplyActionOnRawBufferPtr(ptr => { - _gl.ReadPixels(0, 0, _width, _height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)ptr); + _gl.ReadPixels(0, 0, (uint)RenderSize.Width, (uint)RenderSize.Height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)ptr); }); - _backBuffer.PixelBuffer.Length = _width * _height * BytesPerPixel; + _backBuffer.PixelBuffer.Length = (uint)RenderSize.Width * (uint)RenderSize.Height * BytesPerPixel; #endif _backBuffer.Invalidate(); } diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs index 07b1e327a772..40d05b96d803 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs @@ -23,7 +23,7 @@ namespace UITests.Shared.Windows_UI_Composition #if WINAPPSDK public class RotatingCubeGlCanvasElement() : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) #else - public class RotatingCubeGlCanvasElement() : GLCanvasElement(1200, 800, null) + public class RotatingCubeGlCanvasElement() : GLCanvasElement(null) #endif { private static BufferObject _vbo; diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs index ec43239acfac..58965b1e4914 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs @@ -9,9 +9,9 @@ namespace UITests.Shared.Windows_UI_Composition // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() #if WINAPPSDK - : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) + : GLCanvasElement(() => SamplesApp.App.MainWindow) #else - : GLCanvasElement(1200, 800, null) + : GLCanvasElement(null) #endif { private uint _vao; From 09b3e61edc6201762eb825eab67ed951b83a202c Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:55:18 +0300 Subject: [PATCH 007/205] chore: doc adjustments (cherry picked from commit ef09851f149c78ee3abdd7eae23fb972235e03a0) --- doc/articles/controls/GLCanvasElement.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/doc/articles/controls/GLCanvasElement.md b/doc/articles/controls/GLCanvasElement.md index 18bc78a96ccc..9e92f9d8a189 100644 --- a/doc/articles/controls/GLCanvasElement.md +++ b/doc/articles/controls/GLCanvasElement.md @@ -12,22 +12,20 @@ uid: Uno.Controls.GLCanvasElement To use `GLCanvasElement`, create a subclass of `GLCanvasElement` and override the abstract methods `Init`, `RenderOverride` and `OnDestroy`. ```csharp -protected GLCanvasElement(uint width, uint height, Func getWindowFunc); +protected GLCanvasElement(Func getWindowFunc); protected abstract void Init(GL gl); protected abstract void RenderOverride(GL gl); protected abstract void OnDestroy(GL gl); ``` -The protected constructor has `width` and `height` parameters, which decide the resolution of the offscreen framebuffer that the `GLCanvasElement` will draw onto. Note that these parameters are unrelated to the final size of the drawing in the window. After drawing (using `RenderOverride`) is done, the output is resized to fit the arranged size of the `GLCanvasElement`. You can control the final size just like any other `Grid`, e.g. using `MeasureOverride`, `ArrangeOverride`, the `Width/Height` properties, etc. - -The protected constructor additionally requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and can be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. +The protected constructor requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and can be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. The 3 abstract methods above all take a `Silk.NET.OpenGL.GL` parameter that can be used to make OpenGL calls. The `Init` method is a regular OpenGL setup method that you can use to set up the needed OpenGL objects, like textures, Vertex Array Buffers (VAOs), Element Array Buffers (EBOs), etc. The `OnDestroy` method is the complement of `Init` and is used to clean up any allocated resources. `Init` and `OnDestroy` might be called multiple times alternatingly. In other words, 2 `OnDestroy` calls are guaranteed to have an `Init` call in between and vice versa. -The `RenderOverride` is the main render-loop function. When adding your drawing logic in `RenderOverride`, you can assume that the OpenGL viewport rectangle is already set and its dimensions are equal to the `resolution` parameter provided to the `GLCanvasElement` constructor. +The `RenderOverride` is the main render-loop function. When adding your drawing logic in `RenderOverride`, you can assume that the OpenGL viewport rectangle is already set and its dimensions are equal to the `RenderSize` of the `GLCanvasElement`. On MacOS, since OpenGL support is not natively present, we use [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software)) to provide OpenGL ES support. This means that we're actually using OpenGL ES 3.00, not OpenGL. Due to the similarity between desktop OpenGL and OpenGL ES, (almost) all the OpenGL ES functions are present in the `Silk.NET.OpenGL.GL` API surface and therefore we can use the same class to represent both the OpenGL and OpenGL ES APIs. To run the same `GLCanvasElement` subclasses on all supported platforms, make sure to use a subset of functions that are present in both APIs (which is almost all of OpenGL ES). @@ -85,9 +83,9 @@ public partial class GLCanvasElementExample : UserControl // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() #if WINAPPSDK - : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) + : GLCanvasElement(() => SamplesApp.App.MainWindow) #else - : GLCanvasElement(1200, 800, null) + : GLCanvasElement(null) #endif { private uint _vao; From c710032395beb336501af64fa529e3aa6b117e78 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:59:44 +0300 Subject: [PATCH 008/205] chore: adjust docs (cherry picked from commit 6f7d982c8f562ce92b6fe7bd525cfb3b673b4e1f) --- doc/articles/controls/GLCanvasElement.md | 9 +++------ .../RotatingCubeGlCanvasElement.cs | 7 ++----- .../SimpleTriangleGlCanvasElement.cs | 8 +++----- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/doc/articles/controls/GLCanvasElement.md b/doc/articles/controls/GLCanvasElement.md index 9e92f9d8a189..5df8619aa714 100644 --- a/doc/articles/controls/GLCanvasElement.md +++ b/doc/articles/controls/GLCanvasElement.md @@ -79,14 +79,11 @@ public partial class GLCanvasElementExample : UserControl ```csharp // GLTriangleElement.cs -# __SKIA__ || WINAPPSDK +#if DESKTOP || WINDOWS // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() -#if WINAPPSDK - : GLCanvasElement(() => SamplesApp.App.MainWindow) -#else - : GLCanvasElement(null) -#endif + // Assuming that App.xaml.cs has a static property named MainWindow + : GLCanvasElement(() => App.MainWindow) { private uint _vao; private uint _vbo; diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs index 40d05b96d803..09b674d6ce5c 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs @@ -15,16 +15,13 @@ using System; using System.Diagnostics; using System.Numerics; +using SamplesApp; using Silk.NET.OpenGL; using Uno.WinUI.Graphics3DGL; namespace UITests.Shared.Windows_UI_Composition { -#if WINAPPSDK - public class RotatingCubeGlCanvasElement() : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) -#else - public class RotatingCubeGlCanvasElement() : GLCanvasElement(null) -#endif + public class RotatingCubeGlCanvasElement() : GLCanvasElement(() => App.MainWindow) { private static BufferObject _vbo; private static BufferObject _ebo; diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs index 58965b1e4914..a64a808ae7ac 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs @@ -1,6 +1,8 @@ #if __SKIA__ || WINAPPSDK using System; using System.Drawing; +using Microsoft.UI.Xaml; +using SamplesApp; using Silk.NET.OpenGL; using Uno.WinUI.Graphics3DGL; @@ -8,11 +10,7 @@ namespace UITests.Shared.Windows_UI_Composition { // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() -#if WINAPPSDK - : GLCanvasElement(() => SamplesApp.App.MainWindow) -#else - : GLCanvasElement(null) -#endif + : GLCanvasElement(() => App.MainWindow) { private uint _vao; private uint _vbo; From 3fe780fdcc68eb38fe8cce20de850f2db9d1766d Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 20:07:11 +0300 Subject: [PATCH 009/205] chore: build errors (cherry picked from commit e918a944130a69b5c6d23b351ed689246de30dd7) --- src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs index d4047aa01561..fe6a994616b5 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs @@ -117,7 +117,7 @@ protected GLCanvasElement(Func? getWindowFunc) if (!_xamlRootToWrapper.TryGetValue(xamlRoot, out var nativeOpenGlWrapper)) { #if WINAPPSDK - var nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); + nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); #else if (!ApiExtensibility.CreateInstance(xamlRoot, out nativeOpenGlWrapper)) { @@ -308,10 +308,10 @@ private unsafe void Render() _gl.ReadBuffer(GLEnum.ColorAttachment0); #if WINAPPSDK - _gl.ReadPixels(0, 0, _width, _height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)_pixels); + _gl.ReadPixels(0, 0, (uint)RenderSize.Width, (uint)RenderSize.Height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)_pixels); using (var stream = _backBuffer.PixelBuffer.AsStream()) { - stream.Write(new ReadOnlySpan((void*)_pixels, (int)(_width * _height * BytesPerPixel))); + stream.Write(new ReadOnlySpan((void*)_pixels, (int)RenderSize.Width * (int)RenderSize.Height * BytesPerPixel)); } #else Buffer.Cast(_backBuffer.PixelBuffer).ApplyActionOnRawBufferPtr(ptr => From bdbb1edfb0d2708ed579285bc52621c3bed3a330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 10 Oct 2024 11:53:19 -0400 Subject: [PATCH 010/205] chore: Adjust GL docs, use GLCanvas feature (cherry picked from commit 6c47d28a0a4a42a513a637d72baf703e3cb9252a) --- .../test-scripts/run-net7-template-linux.ps1 | 4 +-- doc/articles/controls/GLCanvasElement.md | 26 ++++++++++++++----- doc/articles/features/using-the-uno-sdk.md | 1 + doc/articles/toc.yml | 4 ++- src/Uno.Sdk/Sdk/Sdk.props.buildschema.json | 2 +- src/Uno.Sdk/UnoFeature.cs | 2 +- ...cit.Packages.ProjectSystem.Desktop.targets | 2 +- ...t.Packages.ProjectSystem.WinAppSdk.targets | 2 +- 8 files changed, 29 insertions(+), 14 deletions(-) diff --git a/build/test-scripts/run-net7-template-linux.ps1 b/build/test-scripts/run-net7-template-linux.ps1 index 5d03aca580e2..ecfff12045fa 100644 --- a/build/test-scripts/run-net7-template-linux.ps1 +++ b/build/test-scripts/run-net7-template-linux.ps1 @@ -62,8 +62,8 @@ $projects = # 5.2 Blank SkiaSharp 3 @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:SkiaSharpVersion=3.0.0-preview.3.1"), - # 5.2 Blank Canvas3DGL - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:UnoFeatures=Canvas3DGL"), + # 5.2 Blank GLCanvas + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:UnoFeatures=GLCanvas"), # 5.2 Uno Lib @(1, "5.2/uno52Lib/uno52Lib.csproj", ""), diff --git a/doc/articles/controls/GLCanvasElement.md b/doc/articles/controls/GLCanvasElement.md index 5df8619aa714..5e3d9e342858 100644 --- a/doc/articles/controls/GLCanvasElement.md +++ b/doc/articles/controls/GLCanvasElement.md @@ -2,12 +2,12 @@ uid: Uno.Controls.GLCanvasElement --- -## Uno.WinUI.Graphics3D.GLCanvasElement - > [!IMPORTANT] -> This functionality is only available on WinUI and Skia Desktop (`netX.0-desktop`) targets that are running on platforms with support for hardware acceleration. On Windows and Linux, this means having (desktop) OpenGL support. On Mac OS X, this means having Vulkan support (to be used by [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software))). +> This functionality is only available on WinAppSDK and Skia Desktop (`netX.0-desktop`) targets that are running on platforms with support for hardware acceleration. On Windows and Linux, OpenGL is used directly and on macOS, Metal is used through the [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software)) library. + +`GLCanvasElement` is a control for drawing 3D graphics with OpenGL. It can be enabled by adding the [`GLCanvas` UnoFeature](xref:Uno.Features.Uno.Sdk). The OpenGL APIs provided are provided by [Silk.NET](https://dotnet.github.io/Silk.NET/). -`GLCanvasElement` is a `Grid` for drawing 3D graphics with OpenGL. This class comes as a part of the `Uno.WinUI.Graphics3D` package. +## Using the GLCanvasElement To use `GLCanvasElement`, create a subclass of `GLCanvasElement` and override the abstract methods `Init`, `RenderOverride` and `OnDestroy`. @@ -19,20 +19,32 @@ protected abstract void RenderOverride(GL gl); protected abstract void OnDestroy(GL gl); ``` -The protected constructor requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and can be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. +These three abstract methods take a `Silk.NET.OpenGL.GL` parameter that can be used to make OpenGL calls. + +### The GLCanvasElement constructor -The 3 abstract methods above all take a `Silk.NET.OpenGL.GL` parameter that can be used to make OpenGL calls. +The protected constructor requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't yet provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and must be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. + +### The `Init` method The `Init` method is a regular OpenGL setup method that you can use to set up the needed OpenGL objects, like textures, Vertex Array Buffers (VAOs), Element Array Buffers (EBOs), etc. The `OnDestroy` method is the complement of `Init` and is used to clean up any allocated resources. `Init` and `OnDestroy` might be called multiple times alternatingly. In other words, 2 `OnDestroy` calls are guaranteed to have an `Init` call in between and vice versa. +### The `RenderOverride` method + The `RenderOverride` is the main render-loop function. When adding your drawing logic in `RenderOverride`, you can assume that the OpenGL viewport rectangle is already set and its dimensions are equal to the `RenderSize` of the `GLCanvasElement`. +### macOS Specifics + On MacOS, since OpenGL support is not natively present, we use [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software)) to provide OpenGL ES support. This means that we're actually using OpenGL ES 3.00, not OpenGL. Due to the similarity between desktop OpenGL and OpenGL ES, (almost) all the OpenGL ES functions are present in the `Silk.NET.OpenGL.GL` API surface and therefore we can use the same class to represent both the OpenGL and OpenGL ES APIs. To run the same `GLCanvasElement` subclasses on all supported platforms, make sure to use a subset of functions that are present in both APIs (which is almost all of OpenGL ES). -To learn more about using [Silk.NET](https://www.nuget.org/packages/Silk.NET.OpenGL/) as a C# binding for OpenGL, see the examples in the Silk.NET repository [here](https://github.com/dotnet/Silk.NET/tree/main/examples/CSharp). Note that the windowing and inputs APIs in Silk.NET are not relevant to `GLCanvasElement`, since we only use Silk.NET as an OpenGL binding library, not a windowing library. +## Invalidating the canvas Additionally, `GLCanvasElement` has an `Invalidate` method that requests a redrawing of the `GLCanvasElement`, calling `RenderOverride` in the process. Note that `RenderOverride` will only be called once per `Invalidate` call and the output will be saved to be used in future frames. To update the output, you must call `Invalidate`. If you need to continuously update the output (e.g. in an animation), you can add an `Invalidate` call inside `RenderOverride`. +## How to use Silk.NET + +To learn more about using [Silk.NET](https://www.nuget.org/packages/Silk.NET.OpenGL/) as a C# binding for OpenGL, see the examples in the Silk.NET repository [here](https://github.com/dotnet/Silk.NET/tree/main/examples/CSharp). Note that the windowing and inputs APIs in Silk.NET are not relevant to `GLCanvasElement`, since we only use Silk.NET as an OpenGL binding library, not a windowing library. + ## Full example To see this in action, here's a complete sample that uses `GLCanvasElement` to draw a triangle. Note how you have to be careful with surrounding all the OpenGL-related logic in platform-specific guards. This is the case for both the [XAML](platform-specific-xaml) and the [code-behind](platform-specific-csharp). diff --git a/doc/articles/features/using-the-uno-sdk.md b/doc/articles/features/using-the-uno-sdk.md index 0fe4e356758d..f82af75ffb31 100644 --- a/doc/articles/features/using-the-uno-sdk.md +++ b/doc/articles/features/using-the-uno-sdk.md @@ -74,6 +74,7 @@ Here are the supported features: | `Dsp` | Adds support for the [Uno.Dsp.Tasks packages](https://www.nuget.org/packages?q=uno.dsp.tasks). | | `Prism` | Adds [Prism](https://github.com/PrismLibrary/Prism) support for Uno Platform applications WinUI. | | `Skia` | Adds support for [SkiaSharp](https://github.com/mono/SkiaSharp). | +| `GLCanvas` | Adds support for the [OpenGL Canvas](xref:Uno.Controls.GLCanvasElement). | | `Svg` | [SVG](xref:Uno.Features.SVG) support for iOS, Android, and Mac Catalyst. This option is not needed when only targeting WebAssembly and WinAppSDK. | | `Lottie` | Adds support for [Lottie animations](xref:Uno.Features.Lottie). | diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index 9ad0e31383d8..8102bd116d05 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -441,7 +441,7 @@ - name: Frame href: controls/Frame.md - name: GLCanvasElement - href: controls/GLCanvasElement.md + href: xref:Uno.Controls.GLCanvasElement - name: Image href: xref:Uno.Features.Image - name: ListView and GridView @@ -464,6 +464,8 @@ href: controls/RefreshContainer.md - name: ScrollViewer href: controls/ScrollViewer.md + - name: SKCanvasElement + href: xref:Uno.Controls.SKCanvasElement - name: TextBox href: controls/TextBox.md - name: TimePicker diff --git a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json index 88e31a3360bf..2eccb69242cc 100644 --- a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json +++ b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json @@ -515,7 +515,7 @@ "description": "Adds support for SVG images.", "helpUrl": "https://aka.platform.uno/feature-svg" }, - "Canvas3DGL": { + "GLCanvas": { "description": "Adds support for 3D graphics APIs based on OpenGL." } } diff --git a/src/Uno.Sdk/UnoFeature.cs b/src/Uno.Sdk/UnoFeature.cs index e83c7e334735..dce59c3e85e7 100644 --- a/src/Uno.Sdk/UnoFeature.cs +++ b/src/Uno.Sdk/UnoFeature.cs @@ -93,5 +93,5 @@ public enum UnoFeature Svg, [UnoArea(UnoArea.Core)] - Canvas3DGL + GLCanvas } diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets index 8815c12f0f5b..88512919efb3 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets @@ -6,7 +6,7 @@ --> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets index a8a806218f3e..38272123d0a3 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets @@ -14,7 +14,7 @@ <_UnoProjectSystemPackageReference Include="SkiaSharp.Views.WinUI" ProjectSystem="true" /> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> From 17b043930614c949d5c873779758b4043cbebd22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 10 Oct 2024 12:27:43 -0400 Subject: [PATCH 011/205] chore: Adjust lowercase feature (cherry picked from commit 1c1de9fe4ea9a841da970d665a2f570321a2e928) --- .../targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets | 2 +- .../Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets index 88512919efb3..7189164753d9 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets @@ -6,7 +6,7 @@ --> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets index 38272123d0a3..015da8c212a6 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets @@ -14,7 +14,7 @@ <_UnoProjectSystemPackageReference Include="SkiaSharp.Views.WinUI" ProjectSystem="true" /> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> From 44c5bce9ef3dbe6719da426a682793346c905c9f Mon Sep 17 00:00:00 2001 From: David Date: Thu, 10 Oct 2024 15:02:10 -0400 Subject: [PATCH 012/205] feat: All server processors to get services from DI (cherry picked from commit bd05b70b9015200fd904d3ab5373d7962f574391) --- .../Uno.Utils.DependencyInjection/ServiceAttribute.cs | 9 +++++++-- .../ServiceCollectionServiceExtensions.cs | 2 +- src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs index 7c99d5d2f9c8..136798d820de 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs @@ -9,7 +9,7 @@ namespace Uno.Utils.DependencyInjection; /// /// Type of the contract (i.e. interface) implemented by the concrete type. /// Concrete type to register in the service collection. -[AttributeUsage(AttributeTargets.Assembly)] +[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] public class ServiceAttribute(Type contract, Type implementation) : Attribute { /// @@ -37,7 +37,12 @@ public ServiceAttribute(Type implementation) public ServiceLifetime LifeTime { get; set; } = ServiceLifetime.Singleton; /// - /// Indicates if the service should be automatically initialized at startup. + /// Indicates if the service should be automatically initialized at startup (a.k.a. hosted service). /// public bool IsAutoInit { get; set; } + + /// + /// Provides a key to identify the service (service will be registered as keyed service if not null). + /// + public object? Key { get; set; } } diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs index f0b44f9b539e..27cd270e5aa7 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs @@ -30,7 +30,7 @@ public static IServiceCollection AddFromAttribute(this IServiceCollection svc) foreach (var service in services) { - svc.Add(new ServiceDescriptor(service!.Contract, service.Implementation, service.LifeTime)); + svc.Add(new ServiceDescriptor(service!.Contract, service.Key, service.Implementation, service.LifeTime)); } svc.AddHostedService(s => new AutoInitService(s, services!)); diff --git a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs index fcee10f8e710..dbb9d80fb160 100644 --- a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs +++ b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs @@ -9,6 +9,7 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Uno.Extensions; @@ -355,7 +356,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) try { - if (asm.assembly.CreateInstance(processor.ProcessorType.FullName!, ignoreCase: false, bindingAttr: BindingFlags.Instance | BindingFlags.Public, binder: null, args: new[] { this }, culture: null, activationAttributes: null) is IServerProcessor serverProcessor) + if (ActivatorUtilities.CreateInstance(_serviceProvider, processor.ProcessorType, parameters: new[] { this }) is IServerProcessor serverProcessor) { discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); RegisterProcessor(serverProcessor); From d20e41422d21e9e0188b0220884901b60d8d7739 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Tue, 8 Oct 2024 20:07:33 -0300 Subject: [PATCH 013/205] chore: add notification bar (cherry picked from commit d6494a0621f529ece2c8239a690382c671560b64) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 90 ++++++++++++++++++- .../IDEChannel/IDEChannelClient.cs | 11 +++ .../Notifications/InfoBar.cs | 2 + 3 files changed, 101 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 104bf01b1c7a..858c507fd5be 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -10,18 +10,21 @@ using System.Reflection; using System.Threading; using System.Threading.Tasks; -using System.Windows.Forms; using EnvDTE; using EnvDTE80; using Microsoft.Build.Evaluation; using Microsoft.Internal.VisualStudio.Shell; +using Microsoft.VisualStudio; +using Microsoft.VisualStudio.Imaging; using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Threading; using Microsoft.VisualStudio.Shell.Interop; +using Microsoft.VisualStudio.Threading; using Uno.UI.RemoteControl.Messaging.IdeChannel; +using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.DebuggerHelper; using Uno.UI.RemoteControl.VS.Helpers; using Uno.UI.RemoteControl.VS.IdeChannel; +using Uno.UI.RemoteControl.VS.Notifications; using ILogger = Uno.UI.RemoteControl.VS.Helpers.ILogger; using Task = System.Threading.Tasks.Task; @@ -344,6 +347,7 @@ private async Task EnsureServerAsync() _ideChannelClient = new IdeChannelClient(pipeGuid, new Logger(this)); _ideChannelClient.ForceHotReloadRequested += OnForceHotReloadRequestedAsync; + _ideChannelClient.InfoBarNotificationRequested += OnInfoBarNotificationRequestedAsync; _ideChannelClient.ConnectToHost(); // Set the port to the projects @@ -419,6 +423,67 @@ async Task Restart() } } + private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationIdeMessage message) + { + try + { + await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); + + if (await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell && + await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUIFactory infoBarFactory) + { + await CreateInfoBarFactoryAsync(message, shell, infoBarFactory); + } + } + catch (Exception e) when (_ideChannelClient is not null) + { + _debugAction?.Invoke($"Failed to handle InfoBar Notification Requested with message {e.Message}"); + throw; + } + } + + private async Task CreateInfoBarFactoryAsync(NotificationIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) + { + if (_ideChannelClient is null) + { + return; + } + var factory = new InfoBarFactory(infoBarFactory, shell); + + var infoBar = await factory.CreateAsync( + new InfoBarModel( + e.Message, + e.Commands.Select(Commands => new ActionBarItem + { + Text = Commands.Text, + Name = Commands.Name, + ActionContext = Commands.Parameter, + IsButton = true, + }).ToArray(), + e.Kind == NotificationKind.Information ? KnownMonikers.StatusInformation : KnownMonikers.StatusError, + isCloseButtonVisible: true)); + + if (infoBar is not null) + { + infoBar.ActionItemClicked += (s, e) => + { + _asyncPackage.JoinableTaskFactory.Run(async () => + { + if (e.ActionItem is ActionBarItem action && + action.Name is { } command && + await GetActiveWindowHandleAsync() is { } windowID && + windowID != IntPtr.Zero + ) + { + ; + await _ideChannelClient.SendToDevServerAsync(new CommandRequestIdeMessage(windowID.ToInt64(), command, action.ActionContext?.ToString()), _ct.Token); + } + }); + }; + await infoBar.TryShowInfoBarUIAsync(); + } + } + private async Task OnForceHotReloadRequestedAsync(object? sender, ForceHotReloadIdeMessage request) { try @@ -582,4 +647,25 @@ private class Logger(EntryPoint entryPoint) : ILogger public void Warn(string message) => entryPoint._warningAction?.Invoke(message); public void Verbose(string message) => entryPoint._verboseAction?.Invoke(message); } + + public async Task GetActiveWindowHandleAsync() + { + await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); + + var vsMonitorSelection = await _asyncPackage.GetServiceAsync(typeof(SVsShellMonitorSelection)) as IVsMonitorSelection; + if (vsMonitorSelection == null) + { + throw new InvalidOperationException("Cannot retrieve IVsMonitorSelection."); + } + + vsMonitorSelection.GetCurrentElementValue((uint)VSConstants.VSSELELEMID.SEID_WindowFrame, out object windowFrameObj); + + if (windowFrameObj is IVsWindowFrame windowFrame) + { + windowFrame.GetProperty((int)__VSFPROPID2.VSFPROPID_ParentHwnd, out object windowHandle); + return (IntPtr)windowHandle; + } + + return IntPtr.Zero; // Retorna 0 se nenhuma janela ativa foi encontrada + } } diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 2c1125bb3bd0..86c08f51433d 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -3,11 +3,17 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; +using EnvDTE; +using Microsoft.VisualStudio.Imaging; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Threading; using StreamJsonRpc; using Uno.UI.RemoteControl.Host.IdeChannel; using Uno.UI.RemoteControl.Messaging.IdeChannel; +using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.Helpers; +using Uno.UI.RemoteControl.VS.Notifications; namespace Uno.UI.RemoteControl.VS.IdeChannel; @@ -21,6 +27,7 @@ internal class IdeChannelClient private readonly ILogger _logger; public event AsyncEventHandler? ForceHotReloadRequested; + public event AsyncEventHandler? InfoBarNotificationRequested; public IdeChannelClient(Guid pipeGuid, ILogger logger) { @@ -98,6 +105,10 @@ private void ProcessDevServerMessage(object sender, IdeMessageEnvelope devServer case KeepAliveIdeMessage: _logger.Verbose($"Keep alive from Dev Server"); break; + case NotificationIdeMessage e when e is { } message: + _logger.Verbose($"Dev Server will open the Notification Message with message {e.Message}"); + process = InfoBarNotificationRequested.InvokeAsync(this, message); + break; default: _logger.Verbose($"Unknown message type {devServerMessage?.GetType()} from DevServer"); break; diff --git a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs index 0e4cc9aaef95..81d794905a0f 100644 --- a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs +++ b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs @@ -120,6 +120,8 @@ class ActionBarItem : IVsInfoBarActionItem { public string? Text { get; set; } + public string? Name { get; set; } + public bool Bold { get; set; } public bool Italic { get; set; } From a92dc5085a5b5f240524a750a5bf556b70f84c04 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 14:32:56 -0300 Subject: [PATCH 014/205] chore: get windows Handle ID (cherry picked from commit d77d8f829c189981c109ce3ac74a25ab45a7700f) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 26 ++++++------------- .../IDEChannel/IDEChannelClient.cs | 5 ++-- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 858c507fd5be..96376098e0ff 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -20,7 +20,6 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Threading; using Uno.UI.RemoteControl.Messaging.IdeChannel; -using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.DebuggerHelper; using Uno.UI.RemoteControl.VS.Helpers; using Uno.UI.RemoteControl.VS.IdeChannel; @@ -423,7 +422,7 @@ async Task Restart() } } - private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationIdeMessage message) + private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationRequestIdeMessage message) { try { @@ -442,7 +441,7 @@ await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUI } } - private async Task CreateInfoBarFactoryAsync(NotificationIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) + private async Task CreateInfoBarFactoryAsync(NotificationRequestIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) { if (_ideChannelClient is null) { @@ -475,7 +474,6 @@ await GetActiveWindowHandleAsync() is { } windowID && windowID != IntPtr.Zero ) { - ; await _ideChannelClient.SendToDevServerAsync(new CommandRequestIdeMessage(windowID.ToInt64(), command, action.ActionContext?.ToString()), _ct.Token); } }); @@ -650,22 +648,14 @@ private class Logger(EntryPoint entryPoint) : ILogger public async Task GetActiveWindowHandleAsync() { - await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); + //System.Diagnostics.Process.GetCurrentProcess().Id + IntPtr hWnd = IntPtr.Zero; + IVsUIShell? uiShell = await _asyncPackage.GetServiceAsync(typeof(SVsUIShell)) as IVsUIShell; - var vsMonitorSelection = await _asyncPackage.GetServiceAsync(typeof(SVsShellMonitorSelection)) as IVsMonitorSelection; - if (vsMonitorSelection == null) + if (uiShell != null) { - throw new InvalidOperationException("Cannot retrieve IVsMonitorSelection."); + uiShell.GetDialogOwnerHwnd(out hWnd); } - - vsMonitorSelection.GetCurrentElementValue((uint)VSConstants.VSSELELEMID.SEID_WindowFrame, out object windowFrameObj); - - if (windowFrameObj is IVsWindowFrame windowFrame) - { - windowFrame.GetProperty((int)__VSFPROPID2.VSFPROPID_ParentHwnd, out object windowHandle); - return (IntPtr)windowHandle; - } - - return IntPtr.Zero; // Retorna 0 se nenhuma janela ativa foi encontrada + return hWnd; } } diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 86c08f51433d..71edf86ea14d 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -11,7 +11,6 @@ using StreamJsonRpc; using Uno.UI.RemoteControl.Host.IdeChannel; using Uno.UI.RemoteControl.Messaging.IdeChannel; -using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.Helpers; using Uno.UI.RemoteControl.VS.Notifications; @@ -27,7 +26,7 @@ internal class IdeChannelClient private readonly ILogger _logger; public event AsyncEventHandler? ForceHotReloadRequested; - public event AsyncEventHandler? InfoBarNotificationRequested; + public event AsyncEventHandler? InfoBarNotificationRequested; public IdeChannelClient(Guid pipeGuid, ILogger logger) { @@ -105,7 +104,7 @@ private void ProcessDevServerMessage(object sender, IdeMessageEnvelope devServer case KeepAliveIdeMessage: _logger.Verbose($"Keep alive from Dev Server"); break; - case NotificationIdeMessage e when e is { } message: + case NotificationRequestIdeMessage e when e is { } message: _logger.Verbose($"Dev Server will open the Notification Message with message {e.Message}"); process = InfoBarNotificationRequested.InvokeAsync(this, message); break; From 6148443be93791067c5c90a0d6111415f3f5210d Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 14:50:32 -0300 Subject: [PATCH 015/205] chore: use process id (cherry picked from commit 56da17557cc98f5ea4ca17f94f0444e03df99019) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 25 +++++++---------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 96376098e0ff..7d11c45cf377 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -469,12 +469,14 @@ private async Task CreateInfoBarFactoryAsync(NotificationRequestIdeMessage e, IV _asyncPackage.JoinableTaskFactory.Run(async () => { if (e.ActionItem is ActionBarItem action && - action.Name is { } command && - await GetActiveWindowHandleAsync() is { } windowID && - windowID != IntPtr.Zero - ) + action.Name is { } command) { - await _ideChannelClient.SendToDevServerAsync(new CommandRequestIdeMessage(windowID.ToInt64(), command, action.ActionContext?.ToString()), _ct.Token); + var cmd = + new CommandRequestIdeMessage( + System.Diagnostics.Process.GetCurrentProcess().Id, + command, + action.ActionContext?.ToString()); + await _ideChannelClient.SendToDevServerAsync(cmd, _ct.Token); } }); }; @@ -645,17 +647,4 @@ private class Logger(EntryPoint entryPoint) : ILogger public void Warn(string message) => entryPoint._warningAction?.Invoke(message); public void Verbose(string message) => entryPoint._verboseAction?.Invoke(message); } - - public async Task GetActiveWindowHandleAsync() - { - //System.Diagnostics.Process.GetCurrentProcess().Id - IntPtr hWnd = IntPtr.Zero; - IVsUIShell? uiShell = await _asyncPackage.GetServiceAsync(typeof(SVsUIShell)) as IVsUIShell; - - if (uiShell != null) - { - uiShell.GetDialogOwnerHwnd(out hWnd); - } - return hWnd; - } } From 95c44060d99423246a102915e875adac8eb4b128 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:14:17 -0300 Subject: [PATCH 016/205] chore: remove extra reference (cherry picked from commit 095d85d7d1a6876cc8beb2151b46c4619c74e5e5) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 7d11c45cf377..a2238a9ee7c7 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -14,7 +14,6 @@ using EnvDTE80; using Microsoft.Build.Evaluation; using Microsoft.Internal.VisualStudio.Shell; -using Microsoft.VisualStudio; using Microsoft.VisualStudio.Imaging; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; From e84a2c894cf01631ca2749f01040774dc7c3c68d Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:33:43 -0300 Subject: [PATCH 017/205] chore: update event name (cherry picked from commit fa522e3b62af77d4c097808634ac8a9fbe085efa) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 8 ++++---- .../IDEChannel/IDEChannelClient.cs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index a2238a9ee7c7..6dcb387a85f6 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -345,7 +345,7 @@ private async Task EnsureServerAsync() _ideChannelClient = new IdeChannelClient(pipeGuid, new Logger(this)); _ideChannelClient.ForceHotReloadRequested += OnForceHotReloadRequestedAsync; - _ideChannelClient.InfoBarNotificationRequested += OnInfoBarNotificationRequestedAsync; + _ideChannelClient.OnMessageReceived += OnMessageReceivedAsync; _ideChannelClient.ConnectToHost(); // Set the port to the projects @@ -421,7 +421,7 @@ async Task Restart() } } - private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationRequestIdeMessage message) + private async Task OnMessageReceivedAsync(object? sender, NotificationRequestIdeMessage message) { try { @@ -430,7 +430,7 @@ private async Task OnInfoBarNotificationRequestedAsync(object? sender, Notificat if (await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell && await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUIFactory infoBarFactory) { - await CreateInfoBarFactoryAsync(message, shell, infoBarFactory); + await CreateInfoBarAsync(message, shell, infoBarFactory); } } catch (Exception e) when (_ideChannelClient is not null) @@ -440,7 +440,7 @@ await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUI } } - private async Task CreateInfoBarFactoryAsync(NotificationRequestIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) + private async Task CreateInfoBarAsync(NotificationRequestIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) { if (_ideChannelClient is null) { diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 71edf86ea14d..9e689a836dc1 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -26,7 +26,7 @@ internal class IdeChannelClient private readonly ILogger _logger; public event AsyncEventHandler? ForceHotReloadRequested; - public event AsyncEventHandler? InfoBarNotificationRequested; + public event AsyncEventHandler? OnMessageReceived; public IdeChannelClient(Guid pipeGuid, ILogger logger) { @@ -106,7 +106,7 @@ private void ProcessDevServerMessage(object sender, IdeMessageEnvelope devServer break; case NotificationRequestIdeMessage e when e is { } message: _logger.Verbose($"Dev Server will open the Notification Message with message {e.Message}"); - process = InfoBarNotificationRequested.InvokeAsync(this, message); + process = OnMessageReceived.InvokeAsync(this, message); break; default: _logger.Verbose($"Unknown message type {devServerMessage?.GetType()} from DevServer"); From 7d94f96f54ec174287dbe8148871210a793fea36 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:39:05 -0300 Subject: [PATCH 018/205] chore: remove unnecessary namespaces (cherry picked from commit da8d2feb4472187808112622109a6ec1819a1004) --- src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 9e689a836dc1..bc68df51227c 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -1,18 +1,13 @@ using System; using System.IO.Pipes; -using System.Linq; using System.Threading; using System.Threading.Tasks; -using EnvDTE; -using Microsoft.VisualStudio.Imaging; using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Threading; using StreamJsonRpc; using Uno.UI.RemoteControl.Host.IdeChannel; using Uno.UI.RemoteControl.Messaging.IdeChannel; using Uno.UI.RemoteControl.VS.Helpers; -using Uno.UI.RemoteControl.VS.Notifications; namespace Uno.UI.RemoteControl.VS.IdeChannel; From 52a50e19d3267c228d6fe46b6c53e1db8454a0d2 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:53:34 -0300 Subject: [PATCH 019/205] chore: change to get the windowid from process (cherry picked from commit c7dc816ce18e62248f826abca97a7a9307696abd) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 6dcb387a85f6..643f077ed430 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -472,7 +472,7 @@ private async Task CreateInfoBarAsync(NotificationRequestIdeMessage e, IVsShell { var cmd = new CommandRequestIdeMessage( - System.Diagnostics.Process.GetCurrentProcess().Id, + System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle.ToInt64(), command, action.ActionContext?.ToString()); await _ideChannelClient.SendToDevServerAsync(cmd, _ct.Token); From a998147d3d83ef04a35e8a8844c5cd82a60748f7 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 10 Oct 2024 13:01:36 -0400 Subject: [PATCH 020/205] fix: Removed the waiting for TypeMappings to be resumed during hot reload: when paused, simply return a _ignored_ status instead. (cherry picked from commit 8a586f7677fcc19db57204db02d16cd5aefe80b9) --- ...ClientHotReloadProcessor.MetadataUpdate.cs | 24 +++--------- .../HotReload/HotReloadStatusView.cs | 38 +++++++++++-------- .../Frame/HRApp/Tests/Given_Frame.cs | 6 +-- .../Frame/HRApp/Tests/Given_TextBlock.cs | 36 +++++++++++++++++- src/Uno.UI/Helpers/TypeMappings.cs | 37 +++++------------- 5 files changed, 76 insertions(+), 65 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs index 91c99dda90d9..5069bd7935a2 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs @@ -31,7 +31,6 @@ namespace Uno.UI.RemoteControl.HotReload; partial class ClientHotReloadProcessor { - private static int _isWaitingForTypeMapping; private static readonly AsyncLock _uiUpdateGate = new(); // We can use the simple AsyncLock here as we don't need reentrancy. private static ElementUpdateAgent? _elementAgent; @@ -53,23 +52,12 @@ private static ElementUpdateAgent ElementAgent } } - private static async Task<(bool value, string reason)> ShouldReload() + private static (bool value, string reason) ShouldReload() { - if (Interlocked.CompareExchange(ref _isWaitingForTypeMapping, 1, 0) == 1) - { - return (false, "another reload is already waiting for type mapping to resume"); - } - try - { - var shouldReload = await TypeMappings.WaitForResume(); - return shouldReload - ? (true, string.Empty) - : (false, "type mapping prevent reload"); - } - finally - { - Interlocked.Exchange(ref _isWaitingForTypeMapping, 0); - } + var isPaused = TypeMappings.IsPaused; + return isPaused + ? (false, "type mapping prevent reload") + : (true, string.Empty); } internal static void SetWindow(Window window, bool disableIndicator) @@ -116,7 +104,7 @@ private static async Task ReloadWithUpdatedTypes(HotReloadClientOperation? hrOp, { hrOp?.SetCurrent(); - if (await ShouldReload() is { value: false } prevent) + if (ShouldReload() is { value: false } prevent) { uiUpdating = false; hrOp?.ReportIgnored(prevent.reason); diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs index 08e45595a75e..92bfb5f3fc84 100644 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs +++ b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs @@ -206,29 +206,35 @@ private void UpdateLog(RemoteControlStatus? oldStatus, RemoteControlStatus newSt private void UpdateLog(Status? oldStatus, Status status) { // Add or update the entries for the **operations** (server and the application). - foreach (var srvOp in status.Server.Operations) + if (status.Server.Operations is { }) // can be null during loading, creating a NRE { - ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_serverHrEntries, srvOp.Id, out var exists); - if (exists) + foreach (var srvOp in status.Server.Operations) { - entry!.Update(srvOp); - } - else - { - entry = new ServerEntry(srvOp); + ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_serverHrEntries, srvOp.Id, out var exists); + if (exists) + { + entry!.Update(srvOp); + } + else + { + entry = new ServerEntry(srvOp); + } } } - foreach (var localOp in status.Local.Operations) + if (status.Local.Operations is { }) // can be null during loading, creating a NRE { - ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_appHrEntries, localOp.Id, out var exists); - if (exists) + foreach (var localOp in status.Local.Operations) { - entry!.Update(localOp); - } - else - { - entry = new ApplicationEntry(localOp); + ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_appHrEntries, localOp.Id, out var exists); + if (exists) + { + entry!.Update(localOp); + } + else + { + entry = new ApplicationEntry(localOp); + } } } diff --git a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs index 69ac07239b56..2925c44c3c28 100644 --- a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs +++ b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs @@ -160,7 +160,7 @@ await HotReloadHelper.UpdateServerFileAndRevert( finally { // Resume HR - TypeMappings.Resume(false); + TypeMappings.Resume(); } // Although HR has been un-paused (resumed) the UI should not have updated at this point @@ -211,7 +211,7 @@ await HotReloadHelper.UpdateServerFileAndRevert( FirstPageTextBlockChangedText, async () => { - // Confirm that reload compeleted has fired + // Confirm that reload completed has fired var uiUpdated = await waitingTask.WaitAsync(ct); Assert.IsFalse(uiUpdated, "UI should not have updated whilst ui updates paused"); await frame.ValidateTextOnChildTextBlock(FirstPageTextBlockOriginalText); @@ -221,7 +221,7 @@ await HotReloadHelper.UpdateServerFileAndRevert( finally { // Resume HR - TypeMappings.Resume(false); + TypeMappings.Resume(); } // Although HR has been un-paused (resumed) the UI should not have updated at this point diff --git a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs index feab9f1d612b..41784dacaac8 100644 --- a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs +++ b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs @@ -13,6 +13,7 @@ using Uno.UI.RuntimeTests.Tests.HotReload; using Uno.UI.RuntimeTests.Tests.HotReload.Frame; using Microsoft.VisualStudio.TestTools.UnitTesting; +using Uno.UI.Helpers; using Uno.UI.RemoteControl.HotReload; namespace Uno.UI.RuntimeTests.Tests.HotReload.Frame.HRApp.Tests; @@ -69,6 +70,37 @@ public async Task When_Changing_TextBlock_UsingHRClient() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + UnitTestsUIContentHelper.Content = new ContentControl + { + Content = new HR_Frame_Pages_Page2() + }; + + var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page2()); + var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( + ctx.FileName, + SecondPageTextBlockOriginalText, + SecondPageTextBlockChangedText, + true) + .WithExtendedTimeouts(); // Required for CI + try + { + await hr.UpdateFileAsync(req, ct); + + await UnitTestsUIContentHelper.Content.ValidateTextOnChildTextBlock(SecondPageTextBlockChangedText); + } + finally + { + await hr.UpdateFileAsync(req.Undo(waitForHotReload: false), CancellationToken.None); + } + } + + // Another version of the test above, but pausing the TypeMapping before calling the file update + [TestMethod] + public async Task When_Changing_TextBlock_UsingHRClient_PausingTypeMapping() + { + var ct = new CancellationTokenSource(TimeSpan.FromSeconds(25)).Token; + UnitTestsUIContentHelper.Content = new ContentControl { Content = new HR_Frame_Pages_Page1() @@ -84,12 +116,14 @@ public async Task When_Changing_TextBlock_UsingHRClient() .WithExtendedTimeouts(); // Required for CI try { + TypeMappings.Pause(); await hr.UpdateFileAsync(req, ct); - await UnitTestsUIContentHelper.Content.ValidateTextOnChildTextBlock(FirstPageTextBlockChangedText); + await UnitTestsUIContentHelper.Content.ValidateTextOnChildTextBlock(FirstPageTextBlockOriginalText); // should NOT be changed } finally { + TypeMappings.Resume(); await hr.UpdateFileAsync(req.Undo(waitForHotReload: false), CancellationToken.None); } } diff --git a/src/Uno.UI/Helpers/TypeMappings.cs b/src/Uno.UI/Helpers/TypeMappings.cs index 4357bb7b0157..2da4cce7f6b2 100644 --- a/src/Uno.UI/Helpers/TypeMappings.cs +++ b/src/Uno.UI/Helpers/TypeMappings.cs @@ -94,6 +94,7 @@ internal static void RegisterMapping(Type mappedType, Type originalType) { AllMappedTypeToOriginalTypeMappings[mappedType] = originalType; AllOriginalTypeToMappedType[originalType] = mappedType; + if (_mappingsPaused is null) { MappedTypeToOriginalTypeMappings[mappedType] = originalType; @@ -114,19 +115,7 @@ internal static void ClearMappings() AllOriginalTypeToMappedType.Clear(); } - private static TaskCompletionSource _mappingsPaused; - - /// - /// Gets a Task that can be awaited to ensure type mappings - /// are being applied. This is useful particularly for testing - /// HR the pause/resume function of type mappings - /// - /// A task that will complete when type mapping collection - /// has resumed. Returns a completed task if type mapping collection - /// is currently active. - [Obsolete("Use WaitForResume instead")] - public static Task WaitForMappingsToResume() - => WaitForResume(); + private static TaskCompletionSource _mappingsPaused; /// /// Gets a Task that can be awaited to ensure type mappings @@ -137,17 +126,21 @@ public static Task WaitForMappingsToResume() /// has resumed. Returns a completed task if type mapping collection /// is currently active /// The value (bool) returned from the task indicates whether the layout should be updated - public static Task WaitForResume() + public static Task WaitForResume() => _mappingsPaused is not null ? _mappingsPaused.Task : Task.FromResult(true); + /// + /// Gets whether type mappings are currently paused + /// + public static bool IsPaused => _mappingsPaused is not null; + /// /// Pause the collection of type mappings. /// Internally the type mappings are still collected but will only be /// applied to the mapping dictionaries after Resume is called /// - public static void Pause() - => _mappingsPaused ??= new TaskCompletionSource(); + public static void Pause() => Interlocked.CompareExchange(ref _mappingsPaused, new TaskCompletionSource(), null); /// /// Resumes the collection of type mappings @@ -156,22 +149,12 @@ public static void Pause() /// the WaitForResume task completes /// public static void Resume() - => Resume(true); - - /// - /// Resumes the collection of type mappings - /// If new types have been created whilst type mapping - /// was paused, those new mappings will be applied before - /// the WaitForResume task completes - /// - /// Indicates whether the layout should be updated after resuming updates - public static void Resume(bool updateLayout) { if (Interlocked.Exchange(ref _mappingsPaused, null) is { } completion) { MappedTypeToOriginalTypeMappings = new Dictionary(AllMappedTypeToOriginalTypeMappings); OriginalTypeToMappedType = new Dictionary(AllOriginalTypeToMappedType); - completion.TrySetResult(updateLayout); + completion.TrySetResult(); } } } From 444aee1eca987249fa9edb08697bafaa7a822a7b Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 11 Oct 2024 10:32:44 -0400 Subject: [PATCH 021/205] ci: Allow breaking changes in public API for TypeMappings (cherry picked from commit f50866f5cbc93b52466d83ed6f1e98ea3e358706) --- build/PackageDiffIgnore.xml | 39 +++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/build/PackageDiffIgnore.xml b/build/PackageDiffIgnore.xml index 0113851ecedc..b7f9060e84c0 100644 --- a/build/PackageDiffIgnore.xml +++ b/build/PackageDiffIgnore.xml @@ -1781,7 +1781,7 @@ - + @@ -1801,7 +1801,7 @@ - + @@ -1827,7 +1827,7 @@ - + @@ -1905,7 +1905,7 @@ - + @@ -1951,9 +1951,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Date: Fri, 11 Oct 2024 14:04:25 -0400 Subject: [PATCH 022/205] ci: Fixed missing XML escaping (cherry picked from commit 392dad6963470bf87800a3529d54fd94db69c4b8) --- build/PackageDiffIgnore.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/PackageDiffIgnore.xml b/build/PackageDiffIgnore.xml index b7f9060e84c0..875317d81ea1 100644 --- a/build/PackageDiffIgnore.xml +++ b/build/PackageDiffIgnore.xml @@ -1954,7 +1954,7 @@ - + @@ -1972,14 +1972,14 @@ - + - + - + From e04f7eb9d216641a5024c46cc9660a29a6c8949a Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:09:00 -0400 Subject: [PATCH 023/205] docs: Update desktop publishing article (cherry picked from commit 97cfa0d60005f3ebb19df5edac13156b2d07ca0b) --- build/cSpell.json | 1 + doc/articles/uno-publishing-desktop.md | 128 +++++++++++++++++++------ 2 files changed, 101 insertions(+), 28 deletions(-) diff --git a/build/cSpell.json b/build/cSpell.json index b93032229ee6..550040fd683d 100644 --- a/build/cSpell.json +++ b/build/cSpell.json @@ -87,6 +87,7 @@ "signalr", "Skia", "skiasharp", + "Snapcraft", "Storyboarded", "struct", "Syncfusion", diff --git a/doc/articles/uno-publishing-desktop.md b/doc/articles/uno-publishing-desktop.md index 592b331cb71f..117f84723c21 100644 --- a/doc/articles/uno-publishing-desktop.md +++ b/doc/articles/uno-publishing-desktop.md @@ -2,50 +2,122 @@ uid: uno.publishing.desktop --- -# Publishing Your App for Desktop +# Publishing Your App For Desktop ## Preparing For Publish -- [Profile your app with VS 2022](https://learn.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2022) +- [Profile your app with Visual Studio](https://learn.microsoft.com/en-us/visualstudio/profiling) - [Profile using dotnet-trace and SpeedScope](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace) -## Publish your app - -### Using Visual Studio 2022 - -To publish your app with Visual Studio 2022: +## Publish Using Visual Studio 2022 - In the debugger toolbar drop-down, select the `net8.0-desktop` target framework - Once the project has reloaded, right-click on the project and select **Publish** -- Select the appropriate target for your publication, this example will use the **Folder**, then click **Next** -- Choose an output folder for the published output, then click **Close**. -- In the opened editor, click the **Configuration** "pen" to edit the configuration -- In the opened popup, ensure that **Target Framework** is set to `net8.0-desktop`, then click **Save** -- On the top right, click the **Publish** button -- Once the build is done, the output is located in the publish folder +- Select the **Folder** target for your publication then click **Next** +- Select the **Folder** target again then **Next** +- Choose an output folder then click **Finish** +- The profile is created, you can now **Close** the dialog +- In the opened editor, click `Show all settings` +- Set **Configuration** to `Release` +- Set **Target framework** to `net8.0-desktop` +- You can set **Deployment mode** to either `Framework-dependent` or `Self-contained` + - If `Self-contained` is chosen and you're targeting Windows, **Target runtime** must match the installed .NET SDK runtime identifier + as cross-publishing self-contained WPF apps (e.g. win-x64 to win-arm64) is not supported for now. +- You can set **Target runtime**, make sure it honors the above limitation, if it applies. +- Click **Save** +- Click **Publish** + +## Publish Using The CLI + +On Windows/macOS/Linux, open a terminal in your `csproj` folder and run: + +```shell +dotnet publish -f net8.0-desktop +``` + +If you wish to do a self-contained publish, run the following instead: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true +``` + +Where `{{RID}}` specifies the chosen OS and Architecture (e.g. win-x64). Again when targeting Windows, cross-publishing is not supported. -Once done, you can head over to the [publishing section](xref:uno.publishing.webassembly#publishing). +### macOS App Bundles + +We now support generating .app bundles on macOS machines. From the CLI run: + +```shell +dotnet publish -f net8.0-desktop -p:PackageFormat=app +``` + +You can also do a self-contained publish with: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true -p:PackageFormat=app +``` + +Where `{{RID}}` is either `osx-x64` or `osx-arm64`. + +> [!NOTE] +> Code signing is planned but not supported yet. -### Using the Command Line +### Snap Packages -To build your app from the CLI, on Windows, Linux, or macOS: +We support creating .snap packages on **Ubuntu 20.04** or later. -- Open a terminal, command line, or powershell -- Navigate to your `csproj` folder -- Publish the app using: +#### Requirements - ```shell - dotnet publish -f net8.0-desktop -c Release -o ./publish - ``` +The following must be installed and configured: + +- snapd +- snaps (with `snap install`): + - core20 on Ubuntu 20.04 + - core22 on Ubuntu 22.04 + - core24 on Ubuntu 24.04 + - multipass + - lxd + - current user must be part of the `lxd` group + - `lxd init --minimal` or similar should be run + - snapcraft + +> [!NOTE] +> Docker may interfere with Lxd causing network connectivity issues, for solutions see: https://documentation.ubuntu.com/lxd/en/stable-5.0/howto/network_bridge_firewalld/#prevent-connectivity-issues-with-lxd-and-docker + +#### Publishing A Snap + +To publish a snap, run: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true -p:PackageFormat=snap +``` + +Where `{{RID}}` is either `linux-x64` or `linux-arm64`. + +We generate snap manifests in classic confinement mode and a .desktop file by default. + +If you wish to customize your snap manifest, you will need to pass the following MSBuild properties: + +- SnapManifest +- DesktopFile + +The `.desktop` filename MUST conform to the Desktop File spec. + +If you wish, you can generate a default snap manifest and desktop file by running the command above, then tweak them. + +> [!NOTE] +> .NET 9 publishing and cross-publishing are not supported as of Uno 5.5, we will support .NET 9 publishing soon. -- Once the build is done, the output is located in the `./publish` folder +## Limitations -## Publishing +- NativeAOT is not supported +- R2R is not supported +- Single file publish is not supported > [!NOTE] -> Work still in progress for publishing to some targets. +> Publishing is a work in progress -Publishing your app can be done through different means: +## Links -- [ClickOnce](https://learn.microsoft.com/visualstudio/deployment/quickstart-deploy-using-clickonce-folder?view=vs-2022) on Windows -- Using a Zip file, then running the app using `dotnet [yourapp].dll` +- [Snapcraft.yaml schema](https://snapcraft.io/docs/snapcraft-yaml-schema) +- [Desktop Entry Specification](https://specifications.freedesktop.org/desktop-entry-spec/latest) From 8e696610eed7e578668e44590a9719673f658eae Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Thu, 10 Oct 2024 16:14:25 -0400 Subject: [PATCH 024/205] chore: add tests against tp regressions (cherry picked from commit 9b70b992af73416119154cd39411036221a5c996) --- .../Given_VisualStateManager.cs | 49 +++++++++++++++++++ .../Windows_UI_Xaml_Controls/Given_Pivot.cs | 19 +++++++ 2 files changed, 68 insertions(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs index 3a51ccce3318..4c6567b05172 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs @@ -1,7 +1,15 @@ +using System; +using System.Linq; using System.Threading.Tasks; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Controls.Primitives; using Microsoft.UI.Xaml.Media; +using Microsoft.UI.Xaml.Shapes; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MUXControlsTestApp.Utilities; +using Uno.Extensions; +using Uno.UI.Extensions; using Uno.UI.RuntimeTests.Helpers; namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml; @@ -30,4 +38,45 @@ public async Task When_Transition_Modifies_SubProperty_Of_Property_Set_By_Previo await Task.Delay(1000); Assert.AreEqual(Microsoft.UI.Colors.Red, ((SolidColorBrush)border.Background).Color); } + + [TestMethod] + public async Task SelectorItem_SelectedState() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new GridView + { + ItemsSource = items, + SelectedItem = items.Last(), + }; + await UITestHelper.Load(setup); + + var container2 = setup.ContainerFromIndex(2) as GridViewItem ?? throw new Exception("Failed to retrieve container at index 2"); + + // check if the visual-state is set + var states = VisualStateHelper.GetCurrentVisualStateName(container2).ToArray(); + Assert.IsTrue(states.Contains("Selected"), $"container2 is not in 'Selected' state: states={states.JoinBy(",")}"); + } + + [TestMethod] + public Task SelectorItem_MultiSelectState_GV() => SelectorItem_MultiSelectState_Impl(); + + [TestMethod] + public Task SelectorItem_MultiSelectState_LV() => SelectorItem_MultiSelectState_Impl(); + + public async Task SelectorItem_MultiSelectState_Impl() where T : ListViewBase, new() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new T + { + ItemsSource = items, + SelectionMode = ListViewSelectionMode.Multiple, + }; + await UITestHelper.Load(setup); + + var container2 = setup.ContainerFromIndex(2) as SelectorItem ?? throw new Exception("Failed to retrieve container at index 2"); + + // check if the visual-state is set + var states = VisualStateHelper.GetCurrentVisualStateName(container2).ToArray(); + Assert.IsTrue(states.Contains("MultiSelectEnabled"), $"container2 is not in 'MultiSelectEnabled' state: states={states.JoinBy(",")}"); + } } diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs index aad9f8473787..32fc7b0a5aed 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs @@ -12,6 +12,7 @@ using static Private.Infrastructure.TestServices; using Uno.UI.Extensions; using Microsoft.UI.Xaml.Controls.Primitives; +using Uno.UI.RuntimeTests.Helpers; namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml_Controls { @@ -126,6 +127,24 @@ public async Task Check_Changing_SelectedItem_Affects_SelectedIndex() SUT.SelectedItem.Should().Be(pivotItem2); } + [TestMethod] + [RunsOnUIThread] + public async Task Pivot_Single_ItemContent_Visible() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new Pivot + { + ItemsSource = items, + SelectedItem = items.Last(), + }; + await UITestHelper.Load(setup); + + var containers = items.Select((x, i) => setup.ContainerFromIndex(i)).OfType().ToArray(); + + Assert.AreEqual(3, containers.Length, "Should have 3 containers"); + Assert.AreEqual(1, containers.Count(x => x.Visibility == Visibility.Visible), "Only one PivotItem should be visible"); + } + private class MyContext { public MyContext() From 222bf9e1afe949b5cd547f76011f4540f92af34c Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Fri, 11 Oct 2024 18:46:15 -0400 Subject: [PATCH 025/205] chore: ITemplatedParentProvider removal (cherry picked from commit 147c87997d9904667401aba20954e9a3f621ccdb) --- .../Given_DependencyObjectGenerator.cs | 24 +--- .../DependencyObjectGenerator.cs | 38 +------ .../TemplatedParent/Setup/BehaviorSetup.xaml | 19 ---- .../Setup/BehaviorSetup.xaml.cs | 106 ------------------ .../TemplatedParent/TemplatedParentTests.cs | 21 ---- .../Controls/NativeFramePresenter.iOS.cs | 15 +-- src/Uno.UI/DataBinding/BindingExpression.cs | 16 +-- .../DataBinding/ITemplatedParentProvider.cs | 28 ----- src/Uno.UI/NativeFramePresenter.Android.cs | 6 +- .../NativeScrollContentPresenter.iOS.cs | 2 +- .../UI/Xaml/DependencyObjectExtensions.cs | 10 ++ src/Uno.UI/UI/Xaml/FrameworkElement.cs | 9 ++ src/Uno.UI/UI/Xaml/TemplatedParentScope.cs | 15 ++- src/Uno.UI/UI/Xaml/VisualState.cs | 2 +- src/Uno.UI/UI/Xaml/VisualTransition.cs | 2 +- 15 files changed, 45 insertions(+), 268 deletions(-) delete mode 100644 src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml delete mode 100644 src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs delete mode 100644 src/Uno.UI/DataBinding/ITemplatedParentProvider.cs diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs index 731110a9ed7e..d0b5ac652ef3 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs @@ -159,7 +159,7 @@ internal partial class Inner : DependencyObject partial class OuterClass { [global::Microsoft.UI.Xaml.Data.Bindable] - partial class Inner : IDependencyObjectStoreProvider, ITemplatedParentProvider, IWeakReferenceProvider + partial class Inner : IDependencyObjectStoreProvider, IWeakReferenceProvider { private DependencyObjectStore __storeBackingField; public global::Windows.UI.Core.CoreDispatcher Dispatcher => global::Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher; @@ -185,28 +185,6 @@ private DependencyObjectStore __Store public object GetAnimationBaseValue(DependencyProperty dp) => __Store.GetAnimationBaseValue(dp); public long RegisterPropertyChangedCallback(DependencyProperty dp, DependencyPropertyChangedCallback callback) => __Store.RegisterPropertyChangedCallback(dp, callback); public void UnregisterPropertyChangedCallback(DependencyProperty dp, long token) => __Store.UnregisterPropertyChangedCallback(dp, token); - - [EditorBrowsable(EditorBrowsableState.Never)]private ManagedWeakReference _templatedParentWeakRef; - [EditorBrowsable(EditorBrowsableState.Never)]public ManagedWeakReference GetTemplatedParentWeakRef() => _templatedParentWeakRef; - - [EditorBrowsable(EditorBrowsableState.Never)]public DependencyObject GetTemplatedParent() => _templatedParentWeakRef?.Target as DependencyObject; - [EditorBrowsable(EditorBrowsableState.Never)]public void SetTemplatedParent(DependencyObject parent) - { - //if (parent != null) - //{ - // global::System.Diagnostics.Debug.Assert(parent - // is global::Windows.UI.Xaml.Controls.Control - // or global::Windows.UI.Xaml.Controls.ContentPresenter - // or global::Windows.UI.Xaml.Controls.ItemsPresenter); - // global::System.Diagnostics.Debug.Assert(GetTemplatedParent() == null); - //} - - SetTemplatedParentImpl(parent); - } - [EditorBrowsable(EditorBrowsableState.Never)]private protected virtual void SetTemplatedParentImpl(DependencyObject parent) - { - _templatedParentWeakRef = (parent as IWeakReferenceProvider)?.WeakReference; - } private readonly static IEventProvider _binderTrace = Tracing.Get(DependencyObjectStore.TraceProvider.Id); private BinderReferenceHolder _refHolder; diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs index 059614e4d766..9769dfb9e452 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs @@ -175,18 +175,15 @@ private void ProcessType(INamedTypeSymbol typeSymbol) } }; - var canBeTpProvider = !typeSymbol.Interfaces.Any(x => x.Name == "INotTemplatedParentProvider"); - var implementations = new string?[] { "IDependencyObjectStoreProvider", _isUnoSolution && !typeSymbol.IsSealed ? "IDependencyObjectInternal" : null, - canBeTpProvider ? "ITemplatedParentProvider" : null, "IWeakReferenceProvider", }.Where(x => x is not null); using (typeSymbol.AddToIndentedStringBuilder(builder, beforeClassHeaderAction, afterClassHeader: " : " + string.Join(", ", implementations))) { - GenerateDependencyObjectImplementation(typeSymbol, builder, hasDispatcherQueue: _dependencyObjectSymbol!.GetMembers("DispatcherQueue").Any(), canBeTpProvider); + GenerateDependencyObjectImplementation(typeSymbol, builder, hasDispatcherQueue: _dependencyObjectSymbol!.GetMembers("DispatcherQueue").Any()); GenerateIBinderImplementation(typeSymbol, builder); } @@ -768,7 +765,7 @@ public override bool Equals(object other) } } - private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, IndentedStringBuilder builder, bool hasDispatcherQueue, bool implTpProvider) + private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, IndentedStringBuilder builder, bool hasDispatcherQueue) { builder.AppendLineIndented(@"private DependencyObjectStore __storeBackingField;"); builder.AppendLineIndented(@"public global::Windows.UI.Core.CoreDispatcher Dispatcher => global::Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher;"); @@ -818,37 +815,6 @@ private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, builder.AppendLineIndented("internal virtual void OnPropertyChanged2(global::Microsoft.UI.Xaml.DependencyPropertyChangedEventArgs args) { }"); } } - - if (implTpProvider) - { - var unoBrowsableOnly = _isUnoSolution ? null : "[EditorBrowsable(EditorBrowsableState.Never)]"; - - builder.AppendLine(); - builder.AppendMultiLineIndented($$""" - {{unoBrowsableOnly}}private ManagedWeakReference _templatedParentWeakRef; - {{unoBrowsableOnly}}public ManagedWeakReference GetTemplatedParentWeakRef() => _templatedParentWeakRef; - - {{unoBrowsableOnly}}public DependencyObject GetTemplatedParent() => _templatedParentWeakRef?.Target as DependencyObject; - {{unoBrowsableOnly}}public void SetTemplatedParent(DependencyObject parent) - { - //if (parent != null) - //{ - // global::System.Diagnostics.Debug.Assert(parent - // is global::Windows.UI.Xaml.Controls.Control - // or global::Windows.UI.Xaml.Controls.ContentPresenter - // or global::Windows.UI.Xaml.Controls.ItemsPresenter); - // global::System.Diagnostics.Debug.Assert(GetTemplatedParent() == null); - //} - - SetTemplatedParentImpl(parent); - } - {{unoBrowsableOnly}}{{(typeSymbol.IsSealed ? "private" : "private protected virtual")}} void SetTemplatedParentImpl(DependencyObject parent) - { - _templatedParentWeakRef = (parent as IWeakReferenceProvider)?.WeakReference; - } - """ - ); - } } } } diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml deleted file mode 100644 index bfe83efffdbf..000000000000 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs deleted file mode 100644 index 4c515ab34c65..000000000000 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Diagnostics.CodeAnalysis; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -#if HAS_UNO -using Uno.UI.DataBinding; -#endif - -namespace Uno.UI.RuntimeTests.Tests.TemplatedParent.Setup; - -public sealed partial class BehaviorSetup : Page -{ - public BehaviorSetup() - { - this.InitializeComponent(); - } -} - -public sealed class Interaction -{ - #region DependencyProperty: Behaviors - - public static DependencyProperty BehaviorsProperty { get; } = DependencyProperty.RegisterAttached( - "Behaviors", - typeof(BehaviorCollection), - typeof(Interaction), - new PropertyMetadata(null, OnBehaviorsChanged)); - - public static BehaviorCollection GetBehaviors(DependencyObject obj) => GetBehaviorsOverride(obj); - public static void SetBehaviors(DependencyObject obj, BehaviorCollection value) => obj.SetValue(BehaviorsProperty, value); - - #endregion - - private static BehaviorCollection GetBehaviorsOverride(DependencyObject obj) - { - var value = (BehaviorCollection)obj.GetValue(BehaviorsProperty); - if (value is null) - { - obj.SetValue(BehaviorsProperty, value = new BehaviorCollection()); - } - - return value; - } - - private static void OnBehaviorsChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - if (e.NewValue is BehaviorCollection collection) - { - collection.AssociatedObject = sender; - } - } -} -public sealed class BehaviorCollection : DependencyObjectCollection -{ - public DependencyObject AssociatedObject { get; set; } -} - -public interface IBehavior { } - -public partial class LegacyDOBehavior : DependencyObject, IBehavior -#if HAS_UNO - , INotTemplatedParentProvider -#endif -{ - #region DependencyProperty: TestValue - - public static DependencyProperty TestValueProperty { get; } = DependencyProperty.Register( - nameof(TestValue), - typeof(object), - typeof(LegacyDOBehavior), - new PropertyMetadata(default(object), OnTestValueChanged)); - - public object TestValue - { - get => (object)GetValue(TestValueProperty); - set => SetValue(TestValueProperty, value); - } - - #endregion - - private static void OnTestValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - } -} -public partial class NonLegacyDOBehavior : DependencyObject, IBehavior -{ - #region DependencyProperty: TestValue - - public static DependencyProperty TestValueProperty { get; } = DependencyProperty.Register( - nameof(TestValue), - typeof(object), - typeof(NonLegacyDOBehavior), - new PropertyMetadata(default(object), OnTestValueChanged)); - - public object TestValue - { - get => (object)GetValue(TestValueProperty); - set => SetValue(TestValueProperty, value); - } - - #endregion - - private static void OnTestValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - } -} diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs index 2d2b4b02aeaa..a82b2487509d 100644 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs +++ b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs @@ -289,27 +289,6 @@ public async Task VisualStateGroup_TP_Inheritance() """; VerifyTree(expectations, setup, checkVSG: true); } - -#if HAS_UNO - [TestMethod] - public async Task LegacyDO_StillSupports_TP_Injection() - { - var setup = new BehaviorSetup(); - await UITestHelper.Load(setup, x => x.IsLoaded); - - var button = setup.Content as Button ?? throw new Exception("button not found"); - var grid = button.GetTemplateRoot() ?? throw new Exception("template root not found"); - var collection = Interaction.GetBehaviors(grid) ?? throw new Exception("behavior collection not found"); - - var sut0 = collection.ElementAtOrDefault(0) as LegacyDOBehavior; - - // Verify that "legacy DepObj"(DO from library built before templated-parent rework) - // 1. is simulated correctly via the "INotTemplatedParentProvider" blocker - Assert.IsNotInstanceOfType(sut0, "sut0 shouldnt impl ITemplatedParentProvider"); - // 2. still supports tp-injection. - Assert.AreEqual(button.Tag, sut0.TestValue, "sut0.TestValue template-binding failed"); - } -#endif } public partial class TemplatedParentTests // helper methods { diff --git a/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs b/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs index acf1b430333d..77ef99731c6f 100644 --- a/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs +++ b/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs @@ -16,6 +16,7 @@ using System.Collections.Specialized; using System.Threading.Tasks; using ObjCRuntime; +using Uno.UI.Extensions; namespace Uno.UI.Controls { @@ -88,19 +89,19 @@ public NativeFramePresenter() NavigationController.NavigationBarHidden = true; } + private protected override void OnLoaded() + { + base.OnLoaded(); + + InitializeController(this.GetTemplatedParent() as Frame); + } + protected override Size MeasureOverride(Size availableSize) => MeasureFirstChild(availableSize); protected override Size ArrangeOverride(Size finalSize) => ArrangeFirstChild(finalSize); - private protected override void SetTemplatedParentImpl(DependencyObject parent) - { - base.SetTemplatedParentImpl(parent); - - InitializeController(parent as Frame); - } - /// /// Exposes the underlying instance used to display this frame presenter. /// diff --git a/src/Uno.UI/DataBinding/BindingExpression.cs b/src/Uno.UI/DataBinding/BindingExpression.cs index ec18e118ad06..6a57eb0b2eb7 100644 --- a/src/Uno.UI/DataBinding/BindingExpression.cs +++ b/src/Uno.UI/DataBinding/BindingExpression.cs @@ -54,13 +54,7 @@ public object DataContext { if (ParentBinding.IsTemplateBinding) { - return _view?.Target switch - { - ITemplatedParentProvider tpProvider => tpProvider.GetTemplatedParent(), - IDependencyObjectStoreProvider dosProvider => dosProvider.Store.GetTemplatedParent2(), - - _ => null, - }; + return (_view?.Target as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); } if (_isElementNameSource || ExplicitSource != null) { @@ -157,13 +151,7 @@ Binding binding private ManagedWeakReference GetWeakTemplatedParent() { - return _view?.Target switch - { - ITemplatedParentProvider tpProvider => tpProvider.GetTemplatedParentWeakRef(), - IDependencyObjectStoreProvider dosProvider => dosProvider.Store.GetTemplatedParentWeakRef(), - - _ => null, - }; + return (_view?.Target as IDependencyObjectStoreProvider)?.Store.GetTemplatedParentWeakRef(); } private ManagedWeakReference GetWeakDataContext() diff --git a/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs b/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs deleted file mode 100644 index c307f4f02ff3..000000000000 --- a/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.UI.Xaml; - -namespace Uno.UI.DataBinding; - -[EditorBrowsable(EditorBrowsableState.Never)] -public interface ITemplatedParentProvider -{ - ManagedWeakReference GetTemplatedParentWeakRef(); - - DependencyObject GetTemplatedParent(); - - void SetTemplatedParent(DependencyObject parent); -} - -[EditorBrowsable(EditorBrowsableState.Never)] -/// -/// Marker interface used to block DependencyObjectGenerator -/// from injecting and its implementations. -/// -public interface INotTemplatedParentProvider -{ -} diff --git a/src/Uno.UI/NativeFramePresenter.Android.cs b/src/Uno.UI/NativeFramePresenter.Android.cs index 0729cfbfda17..c031e4abb882 100644 --- a/src/Uno.UI/NativeFramePresenter.Android.cs +++ b/src/Uno.UI/NativeFramePresenter.Android.cs @@ -38,11 +38,11 @@ public NativeFramePresenter() _pageStack = this; } - private protected override void SetTemplatedParentImpl(DependencyObject parent) + private protected override void OnLoaded() { - base.SetTemplatedParentImpl(parent); + base.OnLoaded(); - Initialize(parent as Frame); + Initialize(this.GetTemplatedParent() as Frame); } private void Initialize(Frame frame) diff --git a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs index 8b42f95b8eaf..89a8be2e9f67 100644 --- a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs +++ b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs @@ -107,7 +107,7 @@ private void InvokeOnScroll() scroller.Presenter.OnNativeScroll(clampedOffset.X, clampedOffset.Y, isIntermediate: _isInAnimatedScroll); } - private ScrollViewer GetParentScrollViewer() => _scrollViewer.TryGetTarget(out var s) ? s : GetTemplatedParent() as ScrollViewer; + private ScrollViewer GetParentScrollViewer() => _scrollViewer.TryGetTarget(out var s) ? s : this.GetTemplatedParent() as ScrollViewer; // Called when user starts dragging private void OnDraggingStarted(object sender, EventArgs e) diff --git a/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs b/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs index 0036e8a9d464..c3d0de4a08be 100644 --- a/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs +++ b/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs @@ -448,5 +448,15 @@ internal static void RegisterPropertyChangedCallbackStrong(this IDependencyObjec // allows for some customization - e.g. glyphs should not respect this. internal static bool IsRightToLeft(this DependencyObject dependencyObject) => dependencyObject is FrameworkElement fw && fw.FlowDirection == FlowDirection.RightToLeft; + + internal static DependencyObject GetTemplatedParent(this DependencyObject @do) + { + return (@do as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); + } + + internal static void SetTemplatedParent(this DependencyObject @do, DependencyObject tp) + { + (@do as IDependencyObjectStoreProvider)?.Store.SetTemplatedParent2(tp); + } } } diff --git a/src/Uno.UI/UI/Xaml/FrameworkElement.cs b/src/Uno.UI/UI/Xaml/FrameworkElement.cs index 1cceaf162fe0..cd0f17591dde 100644 --- a/src/Uno.UI/UI/Xaml/FrameworkElement.cs +++ b/src/Uno.UI/UI/Xaml/FrameworkElement.cs @@ -1085,5 +1085,14 @@ private protected virtual bool HasTemplateChild() return null; } + + internal DependencyObject GetTemplatedParent() + { + return (this as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); + } + internal void SetTemplatedParent(DependencyObject tp) + { + (this as IDependencyObjectStoreProvider)?.Store.SetTemplatedParent2(tp); + } } } diff --git a/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs b/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs index 2d85062f360c..abfc2351690d 100644 --- a/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs +++ b/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs @@ -15,8 +15,11 @@ internal static class TemplatedParentScope /// Set the templated-parent for the dependency-object based on the currently materializing template. /// /// Should be true, if not called from ctor. + /// internal static void UpdateTemplatedParentIfNeeded(DependencyObject? @do, bool reapplyTemplateBindings = false, DependencyObjectStore? store = null) { + // note: `store` instance is used within DOStore.ctor to avoid stack overflow. + if (@do is null) return; if (GetCurrentTemplate() is { IsLegacyTemplate: true, TemplatedParent: { } tp }) { @@ -26,22 +29,18 @@ internal static void UpdateTemplatedParentIfNeeded(DependencyObject? @do, bool r internal static void UpdateTemplatedParent(DependencyObject? @do, DependencyObject tp, bool reapplyTemplateBindings = true, DependencyObjectStore? store = null) { - if (@do is ITemplatedParentProvider tpProvider) + if (@do is IDependencyObjectStoreProvider provider) { - tpProvider.SetTemplatedParent(tp); + (store ?? provider.Store).SetTemplatedParent2(tp); // note: This can be safely removed, once moving away from legacy impl. // In the new impl, the templated-parent would be immediately available // before any binding is applied, so there is no need to force update. - if (reapplyTemplateBindings && @do is IDependencyObjectStoreProvider dosProvider) + if (reapplyTemplateBindings) { - (store ?? dosProvider.Store).ApplyTemplateBindings(); + (store ?? provider.Store).ApplyTemplateBindings(); } } - else if (@do is IDependencyObjectStoreProvider dosProvider) - { - (store ?? dosProvider.Store).SetTemplatedParent2(tp); - } } internal static MaterializingTemplateInfo? GetCurrentTemplate() diff --git a/src/Uno.UI/UI/Xaml/VisualState.cs b/src/Uno.UI/UI/Xaml/VisualState.cs index 6f41073e312a..5dafa8649b72 100644 --- a/src/Uno.UI/UI/Xaml/VisualState.cs +++ b/src/Uno.UI/UI/Xaml/VisualState.cs @@ -165,7 +165,7 @@ private void EnsureMaterialized() LazyBuilder = null; try { - TemplatedParentScope.PushScope(GetTemplatedParent(), FromLegacyTemplate == true); + TemplatedParentScope.PushScope(this.GetTemplatedParent(), FromLegacyTemplate == true); builder.Invoke(); } finally diff --git a/src/Uno.UI/UI/Xaml/VisualTransition.cs b/src/Uno.UI/UI/Xaml/VisualTransition.cs index 2b4c5788ddb3..8d66b875799c 100644 --- a/src/Uno.UI/UI/Xaml/VisualTransition.cs +++ b/src/Uno.UI/UI/Xaml/VisualTransition.cs @@ -51,7 +51,7 @@ private void EnsureMaterialized() LazyBuilder = null; try { - TemplatedParentScope.PushScope(GetTemplatedParent(), FromLegacyTemplate == true); + TemplatedParentScope.PushScope(this.GetTemplatedParent(), FromLegacyTemplate == true); builder.Invoke(); } finally From a3b61465271fd2aeb0f8722f3fac204192587e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 12 Oct 2024 11:46:10 -0400 Subject: [PATCH 026/205] chore: Adjust for GetTP new location (cherry picked from commit 08691ec485c8008bfc60d11e038f9e930bf63018) --- src/Uno.UI.Maps/MapPresenter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.Maps/MapPresenter.cs b/src/Uno.UI.Maps/MapPresenter.cs index 9834068782a9..b3bd76863c74 100644 --- a/src/Uno.UI.Maps/MapPresenter.cs +++ b/src/Uno.UI.Maps/MapPresenter.cs @@ -25,7 +25,7 @@ private void UpdateOwnerSubscriptions() { _ownerSubscription.Disposable = null; - _owner = GetTemplatedParent() as MapControl; + _owner = this.GetTemplatedParent() as MapControl; if (_owner != null) { From 98b86ef18590648e592ccec2c2c522925189f0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 12 Oct 2024 21:42:37 -0400 Subject: [PATCH 027/205] chore: Adjust maps dependency (cherry picked from commit f3c3de2c144551647f20cc19c2e0fcd827ace54c) --- src/Uno.UI/AssemblyInfo.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Uno.UI/AssemblyInfo.cs b/src/Uno.UI/AssemblyInfo.cs index 0c1a21251bd8..0197304d873a 100644 --- a/src/Uno.UI/AssemblyInfo.cs +++ b/src/Uno.UI/AssemblyInfo.cs @@ -16,6 +16,7 @@ [assembly: InternalsVisibleTo("Uno.UI.Svg")] [assembly: InternalsVisibleTo("Uno.UI.Svg.Skia")] [assembly: InternalsVisibleTo("Uno.UI.XamlHost")] +[assembly: InternalsVisibleTo("Uno.UI.Maps")] [assembly: InternalsVisibleTo("SamplesApp")] [assembly: InternalsVisibleTo("SamplesApp.Droid")] [assembly: InternalsVisibleTo("SamplesApp.macOS")] From 5813d5b9abef3fae4424081ad38f32c195f17e41 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 14 Oct 2024 15:02:02 -0400 Subject: [PATCH 028/205] fix: Allow properties to be multi-lines (cherry picked from commit 78fa7d78945c46490653c262fe234f3e67d7e95d) --- src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 9d170b757ef2..5f72349877e1 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -20,6 +20,7 @@ public static IImmutableList Discover(string solutionFile) var targetFrameworks = GetConfigurationValue(result.output ?? "", "TargetFrameworks") .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) .Select(tfm => tfm.Trim()) + .Where(tfm => tfm is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); @@ -50,6 +51,7 @@ public static IImmutableList Discover(string solutionFile) var addIns = GetConfigurationValue(result.output, "RemoteControlAddIns") .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) .Select(tfm => tfm.Trim()) + .Where(tfm => tfm is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); @@ -69,7 +71,7 @@ public static IImmutableList Discover(string solutionFile) private static IEnumerable GetConfigurationValue(string msbuildResult, string nodeName) => Regex - .Matches(msbuildResult, $"<{nodeName}>(?.*)") + .Matches(msbuildResult, $"<{nodeName}>(?[^\\<\\>]*)", RegexOptions.Singleline) .Where(match => match.Success) .Select(match => match.Groups["value"].Value); } From 23d02cbf03df9628aecf8ddd6f0eac680c2e8380 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Tue, 15 Oct 2024 22:59:49 -0400 Subject: [PATCH 029/205] feat: Enhance Linux, Windows and macOS packaging support (cherry picked from commit ddbdbbba8b9e9ee008725700a3ca3f1fff778c31) --- .../.azure-devops-project-template-tests.yml | 28 ++- .../templates/dotnet-mobile-install-linux.yml | 3 +- .../test-scripts/run-net7-template-linux.ps1 | 70 ++++--- .../run-netcore-mobile-template-tests.ps1 | 179 ++++++++++-------- .../uno53net9blank/uno53net9blank.csproj | 14 ++ src/Uno.Sdk/Sdk/Sdk.props.buildschema.json | 4 + src/Uno.Sdk/Services/PackageManifest.cs | 1 + src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs | 5 +- src/Uno.Sdk/packages.json | 7 + ...no.Implicit.Packages.ProjectSystem.targets | 1 + .../targets/Uno.Implicit.Packages.targets | 1 + 11 files changed, 199 insertions(+), 114 deletions(-) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index a2b8432496e9..6ea10c23a45d 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -22,6 +22,8 @@ jobs: TestGroup: '2' group_3: TestGroup: '3' + group_4: + TestGroup: '4' steps: - task: DownloadBuildArtifacts@0 @@ -71,6 +73,8 @@ jobs: TestGroup: '2' group_3: TestGroup: '3' + group_4: + TestGroup: '4' steps: - task: DownloadBuildArtifacts@0 @@ -107,8 +111,6 @@ jobs: pool: ${{ parameters.vmPoolLinux }} - container: unoplatform/wasm-build:2.3 - strategy: matrix: group_0: @@ -134,6 +136,28 @@ jobs: - template: templates/dotnet-install.yml + - bash: | + set -x + + sudo snap install core24 + sudo snap install lxd + sudo snap install multipass + sudo snap install snapcraft --classic + + export PATH=$PATH:/snap/bin + sudo chown root:root / + sudo /snap/bin/lxd.migrate -yes + sudo /snap/bin/lxd waitready + sudo /snap/bin/lxd init --auto + + echo Adding $USER to group lxd + sudo usermod --append --groups lxd $USER + + sudo apt install iptables + sudo iptables -I DOCKER-USER -i lxdbr0 -j ACCEPT + sudo iptables -I DOCKER-USER -o lxdbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT + displayName: Setup Snapcraft + - pwsh: build/test-scripts/run-net7-template-linux.ps1 -TestGroup "$(TestGroup)" displayName: Run Project Templates Tests env: diff --git a/build/ci/templates/dotnet-mobile-install-linux.yml b/build/ci/templates/dotnet-mobile-install-linux.yml index 4e5d6525c58f..869700aa2261 100644 --- a/build/ci/templates/dotnet-mobile-install-linux.yml +++ b/build/ci/templates/dotnet-mobile-install-linux.yml @@ -12,11 +12,12 @@ steps: sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install -y msopenjdk-11 + sudo update-java-alternatives --set msopenjdk-11-amd64 displayName: Install OpenJDK 11 retryCountOnTaskFailure: 3 - bash: | dotnet tool update --global uno.check --version ${{ parameters.UnoCheck_Version }} --add-source https://api.nuget.org/v3/index.json - uno-check --ci --non-interactive --fix --skip gtk3 --skip androidsdk --pre-major + uno-check --verbose --ci --non-interactive --fix --skip gtk3 --skip androidsdk --pre-major displayName: Install .NET Workloads retryCountOnTaskFailure: 3 diff --git a/build/test-scripts/run-net7-template-linux.ps1 b/build/test-scripts/run-net7-template-linux.ps1 index ecfff12045fa..4d92516b0629 100644 --- a/build/test-scripts/run-net7-template-linux.ps1 +++ b/build/test-scripts/run-net7-template-linux.ps1 @@ -37,48 +37,52 @@ Get-ChildItem -Recurse -Filter global.json | ForEach-Object { $projects = @( # 5.0 and earlier - @(0, "UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Wasm/UnoAppWinUILinuxValidation.Wasm.csproj", ""), - @(0, "UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.Gtk/UnoAppWinUILinuxValidation.Skia.Gtk.csproj", ""), - @(0, "UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.Linux.FrameBuffer/UnoAppWinUILinuxValidation.Skia.Linux.FrameBuffer.csproj", ""), + @(0, "UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Wasm/UnoAppWinUILinuxValidation.Wasm.csproj", @(), @()), + @(0, "UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.Gtk/UnoAppWinUILinuxValidation.Skia.Gtk.csproj", @(), @()), + @(0, "UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.Linux.FrameBuffer/UnoAppWinUILinuxValidation.Skia.Linux.FrameBuffer.csproj", @(), @()), # 5.1 Blank - @(0, "5.1/uno51blank/uno51blank.Skia.Gtk/uno51blank.Skia.Gtk.csproj", ""), - @(0, "5.1/uno51blank/uno51blank.Skia.Linux.FrameBuffer/uno51blank.Skia.Linux.FrameBuffer.csproj", ""), - @(0, "5.1/uno51blank/uno51blank.Skia.WPF/uno51blank.Skia.WPF.csproj", ""), - @(0, "5.1/uno51blank/uno51blank.Wasm/uno51blank.Wasm.csproj", ""), + @(0, "5.1/uno51blank/uno51blank.Skia.Gtk/uno51blank.Skia.Gtk.csproj", @(), @()), + @(0, "5.1/uno51blank/uno51blank.Skia.Linux.FrameBuffer/uno51blank.Skia.Linux.FrameBuffer.csproj", @(), @()), + @(0, "5.1/uno51blank/uno51blank.Skia.WPF/uno51blank.Skia.WPF.csproj", @(), @()), + @(0, "5.1/uno51blank/uno51blank.Wasm/uno51blank.Wasm.csproj", @(), @()), # 5.1 Recommended - @(0, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", ""), - @(0, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", ""), - @(0, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", ""), - @(0, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", ""), - @(0, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", ""), - @(0, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", ""), - @(0, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", ""), + @(0, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", @(), @()), + @(0, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", @(), @()), + @(0, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", @(), @()), + @(0, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", @(), @()), + @(0, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", @(), @()), + @(0, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", @(), @()), + @(0, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", @(), @()), # 5.2 Blank - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", ""), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @(), @()), # 5.2 Blank SkiaSharp 3 - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:SkiaSharpVersion=3.0.0-preview.3.1"), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:SkiaSharpVersion=3.0.0-preview.3.1"), @()), # 5.2 Blank GLCanvas - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:UnoFeatures=GLCanvas"), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:UnoFeatures=GLCanvas"), @()), # 5.2 Uno Lib - @(1, "5.2/uno52Lib/uno52Lib.csproj", ""), + @(1, "5.2/uno52Lib/uno52Lib.csproj", @(), @()), # 5.2 Uno NuGet Lib - @(1, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", ""), + @(1, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @()), # 5.2 Uno SingleProject Lib - @(1, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", ""), + @(1, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @(), @()), # 5.2 Uno App with Library reference - @(1, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", ""), + @(1, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @(), @()), # 5.3 Blank with net9 - @(2, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", "") + @(2, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()) + + # 5.3 blank publish testing + # Disabled for LXD setup issues + # @(2, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f:net9.0-desktop", "-p:SelfContained=true", "-p:PackageFormat=snap"), @("Publish")) ## Note for contributors ## @@ -90,7 +94,10 @@ for($i = 0; $i -lt $projects.Length; $i++) { $projectTestGroup=$projects[$i][0]; $projectPath=$projects[$i][1]; - $projectOptions=$projects[$i][2]; + $projectParameters=$projects[$i][2]; + + $buildOptions=$projects[$i][3]; + $usePublish = $buildOptions -contains "Publish" if ($TestGroup -ne $projectTestGroup) { @@ -98,14 +105,19 @@ for($i = 0; $i -lt $projects.Length; $i++) continue } - Write-Host "Building Debug $projectPath with $projectOptions" - dotnet build $debug "$projectPath" $projectOptions -bl:binlogs/$projectPath/debug.binlog - Assert-ExitCodeIsZero + if(!$usePublish) + { + Write-Host "Building Debug $projectPath with $projectParameters" + dotnet build $debug "$projectPath" $projectParameters -bl:binlogs/$projectPath/$i/debug.binlog + Assert-ExitCodeIsZero + + dotnet clean $debug "$projectPath" + } - dotnet clean $debug "$projectPath" + $dotnetCommand = $usePublish ? "publish" : "build" - Write-Host "Building Release $projectPath with $projectOptions" - dotnet build $release "$projectPath" $projectOptions -bl:binlogs/$projectPath/release.binlog + Write-Host "Building Release $projectPath with $projectParameters" + dotnet $dotnetCommand $release "$projectPath" $projectParameters -bl:binlogs/$projectPath/$i/release.binlog Assert-ExitCodeIsZero dotnet clean $release "$projectPath" diff --git a/build/test-scripts/run-netcore-mobile-template-tests.ps1 b/build/test-scripts/run-netcore-mobile-template-tests.ps1 index 858cf4ef3039..f5321ab109e4 100644 --- a/build/test-scripts/run-netcore-mobile-template-tests.ps1 +++ b/build/test-scripts/run-netcore-mobile-template-tests.ps1 @@ -229,117 +229,120 @@ $projects = # # 5.1 Blank # - @(1, "5.1/uno51blank/uno51blank.Mobile/uno51blank.Mobile.csproj", "", $true, $true), - @(1, "5.1/uno51blank/uno51blank.Skia.Gtk/uno51blank.Skia.Gtk.csproj", "", $true, $true), - @(1, "5.1/uno51blank/uno51blank.Skia.Linux.FrameBuffer/uno51blank.Skia.Linux.FrameBuffer.csproj", "", $true, $true), - @(1, "5.1/uno51blank/uno51blank.Skia.Wpf/uno51blank.Skia.Wpf.csproj", "", $true, $false), - @(1, "5.1/uno51blank/uno51blank.Wasm/uno51blank.Wasm.csproj", "", $true, $false), + @(1, "5.1/uno51blank/uno51blank.Mobile/uno51blank.Mobile.csproj", "", @("macOS", "NetCore")), + @(1, "5.1/uno51blank/uno51blank.Skia.Gtk/uno51blank.Skia.Gtk.csproj", "", @("macOS", "NetCore")), + @(1, "5.1/uno51blank/uno51blank.Skia.Linux.FrameBuffer/uno51blank.Skia.Linux.FrameBuffer.csproj", "", @("macOS", "NetCore")), + @(1, "5.1/uno51blank/uno51blank.Skia.Wpf/uno51blank.Skia.Wpf.csproj", "", @("NetCore")), + @(1, "5.1/uno51blank/uno51blank.Wasm/uno51blank.Wasm.csproj", "", @("NetCore")), # disabled on windows until android 35 is supported in the installed VS instance - # @("5.1/uno51blank/uno51blank.Windows/uno51blank.Windows.csproj", "", $false, $false), + # @("5.1/uno51blank/uno51blank.Windows/uno51blank.Windows.csproj", "", @()), # # 5.1 Recommended # - @(1, "5.1/uno51recommended/uno51recommended.Mobile/uno51recommended.Mobile.csproj", "", $true, $true), + @(1, "5.1/uno51recommended/uno51recommended.Mobile/uno51recommended.Mobile.csproj", "", @("macOS", "NetCore")), # disabled on windows until android 35 is supported in the installed VS instance - # @("5.1/uno51recommended/uno51recommended.Windows/uno51recommended.Windows.csproj", "", $false, $false), + # @("5.1/uno51recommended/uno51recommended.Windows/uno51recommended.Windows.csproj", "", @()), - @(1, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", "", $true, $true), - @(1, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", "", $true, $true), - @(1, "5.1/uno51recommended/uno51recommended.Skia.Wpf/uno51recommended.Skia.Wpf.csproj", "", $true, $false), - @(1, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", "", $true, $false), - @(1, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", "", $true, $false), - @(1, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", "", $true, $true), - @(1, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", "", $true, $true), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", "", @("macOS", "NetCore")), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", "", @("macOS", "NetCore")), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Wpf/uno51recommended.Skia.Wpf.csproj", "", @("NetCore")), + @(1, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", "", @("NetCore")), + @(1, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", "", @("NetCore")), + @(1, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", "", @("macOS", "NetCore")), + @(1, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", "", @("macOS", "NetCore")), # # 5.2 Blank # - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0"), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0", $sdkFeatures), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-browserwasm"), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-browserwasm", $sdkFeatures), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-ios"), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-ios", $sdkFeatures), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-android"), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-android", $sdkFeatures), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-maccatalyst"), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-maccatalyst", $sdkFeatures), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-desktop"), $true, $true), - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-desktop", $sdkFeatures), $true, $true), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0"), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0", $sdkFeatures), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-browserwasm"), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-browserwasm", $sdkFeatures), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-ios"), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-ios", $sdkFeatures), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-android"), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-android", $sdkFeatures), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-maccatalyst"), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-maccatalyst", $sdkFeatures), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-desktop"), @("macOS", "NetCore")), + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), $false, $false), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.19041"), $false, $false), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), # Ensure that default without platform builds properly - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.19041"), $false, $false), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.19041"), @()), # Validate building inside VS - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true"), $true, $false), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-desktop"), $true, $false), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.19041"), $false, $false), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true"), @("NetCore")), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-desktop"), @("NetCore")), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.19041"), @()), # # 5.2 Uno Lib # - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0"), $true, $true), - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-browserwasm"), $true, $true), - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-ios"), $true, $true), - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-android"), $true, $true), - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-maccatalyst"), $true, $true), - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-desktop"), $true, $true), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0"), @("macOS", "NetCore")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-browserwasm"), @("macOS", "NetCore")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-ios"), @("macOS", "NetCore")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-android"), @("macOS", "NetCore")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-maccatalyst"), @("macOS", "NetCore")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-desktop"), @("macOS", "NetCore")), - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-browserwasm", "-p:ImplicitUsings=disable"), $true, $true), - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-desktop", "-p:ImplicitUsings=disable"), $true, $true), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-browserwasm", "-p:ImplicitUsings=disable"), @("macOS", "NetCore")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-f", "net8.0-desktop", "-p:ImplicitUsings=disable"), @("macOS", "NetCore")), # # 5.2 Uno NuGet Lib # - @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), $true, $true), + @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), $false, $true), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @("macOS")), # # 5.2 Uno SingleProject Lib # - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0"), $true, $true), - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-browserwasm"), $true, $true), - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-ios"), $true, $true), - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-android"), $true, $true), - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-maccatalyst"), $true, $true), - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-desktop"), $true, $true), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0"), @("macOS", "NetCore")), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-browserwasm"), @("macOS", "NetCore")), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-ios"), @("macOS", "NetCore")), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-android"), @("macOS", "NetCore")), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-maccatalyst"), @("macOS", "NetCore")), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-desktop"), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), $false, $false), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), # 5.2 Uno App with Library reference - @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0"), $true, $true), - @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-browserwasm"), $true, $true), - @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-ios"), $true, $true), - @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-android"), $true, $true), - @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-maccatalyst"), $true, $true), - @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-desktop"), $true, $true), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0"), @("macOS", "NetCore")), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-browserwasm"), @("macOS", "NetCore")), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-ios"), @("macOS", "NetCore")), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-android"), @("macOS", "NetCore")), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-maccatalyst"), @("macOS", "NetCore")), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0-desktop"), @("macOS", "NetCore")), + + # 5.3 Uno App with net9 + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0"), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0", $sdkFeatures), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-browserwasm"), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-browserwasm", $sdkFeatures), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-ios"), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-ios", $sdkFeatures), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-android"), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-android", $sdkFeatures), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-maccatalyst"), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-maccatalyst", $sdkFeatures), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop"), @("macOS", "NetCore")), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), $false, $false), + @(4, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), - # 5.3 Uno App with net9 - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0"), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0", $sdkFeatures), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-browserwasm"), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-browserwasm", $sdkFeatures), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-ios"), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-ios", $sdkFeatures), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-android"), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-android", $sdkFeatures), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-maccatalyst"), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-maccatalyst", $sdkFeatures), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop"), $true, $true), - @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", $sdkFeatures), $true, $true) + # Publishing validation + @(4, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", "-p:PackageFormat=app"), @("OnlyMacOS", "NetCore", "Publish")) ## Note for contributors ## @@ -352,8 +355,11 @@ for($i = 0; $i -lt $projects.Length; $i++) $projectTestGroup=$projects[$i][0]; $projectPath=$projects[$i][1]; $projectOptions=$projects[$i][2]; - $buildWithNetCore=$projects[$i][3]; - $runOnMacOS=$projects[$i][4]; + $buildOptions=$projects[$i][3]; + $runOnMacOS = $buildOptions -contains "macOS" + $runOnlyOnMacOS = $buildOptions -contains "OnlyMacOS" + $buildWithNetCore = $buildOptions -contains "NetCore" + $usePublish = $buildOptions -contains "Publish" if ($TestGroup -ne $projectTestGroup) { @@ -361,25 +367,36 @@ for($i = 0; $i -lt $projects.Length; $i++) continue } - if ($IsMacOS -and -not $runOnMacOS) + if ($IsMacOS -and -not $runOnMacOS -and -not $runOnlyOnMacOS) { Write-Host "Skipping on macOS: $projectPath with $projectOptions" continue } + if (!$IsMacOS -and $runOnlyOnMacOS) + { + Write-Host "Skipping on Windows: $projectPath with $projectOptions" + continue + } + if ($buildWithNetCore) { - Write-Host "NetCore Building Debug $projectPath with $projectOptions" - dotnet build $debug "$projectPath" $projectOptions -bl:binlogs/$projectPath/$i/debug/msbuild.binlog - Assert-ExitCodeIsZero + if(!$usePublish) + { + Write-Host "NetCore Building Debug $projectPath with $projectOptions" + dotnet build $debug "$projectPath" $projectOptions -bl:binlogs/$projectPath/$i/debug/msbuild.binlog + Assert-ExitCodeIsZero + + dotnet clean $debug "$projectPath" + } - dotnet clean $debug "$projectPath" + $dotnetCommand = $usePublish ? "publish" : "build" Write-Host "NetCore Building Release $projectPath with $projectOptions" - dotnet build $release "$projectPath" $projectOptions -bl:binlogs/$projectPath/$i/release/msbuild.binlog + dotnet $dotnetCommand $release "$projectPath" $projectOptions -bl:binlogs/$projectPath/$i/release/msbuild.binlog Assert-ExitCodeIsZero - dotnet clean $release "$projectPath" + dotnet clean $release $projectOptions "$projectPath" } else { @@ -389,10 +406,10 @@ for($i = 0; $i -lt $projects.Length; $i++) & $msbuild $debug /r "$projectPath" $projectOptions Assert-ExitCodeIsZero - & $msbuild $debug /r /t:Clean "$projectPath" + & $msbuild $debug /r /t:Clean "$projectPath" /bl:binlogs/$projectPath/$i/release/msbuild.binlog Write-Host "MSBuild Building Release $projectPath with $projectOptions" - & $msbuild $release /r "$projectPath" $projectOptions + & $msbuild $release /r "$projectPath" $projectOptions /bl:binlogs/$projectPath/$i/release/msbuild.binlog Assert-ExitCodeIsZero & $msbuild $release /r /t:Clean "$projectPath" diff --git a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj index 9ee7dfcea859..f2c9bb783cee 100644 --- a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj +++ b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj @@ -47,6 +47,20 @@ + + + + + <_AssetsToValidate Include="$(PublishDir)$(AssemblyName).app" /> + + + + + + diff --git a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json index 2eccb69242cc..3c1b7dca0d38 100644 --- a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json +++ b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json @@ -226,6 +226,10 @@ "description": "Provides an explicit override for the version of Uno.Resizetizer to use.", "type": "nuget-version" }, + "UnoSdkExtrasVersion": { + "description": "Provides an explicit override for the version of Uno.Sdk.Extras to use.", + "type": "nuget-version" + }, "MicrosoftLoggingVersion": { "description": "Provides an explicit override for the version of Microsoft.Extensions.Logging to use.", "type": "nuget-version" diff --git a/src/Uno.Sdk/Services/PackageManifest.cs b/src/Uno.Sdk/Services/PackageManifest.cs index c6a6487322a2..d99e376f062c 100644 --- a/src/Uno.Sdk/Services/PackageManifest.cs +++ b/src/Uno.Sdk/Services/PackageManifest.cs @@ -136,6 +136,7 @@ public class Group public const string UniversalImageLoading = nameof(UniversalImageLoading); public const string Dsp = nameof(Dsp); public const string Resizetizer = nameof(Resizetizer); + public const string SdkExtras = nameof(SdkExtras); public const string SkiaSharp = nameof(SkiaSharp); public const string SvgSkia = nameof(SvgSkia); public const string WinAppSdk = nameof(WinAppSdk); diff --git a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs index 44ee5c76b834..8480a3f2d0f0 100644 --- a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs +++ b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs @@ -81,6 +81,8 @@ public sealed class ImplicitPackagesResolver_v0 : Task public string? UnoResizetizerVersion { get; set; } + public string? UnoSdkExtrasVersion { get; set; } + public string? MicrosoftLoggingVersion { get; set; } public string? WinAppSdkVersion { get; set; } @@ -239,7 +241,8 @@ private void SetupRuntimePackageManifestUpdates(PackageManifest manifest) .UpdateManifest(PackageManifest.Group.CoreLogging, UnoCoreLoggingSingletonVersion) .UpdateManifest(PackageManifest.Group.UniversalImageLoading, UnoUniversalImageLoaderVersion) .UpdateManifest(PackageManifest.Group.Dsp, UnoDspTasksVersion) - .UpdateManifest(PackageManifest.Group.Resizetizer, UnoResizetizerVersion) + .UpdateManifest(PackageManifest.Group.Resizetizer, UnoSdkExtrasVersion) + .UpdateManifest(PackageManifest.Group.SdkExtras, UnoResizetizerVersion) .UpdateManifest(PackageManifest.Group.SkiaSharp, SkiaSharpVersion) .UpdateManifest(PackageManifest.Group.SvgSkia, SvgSkiaVersion) .UpdateManifest(PackageManifest.Group.WinAppSdk, WinAppSdkVersion) diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index 855c8b41dd3a..129b413c1282 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -71,6 +71,13 @@ "Uno.Resizetizer" ] }, + { + "group": "sdkextras", + "version": "5.5-dev.26", + "packages": [ + "Uno.Sdk.Extras" + ] + }, { "group": "SkiaSharp", "version": "2.88.8", diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index aeeee213a0ae..dc14ddb8ef41 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -7,6 +7,7 @@ <_UnoProjectSystemPackageReference Include="Uno.WinUI" ProjectSystem="true" /> <_UnoProjectSystemPackageReference Include="Uno.Resizetizer" ProjectSystem="true" PrivateAssets="all" /> + <_UnoProjectSystemPackageReference Include="Uno.Sdk.Extras" ProjectSystem="true" PrivateAssets="all" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets index 1bf445b5c58d..e0ed51ca471a 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets @@ -61,6 +61,7 @@ AndroidXBrowserVersion="@(AndroidXBrowserVersion)" AndroidXSwipeRefreshLayoutVersion="@(AndroidXSwipeRefreshLayoutVersion)" UnoResizetizerVersion="$(UnoResizetizerVersion)" + UnoSdkExtrasVersion="$(UnoSdkExtrasVersion)" MicrosoftLoggingVersion="$(MicrosoftLoggingVersion)" WinAppSdkVersion="$(WinAppSdkVersion)" WinAppSdkBuildToolsVersion="$(WinAppSdkBuildToolsVersion)" From 78397491c4864251647b5143291de9c157c792c0 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 15 Oct 2024 14:23:37 +0200 Subject: [PATCH 030/205] fix: Dismiss the photo picker view controller to return to the app earlier (cherry picked from commit afc3bf5cde97aaf4f2cb974cf622b038545fb7fb) --- src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs b/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs index 848d2daa354c..a099da4a6b29 100644 --- a/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs +++ b/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs @@ -128,7 +128,8 @@ private async Task PickFilesAsync(bool multiple, C var files = await completionSource.Task; - rootController.DismissViewController(true, null); + // Dismiss if still shown + viewController.DismissViewController(true, null); if (files is null || files.Length == 0) { @@ -150,6 +151,7 @@ public override void Canceled(UIImagePickerController picker) => public override void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info) { + if (info.ValueForKey(new NSString("UIImagePickerControllerImageURL")) is NSUrl nSUrl) { var file = StorageFile.GetFromSecurityScopedUrl(nSUrl, null); @@ -171,12 +173,16 @@ public PhotoPickerDelegate(TaskCompletionSource taskCompletionSo public override async void DidFinishPicking(PHPickerViewController picker, PHPickerResult[] results) { + // Dismiss the picker early to get the user back to the app as soon as possible. + picker.DismissViewController(true, null); + var storageFiles = await ConvertPickerResults(results); // This callback can be called multiple times, user tapping multiple times over the "add" button, // we need to ensure that we only set the result once. _taskCompletionSource.TrySetResult(storageFiles.ToArray()); } + private async Task> ConvertPickerResults(PHPickerResult[] results) { List storageFiles = new List(); @@ -198,8 +204,8 @@ private async Task> ConvertPickerResults(PHPickerResult var extension = GetExtension(identifier); var destinationUrl = NSFileManager.DefaultManager - .GetTemporaryDirectory() - .Append($"{NSProcessInfo.ProcessInfo.GloballyUniqueString}.{extension}", false); + .GetTemporaryDirectory() + .Append($"{NSProcessInfo.ProcessInfo.GloballyUniqueString}.{extension}", false); data.Save(destinationUrl, false); storageFiles.Add(StorageFile.GetFromSecurityScopedUrl(destinationUrl, null)); From bf072f85a718f28940a9f859cb0ef1f7f96b1f9c Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 15 Oct 2024 17:19:11 +0200 Subject: [PATCH 031/205] fix: Workaround non-UIElement UIViews in Grid layout (cherry picked from commit bc73f5884adcba188b55a95486f2e19b36dbb352) --- src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs b/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs index a170e018fd64..bb40c2c87e88 100644 --- a/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs +++ b/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs @@ -1374,6 +1374,12 @@ private XSIZEF InnerArrangeOverride(XSIZEF finalSize) while (childrenEnumerator.MoveNext()) { var currentChild = childrenEnumerator.Current; +#if __IOS__ // Uno specific: On iOS an additional non-UIElement is added the the parent of a focused TextBox control, we need to skip it. + if (currentChild is null) + { + continue; + } +#endif ASSERT(currentChild is { }); currentChild.EnsureLayoutStorage(); @@ -1414,6 +1420,12 @@ private XSIZEF InnerArrangeOverride(XSIZEF finalSize) for (Xuint childIndex = 0; childIndex < count; childIndex++) { UIElement currentChild = children[childIndex]; +#if __IOS__ // Uno specific: On iOS an additional non-UIElement is added the the parent of a focused TextBox control, we need to skip it. + if (currentChild is null) + { + continue; + } +#endif ASSERT(currentChild is { }); DefinitionBase row = GetRowNoRef(currentChild); From 87c4b903655c01f35ee38be5468e450ee12c9efa Mon Sep 17 00:00:00 2001 From: Matthew Rajala Date: Tue, 15 Oct 2024 11:04:16 -0400 Subject: [PATCH 032/205] fix: removed negative margin for hr connection (cherry picked from commit e9e8699fd47c51fe1ebb7db158ac180a57ce67a8) --- .../HotReload/HotReloadStatusView.xaml | 77 +++++++++---------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml index 832582ecc9ff..5b8e1e6af2a3 100644 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml +++ b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml @@ -28,84 +28,84 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -131,7 +131,7 @@ Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" - Margin="0,0,8,4" /> + Margin="5,0,0,0" /> + Margin="5,0,0,0" /> + Margin="5,0,0,0" /> + Margin="5,0,0,0" /> - - + @@ -299,7 +296,8 @@ - - - - - - - diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs index 33ffe9cb172c..f7a9dd9543bd 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs @@ -13,9 +13,9 @@ namespace Uno.UI.RemoteControl; public partial class RemoteControlClient { - internal event EventHandler? StatusChanged; + public event EventHandler? StatusChanged; - internal RemoteControlStatus Status => _status.BuildStatus(); + public RemoteControlStatus Status => _status.BuildStatus(); private class StatusSink : DevServerDiagnostics.ISink { diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index 1aa2846f45ba..87de6eb8d095 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -5,7 +5,7 @@ namespace Uno.UI.RemoteControl; -internal record RemoteControlStatus( +public record RemoteControlStatus( RemoteControlStatus.ConnectionState State, bool? IsVersionValid, (RemoteControlStatus.KeepAliveState State, long RoundTrip) KeepAlive, @@ -82,9 +82,9 @@ internal string GetDescription() return details.ToString(); } - internal record struct MissingProcessor(string TypeFullName, string Version, string Details, string? Error = null); + public readonly record struct MissingProcessor(string TypeFullName, string Version, string Details, string? Error = null); - internal enum KeepAliveState + public enum KeepAliveState { Idle, Ok, // Got ping/pong in expected delays @@ -93,7 +93,7 @@ internal enum KeepAliveState Aborted // KeepAlive was aborted } - internal enum ConnectionState + public enum ConnectionState { /// /// Client as not been started yet @@ -140,7 +140,7 @@ internal enum ConnectionState Disconnected } - internal enum Classification + public enum Classification { Ok, Info, diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs b/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs index d8b79d89a947..35e46939435f 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs @@ -11,7 +11,7 @@ namespace Uno.UI.RemoteControl; -internal sealed partial class RemoteControlStatusView : Ellipse +public sealed partial class RemoteControlStatusView : Ellipse { #if __ANDROID__ public new const string Id = nameof(RemoteControlStatusView); diff --git a/src/Uno.UI.RemoteControl/Themes/Generic.xaml b/src/Uno.UI.RemoteControl/Themes/Generic.xaml index f56651e9b43a..585844b453c4 100644 --- a/src/Uno.UI.RemoteControl/Themes/Generic.xaml +++ b/src/Uno.UI.RemoteControl/Themes/Generic.xaml @@ -1,10 +1,7 @@ - + - - - - + + + diff --git a/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj b/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj index 700f5c7d46bb..f2b9a0b0c4d0 100644 --- a/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj +++ b/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj @@ -68,10 +68,6 @@ - - - - $(MSBuildThisFileDirectory)**\*.xaml diff --git a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs index 41784dacaac8..c87b9915f418 100644 --- a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs +++ b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs @@ -70,13 +70,15 @@ public async Task When_Changing_TextBlock_UsingHRClient() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + var content = new HR_Frame_Pages_Page2(); + UnitTestsUIContentHelper.Content = new ContentControl { - Content = new HR_Frame_Pages_Page2() + Content = content }; var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); - var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page2()); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( ctx.FileName, SecondPageTextBlockOriginalText, @@ -94,20 +96,49 @@ public async Task When_Changing_TextBlock_UsingHRClient() await hr.UpdateFileAsync(req.Undo(waitForHotReload: false), CancellationToken.None); } } - + + /// + /// Ensure that UpdateFileAsync() completes when no changes are made to the file. + /// + [TestMethod] + public async Task When_Changing_TextBlock_UsingHRClient_NoChanges() + { + var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + + var content = new HR_Frame_Pages_Page2(); + + UnitTestsUIContentHelper.Content = new ContentControl + { + Content = content + }; + + var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); + var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( + ctx.FileName, + SecondPageTextBlockOriginalText, + SecondPageTextBlockOriginalText + Environment.NewLine, + true) + .WithExtendedTimeouts(); // Required for CI + + await hr.UpdateFileAsync(req, ct); + } + // Another version of the test above, but pausing the TypeMapping before calling the file update [TestMethod] public async Task When_Changing_TextBlock_UsingHRClient_PausingTypeMapping() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(25)).Token; + var content = new HR_Frame_Pages_Page1(); + UnitTestsUIContentHelper.Content = new ContentControl { - Content = new HR_Frame_Pages_Page1() + Content = content }; var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); - var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page1()); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( ctx.FileName, FirstPageTextBlockOriginalText, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index 7e14c271fb0e..d67177d8ce0f 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -7,7 +7,7 @@ namespace Uno.Diagnostics.UI; -internal partial class DiagnosticView +partial class DiagnosticView { /// /// Registers a dedicated diagnostic view to be displayed by the diagnostic overlay. diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs index 3a87abcd3071..a2bcbf6b0851 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view that can be updated with a state. /// -internal class DiagnosticView( +public class DiagnosticView( string id, string name, Func factory, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs index 5f833c7b6a4c..3f0cf8997cb1 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view. /// -internal class DiagnosticView( +public class DiagnosticView( string id, string name, Func factory, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.cs index fd1711cb6234..9849ba1e2294 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view. /// -internal partial class DiagnosticView( +public partial class DiagnosticView( string id, string name, Func factory, From b14f69e8abbb14c007d5ea05f8ff1b9194536f7b Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 16:48:11 -0400 Subject: [PATCH 148/205] chore: clean-up dead code --- .../HotReload/ClientHotReloadProcessor.Common.Status.cs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs index c30dd6017b6b..16791f6d6d1b 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs @@ -70,10 +70,6 @@ public record Status( private class StatusSink(ClientHotReloadProcessor owner) { -// #if HAS_UNO_WINUI -// private readonly DiagnosticView _view = DiagnosticView.Register("Hot reload", ctx => new HotReloadStatusView(ctx), static (view, status) => view.OnHotReloadStatusChanged(status)); -// #endif - private HotReloadState? _serverState; private bool _isFinalServerState; private ImmutableDictionary _serverOperations = ImmutableDictionary.Empty; @@ -142,9 +138,6 @@ private void NotifyStatusChanged() var status = BuildStatus(); Current = status; -// #if HAS_UNO_WINUI -// _view.Update(status); -// #endif owner.StatusChanged?.Invoke(this, status); } From fd8a299f9a1dc474223c3e51680d32ca3c75c2b0 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 16:32:47 -0400 Subject: [PATCH 149/205] feat: Added the ability to specify a positionning to DiagnosticsView registrations --- .../Diagnostics/DiagnosticViewRegistry.cs | 45 ++++++++++++++++--- .../Diagnostics/DiagnosticsOverlay.cs | 7 +-- .../Diagnostics/DiagnosticView.Factories.cs | 34 ++++++++++---- 3 files changed, 70 insertions(+), 16 deletions(-) diff --git a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs index 41a3a91a7b64..f0e22250f3a0 100644 --- a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs +++ b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs @@ -12,7 +12,7 @@ internal static class DiagnosticViewRegistry { internal static EventHandler>? Added; - private static ImmutableArray _registrations = ImmutableArray.Empty; + private static ImmutableArray _registrations = []; /// /// Gets the list of registered diagnostic providers. @@ -24,18 +24,38 @@ internal static class DiagnosticViewRegistry /// /// A diagnostic view to display. /// Defines when the registered diagnostic view should be displayed. - public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default) + public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default, DiagnosticViewRegistrationPosition position = default) { ImmutableInterlocked.Update( ref _registrations, static (providers, provider) => providers.Add(provider), - new DiagnosticViewRegistration(mode, view)); + new DiagnosticViewRegistration(mode, position, view)); Added?.Invoke(null, _registrations); } } -internal record DiagnosticViewRegistration(DiagnosticViewRegistrationMode Mode, IDiagnosticView View); +internal sealed record DiagnosticViewRegistration( + DiagnosticViewRegistrationMode Mode, + DiagnosticViewRegistrationPosition Position, + IDiagnosticView View) : IComparable +{ + public int CompareTo(DiagnosticViewRegistration? other) + { + if (other is null) + { + return 1; + } + + if (Position == other.Position) + { + // If the position is the same, we compare the view id to ensure a stable order. + return string.Compare(View.Id, other.View.Id, StringComparison.Ordinal); + } + + return (int)Position - (int)other.Position; + } +} public enum DiagnosticViewRegistrationMode { @@ -43,7 +63,7 @@ public enum DiagnosticViewRegistrationMode /// Diagnostic is being display on at least one window. /// I.e. only the main/first opened but move to the next one if the current window is closed. /// - One, + One, // Default /// /// Diagnostic is being rendered as overlay on each window. @@ -55,3 +75,18 @@ public enum DiagnosticViewRegistrationMode /// OnDemand } + +public enum DiagnosticViewRegistrationPosition +{ + Normal = 0, // Default + + /// + /// Register as the first diagnostic view, ensuring it is displayed first. + /// + First = -1, + + /// + /// Register as the last diagnostic view, ensuring it is displayed last. + /// + Last = 1, +} diff --git a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs index 20ad0d418211..f5aafa64ffaf 100644 --- a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs +++ b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs @@ -2,6 +2,7 @@ #if WINUI || HAS_UNO_WINUI using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Diagnostics; using System.Linq; using System.Runtime.CompilerServices; @@ -462,10 +463,10 @@ private void EnqueueUpdate(bool forceUpdate = false) var viewsThatShouldBeMaterialized = DiagnosticViewRegistry .Registrations .Where(ShouldMaterialize) + .Order() // See DiagnosticViewRegistration.CompareTo .Select(reg => reg.View) - .Concat(_localRegistrations) - .Distinct() - .ToList(); + .Concat(_localRegistrations) // They are at the end of the list. + .Distinct(); foreach (var view in viewsThatShouldBeMaterialized) { diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index d67177d8ce0f..2ec8b905a3bb 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -21,11 +21,16 @@ partial class DiagnosticView /// /// Type of the control. /// The user-friendly name of the diagnostics view. - public static DiagnosticView Register(string friendlyName) + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. + public static DiagnosticView Register( + string friendlyName, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : UIElement, new() { var provider = new DiagnosticView(typeof(TView).Name, friendlyName, () => new TView()); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -43,11 +48,16 @@ public static DiagnosticView Register(string friendlyName) /// The user-friendly name of the diagnostics view. /// Factory to create an instance of the control. /// Defines when the registered diagnostic view should be displayed. - public static DiagnosticView Register(string friendlyName, Func factory, DiagnosticViewRegistrationMode mode = default) + /// Defines where the item should be placed in the overlay. + public static DiagnosticView Register( + string friendlyName, + Func factory, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : UIElement { var provider = new DiagnosticView(typeof(TView).Name, friendlyName, factory); - DiagnosticViewRegistry.Register(provider, mode); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -62,17 +72,21 @@ public static DiagnosticView Register(string friendlyName, FuncThe user-friendly name of the diagnostics view. /// Delegate to use to update the when the is being updated. /// Optional delegate used to show more details about the diagnostic info when user taps on the view. + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. /// A diagnostic view helper class which can be used to push updates of the state (cf. ). public static DiagnosticView Register( string friendlyName, Action update, - Func? details = null) + Func? details = null, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : FrameworkElement, new() { var provider = details is null ? new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update) : new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -88,18 +102,22 @@ public static DiagnosticView Register( /// Factory to create an instance of the generic element. /// Delegate to use to update the when the is being updated. /// Optional delegate used to show more details about the diagnostic info when user taps on the view. + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. /// A diagnostic view helper class which can be used to push updates of the state (cf. ). public static DiagnosticView Register( string friendlyName, Func factory, Action update, - Func? details = null) + Func? details = null, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : FrameworkElement { var provider = details is null ? new DiagnosticView(typeof(TView).Name, friendlyName, factory, update) : new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } } From 75273ed6fc7065b703e83f305dc64addd62e7357 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 17:40:58 -0400 Subject: [PATCH 150/205] feat: Added the ability to wait for the RemoteControlClient to be available --- .../RemoteControlClient.cs | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index c05abcabf61a..de8d05b302b3 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -33,7 +33,63 @@ public partial class RemoteControlClient : IRemoteControlClient public delegate void RemoteControlClientEventEventHandler(object sender, ClientEventEventArgs args); public delegate void SendMessageFailedEventHandler(object sender, SendMessageFailedEventArgs args); - public static RemoteControlClient? Instance { get; private set; } + public static RemoteControlClient? Instance + { + get => _instance; + private set + { + _instance = value; + + if (value is { }) + { + while (Interlocked.Exchange(ref _waitingList, null) is { } waitingList) + { + foreach (var action in waitingList) + { + action(value); + } + } + } + } + } + + private static IReadOnlyCollection>? _waitingList; + + /// + /// Add a callback to be called when the Instance is available. + /// + /// + /// Will be called synchronously if the instance is already available, no need to check for it before. + /// + public static void OnRemoteControlClientAvailable(Action action) + { + if(Instance is not null) + { + action(Instance); + } + else + { + // Thread-safe way to add the action to a waiting list for the client to be available + while (true) + { + var waitingList = _waitingList; + IReadOnlyCollection> newList = waitingList is null + ? [action] + : [.. waitingList, action]; + + if(Instance is { } i) // Last chance to avoid the waiting list + { + action(i); + break; + } + + if (ReferenceEquals(Interlocked.CompareExchange(ref _waitingList, newList, waitingList), waitingList)) + { + break; + } + } + } + } public static RemoteControlClient Initialize(Type appType) => Instance = new RemoteControlClient(appType); @@ -59,6 +115,7 @@ internal static RemoteControlClient Initialize(Type appType, ServerEndpointAttri private readonly StatusSink _status; private static readonly TimeSpan _keepAliveInterval = TimeSpan.FromSeconds(30); + private static RemoteControlClient? _instance; private readonly (string endpoint, int port)[]? _serverAddresses; private readonly Dictionary _processors = new(); private readonly List _preprocessors = new(); From 9ea0de3c18b1c1f598501720fb933b0c901d0501 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 22:04:29 -0400 Subject: [PATCH 151/205] ci: Fix build --- src/Uno.UI.RemoteControl/RemoteControlClient.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index de8d05b302b3..306aea9a7390 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -63,7 +63,7 @@ private set /// public static void OnRemoteControlClientAvailable(Action action) { - if(Instance is not null) + if (Instance is { }) { action(Instance); } @@ -77,7 +77,7 @@ public static void OnRemoteControlClientAvailable(Action ac ? [action] : [.. waitingList, action]; - if(Instance is { } i) // Last chance to avoid the waiting list + if (Instance is { } i) // Last chance to avoid the waiting list { action(i); break; From 6020ef93e5893776c13579b1a0a7eabcdabce33a Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 1 Nov 2024 13:12:11 -0400 Subject: [PATCH 152/205] feat: Improved the error logging to give more context on the connection failed reason --- .../RemoteControlClient.cs | 3 ++- .../RemoteControlStatus.cs | 21 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index 306aea9a7390..9d35fad28c75 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -486,7 +486,8 @@ private async Task Connect(Uri serverUri, int delay, CancellationTok { if (this.Log().IsEnabled(LogLevel.Trace)) { - this.Log().Trace($"Connecting to [{serverUri}] failed: {e.Message}"); + var innerMessage = e.InnerException is { } ie ? $" ({ie.Message})" : ""; + this.Log().Trace($"Connecting to [{serverUri}] failed: {e.Message}{innerMessage}"); } return new(this, serverUri, watch, null); diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index 87de6eb8d095..f1915e455f34 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -12,8 +12,27 @@ public record RemoteControlStatus( ImmutableHashSet MissingRequiredProcessors, (long Count, ImmutableHashSet Types) InvalidFrames) { - public bool IsAllGood => State == ConnectionState.Connected && IsVersionValid == true && MissingRequiredProcessors.IsEmpty && KeepAlive.State == KeepAliveState.Ok && InvalidFrames.Count == 0; + /// + /// A boolean indicating if everything is fine with the connection and the handshaking succeeded. + /// + public bool IsAllGood => + State == ConnectionState.Connected +#if !DEBUG + // For debug builds, it's annoying to have the version mismatch preventing the connection + // Only Uno devs should get this issue, let's not block them. + && IsVersionValid == true +#endif + && MissingRequiredProcessors.IsEmpty + && KeepAlive.State == KeepAliveState.Ok + && InvalidFrames.Count == 0; + + /// + /// If the connection is problematic, meaning that the connection is not in a good state. + /// + /// + /// It's just a negation of . + /// public bool IsProblematic => !IsAllGood; public (Classification kind, string message) GetSummary() From 9ffad577bc3a5aca8d532e7dd6400d2e4889b54a Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 1 Nov 2024 19:35:56 -0400 Subject: [PATCH 153/205] refactor: Make the _local registrations_ of the diagnostics overlay sortable like other registrations --- .../Diagnostics/DiagnosticViewRegistry.cs | 24 +++---------------- .../Diagnostics/IDiagnosticView.cs | 2 ++ .../RemoteControlClient.cs | 1 - .../Diagnostics/DiagnosticsOverlay.cs | 8 +++---- .../Diagnostics/DiagnosticView.Factories.cs | 20 ++++++++-------- .../DiagnosticView.TView.TState.cs | 5 +++- .../Diagnostics/DiagnosticView.TView.cs | 10 +++++--- src/Uno.UI/Diagnostics/DiagnosticView.cs | 10 ++++---- .../DiagnosticViewManager.TView.TState.cs | 4 +++- 9 files changed, 39 insertions(+), 45 deletions(-) diff --git a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs index f0e22250f3a0..d153d4bf4347 100644 --- a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs +++ b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs @@ -24,12 +24,12 @@ internal static class DiagnosticViewRegistry /// /// A diagnostic view to display. /// Defines when the registered diagnostic view should be displayed. - public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default, DiagnosticViewRegistrationPosition position = default) + public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default) { ImmutableInterlocked.Update( ref _registrations, static (providers, provider) => providers.Add(provider), - new DiagnosticViewRegistration(mode, position, view)); + new DiagnosticViewRegistration(mode, view)); Added?.Invoke(null, _registrations); } @@ -37,25 +37,7 @@ public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode internal sealed record DiagnosticViewRegistration( DiagnosticViewRegistrationMode Mode, - DiagnosticViewRegistrationPosition Position, - IDiagnosticView View) : IComparable -{ - public int CompareTo(DiagnosticViewRegistration? other) - { - if (other is null) - { - return 1; - } - - if (Position == other.Position) - { - // If the position is the same, we compare the view id to ensure a stable order. - return string.Compare(View.Id, other.View.Id, StringComparison.Ordinal); - } - - return (int)Position - (int)other.Position; - } -} + IDiagnosticView View); public enum DiagnosticViewRegistrationMode { diff --git a/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs b/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs index 34847ce89737..2e35bbd3021b 100644 --- a/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs +++ b/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs @@ -21,6 +21,8 @@ public interface IDiagnosticView /// string Name { get; } + DiagnosticViewRegistrationPosition Position => DiagnosticViewRegistrationPosition.Normal; + /// /// Gets a visual element of the diagnostic, usually a value or an icon. /// diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index 9d35fad28c75..12f6223f5874 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -280,7 +280,6 @@ public void RegisterPreProcessor(IRemoteControlPreProcessor preprocessor) _status.Report(ConnectionState.Connecting); - const string lastEndpointKey = "__UNO__" + nameof(RemoteControlClient) + "__last_endpoint"; var preferred = ApplicationData.Current.LocalSettings.Values.TryGetValue(lastEndpointKey, out var lastValue) && lastValue is string lastEp ? _serverAddresses.FirstOrDefault(srv => srv.endpoint.Equals(lastEp, StringComparison.OrdinalIgnoreCase)).endpoint diff --git a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs index f5aafa64ffaf..b26d78949ad9 100644 --- a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs +++ b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs @@ -317,8 +317,8 @@ public void Show(string viewId) /// Add a UI diagnostic element to this overlay. /// /// This will also make this overlay visible (cf. ). - public void Add(string id, string name, UIElement preview, Func? details = null) - => Add(new DiagnosticView(id, name, _ => preview, (_, ct) => new(details?.Invoke()))); + public void Add(string id, string name, UIElement preview, Func? details = null, DiagnosticViewRegistrationPosition position = default) + => Add(new DiagnosticView(id, name, _ => preview, (_, ct) => new(details?.Invoke()), position)); /// /// Add a UI diagnostic element to this overlay. @@ -463,9 +463,9 @@ private void EnqueueUpdate(bool forceUpdate = false) var viewsThatShouldBeMaterialized = DiagnosticViewRegistry .Registrations .Where(ShouldMaterialize) - .Order() // See DiagnosticViewRegistration.CompareTo .Select(reg => reg.View) - .Concat(_localRegistrations) // They are at the end of the list. + .Concat(_localRegistrations) + .OrderBy(r => (int)r.Position) .Distinct(); foreach (var view in viewsThatShouldBeMaterialized) diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index 2ec8b905a3bb..393379f0fcc6 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -29,8 +29,8 @@ public static DiagnosticView Register( DiagnosticViewRegistrationPosition position = default) where TView : UIElement, new() { - var provider = new DiagnosticView(typeof(TView).Name, friendlyName, () => new TView()); - DiagnosticViewRegistry.Register(provider, mode, position); + var provider = new DiagnosticView(typeof(TView).Name, friendlyName, () => new TView(), position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } @@ -56,8 +56,8 @@ public static DiagnosticView Register( DiagnosticViewRegistrationPosition position = default) where TView : UIElement { - var provider = new DiagnosticView(typeof(TView).Name, friendlyName, factory); - DiagnosticViewRegistry.Register(provider, mode, position); + var provider = new DiagnosticView(typeof(TView).Name, friendlyName, factory, position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } @@ -84,9 +84,9 @@ public static DiagnosticView Register( where TView : FrameworkElement, new() { var provider = details is null - ? new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update) - : new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider, mode, position); + ? new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, position: position) + : new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, (ctx, state, ct) => new(details(state)), position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } @@ -115,9 +115,9 @@ public static DiagnosticView Register( where TView : FrameworkElement { var provider = details is null - ? new DiagnosticView(typeof(TView).Name, friendlyName, factory, update) - : new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider, mode, position); + ? new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, position: position) + : new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, (ctx, state, ct) => new(details(state)), position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } } diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs index a2bcbf6b0851..2c8fbbabcf79 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs @@ -15,7 +15,8 @@ public class DiagnosticView( string name, Func factory, Action update, - Func>? details = null) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) : IDiagnosticView where TView : FrameworkElement { @@ -37,6 +38,8 @@ public void Update(TState status) /// string IDiagnosticView.Name => name; + DiagnosticViewRegistrationPosition IDiagnosticView.Position => position; + /// object IDiagnosticView.GetElement(IDiagnosticViewContext context) => _elementsManager.GetView(context); diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs index 3f0cf8997cb1..619d748bea12 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs @@ -14,7 +14,8 @@ public class DiagnosticView( string id, string name, Func factory, - Func>? details = null) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) : IDiagnosticView where TView : UIElement { @@ -22,8 +23,9 @@ public DiagnosticView( string id, string name, Func preview, - Func>? details = null) - : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct)) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) + : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct), position) { } @@ -33,6 +35,8 @@ public DiagnosticView( /// string IDiagnosticView.Name => name; + DiagnosticViewRegistrationPosition IDiagnosticView.Position => position; + /// object IDiagnosticView.GetElement(IDiagnosticViewContext context) => factory(context); diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.cs index 9849ba1e2294..4a7eebf30157 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.cs @@ -14,15 +14,17 @@ public partial class DiagnosticView( string id, string name, Func factory, - Func>? details = null) - : DiagnosticView(id, name, factory, details) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) + : DiagnosticView(id, name, factory, details, position) { public DiagnosticView( string id, string name, Func preview, - Func>? details = null) - : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct)) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) + : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct), position) { } } diff --git a/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs b/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs index 9598b2262813..ece3e7235dc3 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs @@ -12,7 +12,9 @@ namespace Uno.Diagnostics.UI; /// Type of the state used to update the . /// Factory to create an instance of the . /// Delegate to use to update the on . -internal class DiagnosticViewManager(Func factory, Action update) +internal class DiagnosticViewManager( + Func factory, + Action update) where TView : FrameworkElement { private event EventHandler? _changed; From 208c358d3bd4cd0ea0d56493039011080458d21f Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 1 Nov 2024 20:51:30 -0400 Subject: [PATCH 154/205] ci: Fix build by adjusting PackageDiff --- build/PackageDiffIgnore.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/PackageDiffIgnore.xml b/build/PackageDiffIgnore.xml index 875317d81ea1..6f0c700a3375 100644 --- a/build/PackageDiffIgnore.xml +++ b/build/PackageDiffIgnore.xml @@ -1982,6 +1982,10 @@ + + + + From 54b1d480039c4803c58a18084c28cac2196c44a6 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:20:48 -0500 Subject: [PATCH 155/205] docs: Add details --- .../HotReload/ClientHotReloadProcessor.ClientApi.cs | 2 +- src/Uno.UI.RemoteControl/RemoteControlStatus.cs | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs index fe911e17b0e5..df45c03eaea0 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs @@ -21,7 +21,7 @@ public partial class ClientHotReloadProcessor /// /// Result details of a file update /// - /// Indicates if is known to have been updated on server-side. + /// Indicates if file is known to have been updated on server-side. /// Indicates if the change had an impact on the compilation of the application (might be a success-full build or an error). /// Gets the error if any happened during the update. public record struct UpdateResult( diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index f1915e455f34..94c8e397437c 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -14,7 +14,8 @@ public record RemoteControlStatus( { /// - /// A boolean indicating if everything is fine with the connection and the handshaking succeeded. + /// An ***aggregated*** state of the connection to determine if everything is fine. + /// This is for visual representation only, the actual state of the connection is in . /// public bool IsAllGood => State == ConnectionState.Connected @@ -28,11 +29,8 @@ public record RemoteControlStatus( && InvalidFrames.Count == 0; /// - /// If the connection is problematic, meaning that the connection is not in a good state. + /// Not (for binding purposes). /// - /// - /// It's just a negation of . - /// public bool IsProblematic => !IsAllGood; public (Classification kind, string message) GetSummary() From 1d2053468e2cfc7a14b28a507370375fa6489c43 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:21:40 -0500 Subject: [PATCH 156/205] feat: Add ability for add-ins to have full access to teh ServiceCollection --- .../ServiceCollectionExtensionAttribute.cs | 23 ++++++++++ .../ServiceCollectionServiceExtensions.cs | 46 ++++++++++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs new file mode 100644 index 000000000000..d324a22c4e1a --- /dev/null +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs @@ -0,0 +1,23 @@ +using System; +using System.Linq; +using Microsoft.Extensions.DependencyInjection; + +namespace Uno.Utils.DependencyInjection; + +/// +/// Attribute to define a type able to registers some services in a service collection. +/// +/// Type of the extension that should be instantiated with a as parameter. +/// +/// The given type is expected to have a single constructor which takes a single parameter of type . +/// An instance of the given type will be created during the service collection registration process (with the service collection as parameter), +/// so the implementation will be able to add some custom services on it. +/// +[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] +public class ServiceCollectionExtensionAttribute(Type type) : Attribute +{ + /// + /// Type of the extension that should be instantiated with a as parameter. + /// + public Type Type { get; } = type; +} diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs index 27cd270e5aa7..52d206340797 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs @@ -12,12 +12,22 @@ namespace Uno.Utils.DependencyInjection; public static class ServiceCollectionServiceExtensions { + /// + /// Register services configured with the and attributes from all loaded assemblies. + /// + /// The service collection on which services should be registered. + /// The service collection for fluent usage. + public static IServiceCollection AddFromAttributes(this IServiceCollection svc) + => svc + .AddFromServiceAttributes() + .AddFromServiceExtensionAttributes(); + /// /// Register services configured with the attribute from all loaded assemblies. /// /// The service collection on which services should be registered. /// The service collection for fluent usage. - public static IServiceCollection AddFromAttribute(this IServiceCollection svc) + public static IServiceCollection AddFromServiceAttributes(this IServiceCollection svc) { var attribute = typeof(ServiceAttribute); var services = AppDomain @@ -37,6 +47,40 @@ public static IServiceCollection AddFromAttribute(this IServiceCollection svc) return svc; } + /// + /// Register services configured with the attribute from all loaded assemblies. + /// + /// The service collection on which services should be registered. + /// The service collection for fluent usage. + public static IServiceCollection AddFromServiceExtensionAttributes(this IServiceCollection svc) + { + var attribute = typeof(ServiceCollectionExtensionAttribute); + var extensions = AppDomain + .CurrentDomain + .GetAssemblies() + .SelectMany(assembly => assembly.GetCustomAttributesData()) + .Select(attrData => attrData.TryCreate(attribute) as ServiceCollectionExtensionAttribute) + .Where(attr => attr is not null) + .ToImmutableList(); + + foreach (var extension in extensions) + { + try + { + Activator.CreateInstance(extension!.Type, args: [svc]); + } + catch (Exception error) + { + if (svc.Log().IsEnabled(LogLevel.Error)) + { + svc.Log().Log(LogLevel.Error, error, $"Failed to create an instance of extensions {extension?.Type} for dynamic service discovery.."); + } + } + } + + return svc; + } + private class AutoInitService(IServiceProvider services, IImmutableList types) : BackgroundService, IHostedService { /// From a169ec569bd500f8c29cceb4ca639fc11e9d5243 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:22:59 -0500 Subject: [PATCH 157/205] fix: Do not throw if an add-in load fail --- .../Extensibility/AddInsExtensions.cs | 4 ++-- src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs index 80491025e1b3..a9b7fec6dc9a 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs @@ -10,8 +10,8 @@ public static class AddInsExtensions { public static IWebHostBuilder ConfigureAddIns(this IWebHostBuilder builder, string solutionFile) { - AssemblyHelper.Load(AddIns.Discover(solutionFile), throwIfLoadFailed: true); + AssemblyHelper.Load(AddIns.Discover(solutionFile), throwIfLoadFailed: false); - return builder.ConfigureServices(svc => svc.AddFromAttribute()); + return builder.ConfigureServices(svc => svc.AddFromAttributes()); } } diff --git a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs index be3d40bf1acd..44f97a159ab2 100644 --- a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs +++ b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs @@ -18,6 +18,8 @@ public static IImmutableList Load(IImmutableList dllFiles, boo { try { + _log.Log(LogLevel.Information, $"Loading add-in assembly '{dll}'."); + assemblies.Add(Assembly.LoadFrom(dll)); } catch (Exception err) From f872b05fe396a5fefaf545643a1a7482ef52572d Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:28:22 -0500 Subject: [PATCH 158/205] chore: Fix (non enforced) code analysis rule --- .../Uno.Utils.DependencyInjection/ServiceAttribute.cs | 2 +- .../ServiceCollectionExtensionAttribute.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs index 136798d820de..ce2b81f08f01 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs @@ -10,7 +10,7 @@ namespace Uno.Utils.DependencyInjection; /// Type of the contract (i.e. interface) implemented by the concrete type. /// Concrete type to register in the service collection. [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] -public class ServiceAttribute(Type contract, Type implementation) : Attribute +public sealed class ServiceAttribute(Type contract, Type implementation) : Attribute { /// /// Creates a new instance of the class with only a concrete type (used as contract and implementation). diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs index d324a22c4e1a..27bb145cd539 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs @@ -14,7 +14,7 @@ namespace Uno.Utils.DependencyInjection; /// so the implementation will be able to add some custom services on it. /// [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] -public class ServiceCollectionExtensionAttribute(Type type) : Attribute +public sealed class ServiceCollectionExtensionAttribute(Type type) : Attribute { /// /// Type of the extension that should be instantiated with a as parameter. From 40b7d46c3cde62a6ab546a1cca159a09b0f2c92e Mon Sep 17 00:00:00 2001 From: David Date: Tue, 5 Nov 2024 10:23:28 -0500 Subject: [PATCH 159/205] chore: Update logging level MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban --- src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs index 44f97a159ab2..d614fc56da3c 100644 --- a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs +++ b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs @@ -18,7 +18,7 @@ public static IImmutableList Load(IImmutableList dllFiles, boo { try { - _log.Log(LogLevel.Information, $"Loading add-in assembly '{dll}'."); + _log.Log(LogLevel.Debug, $"Loading add-in assembly '{dll}'."); assemblies.Add(Assembly.LoadFrom(dll)); } From ba3a2ce0a52c79e7813ee1ae7c9be25022a68f11 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Mon, 4 Nov 2024 14:20:47 -0500 Subject: [PATCH 160/205] feat: Improved the way pings are done to the remote control server, reducing the delay before the first ping. --- src/Uno.UI.RemoteControl/RemoteControlClient.cs | 2 +- src/Uno.UI.RemoteControl/RemoteControlStatus.cs | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index 12f6223f5874..5df9baac1e12 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -656,7 +656,7 @@ private void StartKeepAliveTimer() if (Interlocked.CompareExchange(ref _keepAliveTimer, timer, null) is null) { - timer.Change(_keepAliveInterval, _keepAliveInterval); + timer.Change(TimeSpan.Zero, _keepAliveInterval); } } diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index 94c8e397437c..0d1c3e1ac1e5 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -19,11 +19,7 @@ public record RemoteControlStatus( /// public bool IsAllGood => State == ConnectionState.Connected -#if !DEBUG - // For debug builds, it's annoying to have the version mismatch preventing the connection - // Only Uno devs should get this issue, let's not block them. && IsVersionValid == true -#endif && MissingRequiredProcessors.IsEmpty && KeepAlive.State == KeepAliveState.Ok && InvalidFrames.Count == 0; From 44383deb4a5812f5d5b68fbae784c118965bf278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Tue, 5 Nov 2024 08:53:56 -0500 Subject: [PATCH 161/205] docs: Adjust hot restart limitation for release builds (cherry picked from commit bed82233cae5844e50bc665ceb08852604714ca6) --- doc/articles/create-an-app-vs2022.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/articles/create-an-app-vs2022.md b/doc/articles/create-an-app-vs2022.md index 96a265b868a6..106fdae6bb28 100644 --- a/doc/articles/create-an-app-vs2022.md +++ b/doc/articles/create-an-app-vs2022.md @@ -104,6 +104,8 @@ To debug for **iOS**: > [!NOTE] > If no iOS devices are available, a Visual Studio 17.7+ issue may require unloading/reloading the project. Right-click on the `MyApp` project and select **Unload Project** then **Load project**. + > [!IMPORTANT] + > When using a device connected to a Windows PC, the Release build configuration is not supported. An actual macOS machine is required. ### [**Android**](#tab/Android) From dbbfe2c1a11c2b05f2210bd843805d36bb3d08d1 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Mon, 4 Nov 2024 16:54:39 -0500 Subject: [PATCH 162/205] chore: Update implicit references --- build/ci/.azure-devops-project-template-tests.yml | 8 ++++---- build/ci/templates/uno-dev-feed.yml | 7 +++++++ doc/articles/features/working-with-xaml-hot-reload.md | 4 ++-- doc/articles/migrating-from-previous-releases.md | 4 ++++ doc/articles/migrating-to-uno-5.md | 2 +- src/Directory.Build.props | 3 +++ src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs | 2 +- .../5.1/uno51recommended/uno51recommended/App.cs | 2 +- .../5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs | 2 +- .../5.2/uno52blank/uno52blank/App.xaml.cs | 2 +- .../5.3/uno53net9blank/uno53net9blank/App.xaml.cs | 2 +- src/Uno.Sdk/Sdk/Sdk.props.buildschema.json | 4 ++++ src/Uno.Sdk/Services/PackageManifest.cs | 1 + src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs | 3 +++ src/Uno.Sdk/packages.json | 7 +++++++ .../targets/Uno.Implicit.Packages.ProjectSystem.targets | 1 + src/Uno.Sdk/targets/Uno.Implicit.Packages.targets | 1 + .../HotReload/ClientHotReloadProcessor.MetadataUpdate.cs | 2 +- src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs | 7 +++++++ 19 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 build/ci/templates/uno-dev-feed.yml diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index 6ea10c23a45d..d480011e2920 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -31,8 +31,8 @@ jobs: artifactName: 'Nuget_Packages' - template: templates/gitversion.yml - - template: templates/dotnet-mobile-install-windows.yml + - template: templates/uno-dev-feed.yml - script: copy $(System.ArtifactsDirectory)\Nuget_Packages\vslatest\*.nupkg $(Build.SourcesDirectory)\src\PackageCache displayName: Copy Artifacts to PackageCache @@ -88,6 +88,7 @@ jobs: xCodeRoot: ${{ parameters.xCodeRoot }} - template: templates/dotnet-mobile-install-mac.yml + - template: templates/uno-dev-feed.yml - powershell: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache displayName: Copy Artifacts to PackageCache @@ -126,11 +127,10 @@ jobs: artifactName: 'Nuget_Packages' - template: templates/gitversion.yml - - template: templates/dotnet-mobile-install-linux.yml - - template: templates/gitversion.yml - + - template: templates/uno-dev-feed.yml + - script: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache displayName: Copy Artifacts to PackageCache diff --git a/build/ci/templates/uno-dev-feed.yml b/build/ci/templates/uno-dev-feed.yml new file mode 100644 index 000000000000..bc6a002029cc --- /dev/null +++ b/build/ci/templates/uno-dev-feed.yml @@ -0,0 +1,7 @@ +parameters: + nugetPackages: '$(Pipeline.Workspace)/.nuget/packages' + +steps: + + - pwsh: dotnet nuget add source https://pkgs.dev.azure.com/uno-platform/1dd81cbd-cb35-41de-a570-b0df3571a196/_packaging/unoplatformdev/nuget/v3/index.json -n "uno-dev" + displayName: Add dev feed source diff --git a/doc/articles/features/working-with-xaml-hot-reload.md b/doc/articles/features/working-with-xaml-hot-reload.md index da8a2d3bcf96..c32f95322b95 100644 --- a/doc/articles/features/working-with-xaml-hot-reload.md +++ b/doc/articles/features/working-with-xaml-hot-reload.md @@ -293,7 +293,7 @@ Mobile targets are currently using a limited version of XAML Hot Reload and do n ## Hot Reload Indicator -Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `EnableHotReload()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view. +Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `UseStudio()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view.

A hot reload visual indicator @@ -370,7 +370,7 @@ Here's a summary of what icons and statuses you can expect: //... in the OnLaunched method #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif ``` diff --git a/doc/articles/migrating-from-previous-releases.md b/doc/articles/migrating-from-previous-releases.md index 6a4c5ff874f3..83be4df90077 100644 --- a/doc/articles/migrating-from-previous-releases.md +++ b/doc/articles/migrating-from-previous-releases.md @@ -17,6 +17,10 @@ A few considerations to take into account: - Moving to .NET 9 or upgrading .NET 9 projects now require the use of .NET 9 RC2 and Visual Studio 17.12 Preview 3. - To migrate a project to .NET 9, [read the directions](xref:Uno.Development.MigratingFromNet8ToNet9) from our documentation. +### The EnableHotReload method is deprecated + +When upgrading to Uno 5.5, in the `App.xaml.cs` file, the `EnableHotReload()` method is deprecated and must be replaced with `UseStudio()` instead. + ## Uno Platform 5.4 Uno Platform 5.4 contains breaking changes for Uno.Extensions. diff --git a/doc/articles/migrating-to-uno-5.md b/doc/articles/migrating-to-uno-5.md index 3c8b93add58b..d5466ef9f1e5 100644 --- a/doc/articles/migrating-to-uno-5.md +++ b/doc/articles/migrating-to-uno-5.md @@ -44,7 +44,7 @@ Hot Reload support has changed in Uno Platform 5.0 and a new API invocation is n //... in the OnLaunched method #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif ``` diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 43c8b2315996..de865103a91d 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -223,6 +223,9 @@ $(NoWarn);CS0436 + + + $(NoWarn);UNO0008 diff --git a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs index 62e506b2f697..b52a5c4e507a 100644 --- a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs +++ b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs @@ -9,7 +9,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs index 19b13588d50f..02b6c1e4e73d 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs +++ b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs @@ -75,7 +75,7 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = builder.Window; #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif Host = await builder.NavigateAsync(); diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs index fc6929ae914b..bf27f78b2815 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs @@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs index 3d3bb856f7be..1979f64729ea 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs @@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs index 622781bbb6d5..302b0aab62db 100644 --- a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs +++ b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs @@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json index bf5cf925b110..5e5918a36b3a 100644 --- a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json +++ b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json @@ -234,6 +234,10 @@ "description": "Provides an explicit override for the version of Uno.Settings to use.", "type": "nuget-version" }, + "UnoHotDesignVersion": { + "description": "Provides an explicit override for the version of Uno.HotDesign to use.", + "type": "nuget-version" + }, "MicrosoftLoggingVersion": { "description": "Provides an explicit override for the version of Microsoft.Extensions.Logging to use.", "type": "nuget-version" diff --git a/src/Uno.Sdk/Services/PackageManifest.cs b/src/Uno.Sdk/Services/PackageManifest.cs index a212120e9308..208ec470be13 100644 --- a/src/Uno.Sdk/Services/PackageManifest.cs +++ b/src/Uno.Sdk/Services/PackageManifest.cs @@ -138,6 +138,7 @@ public class Group public const string Resizetizer = nameof(Resizetizer); public const string SdkExtras = nameof(SdkExtras); public const string Settings = nameof(Settings); + public const string HotDesign = nameof(HotDesign); public const string SkiaSharp = nameof(SkiaSharp); public const string SvgSkia = nameof(SvgSkia); public const string WinAppSdk = nameof(WinAppSdk); diff --git a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs index ba60a5f67d5d..5a6e6a621e51 100644 --- a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs +++ b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs @@ -85,6 +85,8 @@ public sealed class ImplicitPackagesResolver_v0 : Task public string? UnoSettingsVersion { get; set; } + public string? UnoHotDesignVersion { get; set; } + public string? MicrosoftLoggingVersion { get; set; } public string? WinAppSdkVersion { get; set; } @@ -246,6 +248,7 @@ private void SetupRuntimePackageManifestUpdates(PackageManifest manifest) .UpdateManifest(PackageManifest.Group.Resizetizer, UnoResizetizerVersion) .UpdateManifest(PackageManifest.Group.SdkExtras, UnoSdkExtrasVersion) .UpdateManifest(PackageManifest.Group.Settings, UnoSettingsVersion) + .UpdateManifest(PackageManifest.Group.HotDesign, UnoHotDesignVersion) .UpdateManifest(PackageManifest.Group.SkiaSharp, SkiaSharpVersion) .UpdateManifest(PackageManifest.Group.SvgSkia, SvgSkiaVersion) .UpdateManifest(PackageManifest.Group.WinAppSdk, WinAppSdkVersion) diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index ce74950b283e..56348beaf653 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -85,6 +85,13 @@ "Uno.Settings.DevServer" ] }, + { + "group": "hotdesign", + "version": "1.0.0-dev.3", + "packages": [ + "Uno.UI.HotDesign" + ] + }, { "group": "SkiaSharp", "version": "2.88.8", diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index e0880a8dce18..ce5194b7d6b3 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -9,6 +9,7 @@ <_UnoProjectSystemPackageReference Include="Uno.Resizetizer" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Sdk.Extras" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" /> + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets index ec578d78d73e..53ff56988041 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets @@ -63,6 +63,7 @@ UnoResizetizerVersion="$(UnoResizetizerVersion)" UnoSdkExtrasVersion="$(UnoSdkExtrasVersion)" UnoSettingsVersion="$(UnoSettingsVersion)" + UnoHotDesignVersion="$(UnoHotDesignVersion)" MicrosoftLoggingVersion="$(MicrosoftLoggingVersion)" WinAppSdkVersion="$(WinAppSdkVersion)" WinAppSdkBuildToolsVersion="$(WinAppSdkBuildToolsVersion)" diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs index 5069bd7935a2..0a38206683d8 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs @@ -499,7 +499,7 @@ private static void UpdateApplicationCore(Type[] types) #endif else { - var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.EnableHotReload()) in app startup. See https://aka.platform.uno/hot-reload"; + var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.UseStudio()) in app startup. See https://aka.platform.uno/hot-reload"; hr?.ReportError(new InvalidOperationException(errorMsg)); if (_log.IsEnabled(LogLevel.Warning)) { diff --git a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs index 7f268ae0b9ce..4c3db93087f1 100644 --- a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs +++ b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs @@ -2,6 +2,7 @@ using Uno.UI.RemoteControl.HotReload; using Microsoft.UI.Xaml; using Uno.Diagnostics.UI; +using System.ComponentModel; namespace Uno.UI; @@ -14,6 +15,9 @@ public static class WindowExtensions /// Enables the UI Update cycle of HotReload to be handled by Uno ///

/// The window of the application where UI updates will be applied + [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window) => ClientHotReloadProcessor.SetWindow(window, false); @@ -22,6 +26,9 @@ public static void EnableHotReload(this Window window) ///
/// The window of the application where UI updates will be applied /// Request to not show the on-canvas indicator by default. + [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window, bool disableIndicator) => ClientHotReloadProcessor.SetWindow(window, disableIndicator); From dcfe4d9af6dc1373eb177a62cbec33997e88b6b4 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Mon, 4 Nov 2024 14:49:35 -0500 Subject: [PATCH 163/205] fix(macOS): Prevent pointer over event originating from other window (cherry picked from commit c1b28008f47d92183d66ea3ac5bf05be507292b3) --- .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index 2e67cc692bc7..7a72f4ebfdcc 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -669,6 +669,11 @@ - (BOOL) getPositionFrom:(NSEvent*)event x:(CGFloat*)px y:(CGFloat *)py } - (void)sendEvent:(NSEvent *)event { + if (![[NSApplication sharedApplication] isActive]) { + [super sendEvent:event]; + return; + } + bool handled = false; MouseEvents mouse = MouseEventsNone; PointerDeviceType pdt = PointerDeviceTypeMouse; From 8ce3ce88f6610772d6adde8dcda590a27b7ee7de Mon Sep 17 00:00:00 2001 From: generousllama541 <98273828+generousllama541@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:18:15 -0500 Subject: [PATCH 164/205] docs: adjust MVUX doc for proper class name (cherry picked from commit 7fb93719975dc2529ad8d58d4906c7a2fdf0b96c) --- .../counterapp/get-started-counter-csharp-mvux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md index 5215c0a2e534..1cbbf8efc5e2 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md @@ -89,7 +89,7 @@ Also, for more information on all the template options, see [Using the Uno Platf ## Data Binding -Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. +Now that we have the **`MainModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. - Let's add the **`DataContext`** to our page. To do so, add `.DataContext(new MainViewModel(), (page, vm) => page` before `.Background(...)`. Remember to close the **`DataContext`** expression with a `)` at the end of the code. It should look similar to the code below: From ca0bf07e88b05197ae30abd0db51e0038f75cd10 Mon Sep 17 00:00:00 2001 From: generousllama541 <98273828+generousllama541@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:45:54 -0500 Subject: [PATCH 165/205] docs: remove invalid namespaces in code samples (cherry picked from commit d4394383662171a9115737764c9cbfb9e404a47c) --- .../counterapp/get-started-counter-csharp-mvux.md | 2 -- .../counterapp/get-started-counter-csharp-mvvm.md | 2 -- .../counterapp/includes/include-mainpage-csharp.md | 1 - .../getting-started/counterapp/includes/include-mvux.md | 1 - .../getting-started/counterapp/includes/include-mvvm.md | 1 - 5 files changed, 7 deletions(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md index 5215c0a2e534..87cfdae5b5cb 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md @@ -136,8 +136,6 @@ Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** - The final code for **MainPage.cs** should look like this: ```csharp - namespace Counter; - public sealed partial class MainPage : Page { public MainPage() diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md index dfef72d04fc2..8d38008250d4 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md @@ -136,8 +136,6 @@ Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** - The final code for **MainPage.cs** should look like this: ```csharp - namespace Counter; - public sealed partial class MainPage : Page { public MainPage() diff --git a/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md b/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md index bc53065314fe..a8985fae4cab 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md +++ b/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md @@ -1,7 +1,6 @@ The layout for the `MainPage` is defined in the **MainPage.cs** file. This file contains the C# Markup that defines the layout of the application. ```csharp -namespace Uno; public sealed partial class MainPage : Page { diff --git a/doc/articles/getting-started/counterapp/includes/include-mvux.md b/doc/articles/getting-started/counterapp/includes/include-mvux.md index 7551cea24bd6..e8b765451064 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mvux.md +++ b/doc/articles/getting-started/counterapp/includes/include-mvux.md @@ -54,7 +54,6 @@ As part of creating the application, we selected MVUX as the presentation framew The final code for the `MainModel` class should look like this: ```csharp -namespace Counter; internal partial record Countable(int Count, int Step) { diff --git a/doc/articles/getting-started/counterapp/includes/include-mvvm.md b/doc/articles/getting-started/counterapp/includes/include-mvvm.md index f7b0c44233f0..995d41e059cb 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mvvm.md +++ b/doc/articles/getting-started/counterapp/includes/include-mvvm.md @@ -37,7 +37,6 @@ As part of creating the application, we selected MVVM as the presentation framew The final code for the `MainViewModel` class should look like this: ```csharp -namespace Counter; internal partial class MainViewModel : ObservableObject { From ca4a273eca2ead64de6ef559aa36debf58577e20 Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Tue, 5 Nov 2024 18:04:26 -0500 Subject: [PATCH 166/205] fix(ios): negative margin clipped on device rotate (cherry picked from commit 2a1c6161dc7ede1786049fd3cfbbf84ed93f8eab) --- .../Given_ListViewBase.Measure.cs | 45 ++++++++++++++++++- .../Border/BorderLayerRenderer.iOSmacOS.cs | 18 +++++--- src/Uno.UI/UI/Xaml/UIElement.cs | 15 +++++-- src/Uno.UI/UI/Xaml/UIElement.iOS.cs | 7 +-- 4 files changed, 68 insertions(+), 17 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs index fdcfd0f28918..f99ea4764776 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -7,9 +8,11 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls.Primitives; -using Uno.UI.RuntimeTests.Extensions; -using System.Collections.ObjectModel; using Windows.Foundation; +using Uno.UI.Helpers; +using Uno.UI.RuntimeTests.Extensions; +using Uno.UI.RuntimeTests.Helpers; + #if WINAPPSDK using Uno.UI.Extensions; #elif __IOS__ @@ -442,6 +445,44 @@ public async Task When_ItemsSource_INCC_StartTwo_RemoveOne() await WindowHelper.WaitFor(() => Math.Abs(SUT.ActualHeight - 29) <= Epsilon, message: $"ListView failed to shrink from removing item: (ActualHeight: {SUT.ActualHeight})"); } +#if __IOS__ || __ANDROID__ + [TestMethod] + [RunsOnUIThread] + public async Task When_Item_With_NegativeMargin_AsdAsd() // todo@xy: remove asdasd + { + const string PathData = "M 2 2 H 18 V 18 H 2 Z M 3 3 V 17 H 17 V 3 Z"; // 18x18 square with 1px border located at 2,2 + var setup = new ListView + { + ItemsSource = Enumerable.Range(0, 1).ToArray(), + ItemTemplate = XamlHelper.LoadXaml($$""" + + + + + + + + """), + }; + + await UITestHelper.Load(setup); + + // We can't really test rotating the device in the context of runtime tests. But still, this is a good repro. + // When loaded, we should see a red square, whose lower half is sitting in a pink background. + // When you rotate the device (portrait <-> landscape), the red square should still be fully visible. + + // Previously, there is a bug where rotating could cause the view with negative padding to be clipped. + // The visual hierarchy needs a special setup, it is just the easiest to replicate with a ListView... + + // It can be verified by checking `.Layer.Mask` remains consistent for the visual tree under ListView, + // before and after the device rotation. In this case, it was the SutBorder that magically had a `.Layer.Mask` assigned. + } +#endif + // Works around ScrollIntoView() not implemented for all platforms private static void ScrollTo(ListViewBase listViewBase, double vOffset) { diff --git a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs index 110301f0569d..5925cb5f2600 100644 --- a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs +++ b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs @@ -427,13 +427,19 @@ GradientBrush gradientBorder when gradientBorder.CanApplyToBorder(cornerRadius) sublayers.Add(backgroundLayer); parent.InsertSublayer(backgroundLayer, insertionIndex); - parent.Mask = new CAShapeLayer() + // Normally, the parent.Mask (or owner.Layer.Mask) is usually cleared by ApplyNativeClip that follows. + // However, on device rotation (portrait <-> landscape), ApplyNativeClip happens before this method, causing the view to have an unwanted clipping. + // Here, we are reusing the logics of ApplyNativeClip to decide when to not apply the mask (as it would be cleared anyways). + if (owner.GetNativeClippedViewport().IsFinite) { - Path = outerPath, - Frame = area, - // We only use the fill color to create the mask area - FillColor = _Color.White.CGColor, - }; + parent.Mask = new CAShapeLayer() + { + Path = outerPath, + Frame = area, + // We only use the fill color to create the mask area + FillColor = _Color.White.CGColor, + }; + } updatedBoundsPath = outerPath; } diff --git a/src/Uno.UI/UI/Xaml/UIElement.cs b/src/Uno.UI/UI/Xaml/UIElement.cs index 324d88df7508..c2a0ba2d5e8d 100644 --- a/src/Uno.UI/UI/Xaml/UIElement.cs +++ b/src/Uno.UI/UI/Xaml/UIElement.cs @@ -931,6 +931,16 @@ internal void ApplyClip() #elif __WASM__ InvalidateArrange(); #else + var rect = GetNativeClippedViewport(); + + ApplyNativeClip(rect); + OnViewportUpdated(rect); +#endif + } + +#if !(__SKIA__ || __WASM__) + internal Rect GetNativeClippedViewport() + { Rect rect; if (Clip == null) @@ -957,10 +967,9 @@ internal void ApplyClip() } } - ApplyNativeClip(rect); - OnViewportUpdated(rect); -#endif + return rect; } +#endif partial void ApplyNativeClip(Rect rect #if __SKIA__ diff --git a/src/Uno.UI/UI/Xaml/UIElement.iOS.cs b/src/Uno.UI/UI/Xaml/UIElement.iOS.cs index 2377133ccfad..332e98710c6d 100644 --- a/src/Uno.UI/UI/Xaml/UIElement.iOS.cs +++ b/src/Uno.UI/UI/Xaml/UIElement.iOS.cs @@ -63,12 +63,7 @@ internal bool IsArrangeDirtyPath partial void ApplyNativeClip(Rect rect) { - if (rect.IsEmpty - || double.IsPositiveInfinity(rect.X) - || double.IsPositiveInfinity(rect.Y) - || double.IsPositiveInfinity(rect.Width) - || double.IsPositiveInfinity(rect.Height) - ) + if (!rect.IsFinite) { if (!ClippingIsSetByCornerRadius) { From 1aa1bc4101d10590b6ab4d4434a404cf66101775 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Tue, 5 Nov 2024 21:42:00 -0500 Subject: [PATCH 167/205] chore: Adjust skiasharp defaults --- .../run-netcore-mobile-template-tests.ps1 | 14 +++++----- doc/articles/uno-build-error-codes.md | 12 ++++++++ .../5.1/uno51blank/Directory.Packages.props | 22 +++++++-------- .../5.1/uno51blank/uno51blank/App.cs | 4 ++- .../uno51recommended/Directory.Packages.props | 28 +++++++++---------- .../uno51recommended/uno51recommended/App.cs | 4 ++- .../uno52AppWithLib/App.xaml.cs | 4 ++- .../uno52AppWithLib/uno52AppWithLib.csproj | 4 +-- .../uno52emptylib/uno52emptylib.csproj | 4 +-- .../uno52AppWithLib/uno52lib/uno52lib.csproj | 4 +-- .../5.2/uno52Lib/uno52Lib.csproj | 2 +- .../5.2/uno52NuGetLib/uno52NuGetLib.csproj | 2 +- .../uno52SingleProjectLib.csproj | 2 +- .../5.2/uno52blank/uno52blank/App.xaml.cs | 4 ++- .../uno52blank/uno52blank/uno52blank.csproj | 4 +-- .../uno53net9blank/uno53net9blank.csproj | 4 +-- src/Uno.Sdk/packages.json | 4 +-- ...no.Implicit.Packages.ProjectSystem.targets | 5 +++- .../HotReload/WindowExtensions.cs | 4 +-- 19 files changed, 77 insertions(+), 54 deletions(-) diff --git a/build/test-scripts/run-netcore-mobile-template-tests.ps1 b/build/test-scripts/run-netcore-mobile-template-tests.ps1 index f5321ab109e4..376a9cb1da84 100644 --- a/build/test-scripts/run-netcore-mobile-template-tests.ps1 +++ b/build/test-scripts/run-netcore-mobile-template-tests.ps1 @@ -271,16 +271,16 @@ $projects = @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), # Ensure that default without platform builds properly - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.26100"), @()), # Validate building inside VS @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true"), @("NetCore")), @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-desktop"), @("NetCore")), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.26100"), @()), # # 5.2 Uno Lib @@ -301,7 +301,7 @@ $projects = @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @("macOS")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @("macOS")), # # 5.2 Uno SingleProject Lib @@ -314,7 +314,7 @@ $projects = @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-desktop"), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), # 5.2 Uno App with Library reference @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0"), @("macOS", "NetCore")), @@ -339,7 +339,7 @@ $projects = @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(4, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(4, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), # Publishing validation @(4, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", "-p:PackageFormat=app"), @("OnlyMacOS", "NetCore", "Publish")) diff --git a/doc/articles/uno-build-error-codes.md b/doc/articles/uno-build-error-codes.md index 938187ee28bd..4aa58ec23bb7 100644 --- a/doc/articles/uno-build-error-codes.md +++ b/doc/articles/uno-build-error-codes.md @@ -178,6 +178,18 @@ Some components like `ProgressRing` and `MediaPlayerElement` requires you to ref - For `ProgressRing`, it requires Lottie dependency. For more information about adding Lottie to your project, see [Lottie for Uno](xref:Uno.Features.Lottie). - For `MediaPlayerElement` on WebAssembly or Gtk, it requires `Uno.WinUI.MediaPlayer.WebAssembly` or `Uno.WinUI.MediaPlayer.Skia.Gtk` NuGet package. For more information, see [MediaPlayerElement](xref:Uno.Controls.MediaPlayerElement). +### UNO0008 + +In Uno Platform 5.5, the `EnableHotReload` method has been deprecated and replaced by `UseStudio()`. + +Note that this change only applies to projects using the Uno.Sdk. If you're not using the Uno.Sdk, you can disable this warning using the following code: + +```xml +#pragma warning disable UNO0008 // Replace with UseStudio() when migrating to the Uno.Sdk. +window.EnableHotReload(); +#pragma warning restore UNO0008 +``` + ## XAML Errors ### UNOX0001 diff --git a/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props b/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props index 296df9d6fe5a..ef290f97a282 100644 --- a/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props +++ b/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props @@ -10,17 +10,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs index b52a5c4e507a..a1f60a65781f 100644 --- a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs +++ b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs @@ -9,7 +9,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = new Window(); #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props index 1cb2d22cd667..bf4abe062445 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props +++ b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props @@ -17,17 +17,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -52,10 +52,10 @@ - + - - + + diff --git a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs index 02b6c1e4e73d..7f9bc9aacef4 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs +++ b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs @@ -75,7 +75,9 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = builder.Window; #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif Host = await builder.NavigateAsync(); diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs index bf27f78b2815..0f72526ed656 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs @@ -21,7 +21,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj index e7d30b60c49b..66c4752e55b7 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -52,7 +52,7 @@ BeforeTargets="AfterBuild"> + Condition=" '$(TargetFramework)' == 'net8.0-windows10.0.26100' OR '$(TargetFramework)' == 'net8.0-desktop' "> <_AssetsToValidate Include="$(OutputPath)Assets\SharedAssets.md" /> <_AssetsToValidate Include="$(OutputPath)Assets\Icons\icon_foreground.png" /> diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj index 4c1a25d4673f..194ad396fa14 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -39,4 +39,4 @@ - \ No newline at end of file + diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj index 3b536a6df335..45540750ad7a 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -39,4 +39,4 @@ - \ No newline at end of file + diff --git a/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj b/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj index ef105687423f..fedfadc3f2d5 100644 --- a/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj +++ b/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj b/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj index ceb179b8eb27..3f8e15879332 100644 --- a/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj +++ b/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj b/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj index c2bd98afb43f..88cdd66cf72f 100644 --- a/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj +++ b/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs index 1979f64729ea..0afcd05f0c42 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs @@ -21,7 +21,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj b/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj index 20a7d5370285..b2359027a9da 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -46,7 +46,7 @@ + Condition="'$(TargetFramework)'=='net8.0-windows10.0.26100'"> net9.0-browserwasm;net9.0-desktop;net9.0 $(TargetFrameworks);net9.0-android;net9.0-ios;net9.0-maccatalyst;net9.0-desktop - $(TargetFrameworks);net9.0-windows10.0.19041 + $(TargetFrameworks);net9.0-windows10.0.26100 $(TargetFrameworks.Replace('net9.0-android','')) @@ -65,7 +65,7 @@ BeforeTargets="AfterBuild"> + Condition=" '$(TargetFramework)' == 'net9.0-windows10.0.26100' OR '$(TargetFramework)' == 'net9.0-desktop' "> <_AssetsToValidate Include="$(OutputPath)Assets\SharedAssets.md" /> <_AssetsToValidate Include="$(OutputPath)Assets\Icons\icon_foreground.png" /> diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index 56348beaf653..bcfc9ee81c8e 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -87,14 +87,14 @@ }, { "group": "hotdesign", - "version": "1.0.0-dev.3", + "version": "1.0.0-dev.53", "packages": [ "Uno.UI.HotDesign" ] }, { "group": "SkiaSharp", - "version": "2.88.8", + "version": "2.88.9-preview.2.2", "packages": [ "SkiaSharp.Skottie", "SkiaSharp.Views.Uno.WinUI", diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index ce5194b7d6b3..7b02dded7571 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -9,7 +9,10 @@ <_UnoProjectSystemPackageReference Include="Uno.Resizetizer" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Sdk.Extras" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" /> - <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" /> + + + + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" Condition=" '$(Optimize)' != 'true' " /> diff --git a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs index 4c3db93087f1..45defc62fbb2 100644 --- a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs +++ b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs @@ -15,7 +15,7 @@ public static class WindowExtensions /// Enables the UI Update cycle of HotReload to be handled by Uno /// /// The window of the application where UI updates will be applied - [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Obsolete("Use the UseStudio() method instead if using the Uno.SDK, otherwise see https://aka.platform.uno/UNO0008 for more details.", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window) @@ -26,7 +26,7 @@ public static void EnableHotReload(this Window window) /// /// The window of the application where UI updates will be applied /// Request to not show the on-canvas indicator by default. - [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Obsolete("Use the UseStudio() method instead if using the Uno.SDK, otherwise see https://aka.platform.uno/UNO0008 for more details.", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window, bool disableIndicator) From b62cc0f55c8293bac4253dcc8eeedf6473fec534 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 11:18:04 -0500 Subject: [PATCH 168/205] chore: Split linux tests into more groups --- .../.azure-devops-project-template-tests.yml | 2 ++ .../test-scripts/run-net7-template-linux.ps1 | 22 +++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index d480011e2920..7eb7ebb14542 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -120,6 +120,8 @@ jobs: TestGroup: '1' group_2: TestGroup: '2' + group_3: + TestGroup: '3' steps: - task: DownloadBuildArtifacts@0 diff --git a/build/test-scripts/run-net7-template-linux.ps1 b/build/test-scripts/run-net7-template-linux.ps1 index 4d92516b0629..7054ce2dc355 100644 --- a/build/test-scripts/run-net7-template-linux.ps1 +++ b/build/test-scripts/run-net7-template-linux.ps1 @@ -48,13 +48,13 @@ $projects = @(0, "5.1/uno51blank/uno51blank.Wasm/uno51blank.Wasm.csproj", @(), @()), # 5.1 Recommended - @(0, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", @(), @()), # 5.2 Blank @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @(), @()), @@ -69,16 +69,16 @@ $projects = @(1, "5.2/uno52Lib/uno52Lib.csproj", @(), @()), # 5.2 Uno NuGet Lib - @(1, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @()), + @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @()), # 5.2 Uno SingleProject Lib - @(1, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @(), @()), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @(), @()), # 5.2 Uno App with Library reference - @(1, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @(), @()), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @(), @()), # 5.3 Blank with net9 - @(2, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()) + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()) # 5.3 blank publish testing # Disabled for LXD setup issues From 564438dcac810c58001e1630227beddfba41769b Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 15:37:40 -0500 Subject: [PATCH 169/205] chore: Adjust test build machine --- .vsts-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 63db333051fd..06d37df6a01c 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -56,10 +56,10 @@ variables: windowsScaledPool: 'Windows2022-20240421' linuxVMImage: 'ubuntu-latest' linuxScaledPool: 'Ubuntu2204-20230918' - macOSVMImage: 'macOS-14' + macOSVMImage: 'macOS-15' macOSVMImage_UITests: 'macOS-14' xCodeRoot: '/Applications/Xcode_16.app' - xCodeRoot_iOS_UITests: '/Applications/Xcode_16.app' + xCodeRoot_iOS_UITests: '/Applications/Xcode_15.3.app' # Offline validation to improve build performance NUGET_CERT_REVOCATION_MODE: offline From 12492515c49684cb7ddd603d9cda9511a24edb9e Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 17:01:50 -0500 Subject: [PATCH 170/205] chore: adjust for missing android 34 sdk on macOS tests --- build/ci/.azure-devops-project-template-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index 7eb7ebb14542..d44825c2442c 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -81,6 +81,11 @@ jobs: inputs: artifactName: 'Nuget_Packages' + # Install android 34 as we're running on macos-15 + - bash: | + echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --install 'platforms;android-34' | tr '\r' '\n' | uniq + displayName: Install Android 34 + - template: templates/gitversion.yml - template: templates/ios-build-select-version.yml From a3f12c99014e1717413b25c1ff549a13a74d0621 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 17:20:28 -0500 Subject: [PATCH 171/205] chore: Adjust android build --- build/ci/.azure-devops-android-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/ci/.azure-devops-android-tests.yml b/build/ci/.azure-devops-android-tests.yml index bd53d98f5391..df4ed81e043b 100644 --- a/build/ci/.azure-devops-android-tests.yml +++ b/build/ci/.azure-devops-android-tests.yml @@ -36,6 +36,11 @@ jobs: - checkout: self clean: true + # Install android 34 as we're running on macos-15 + - bash: | + echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --install 'platforms;android-34' | tr '\r' '\n' | uniq + displayName: Install Android 34 + - template: templates/dotnet-mobile-install-mac.yml - template: templates/nuget-cache.yml From 77af90e84e546e37771312c11d3d7ae49e8ecbd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 7 Nov 2024 22:36:50 -0500 Subject: [PATCH 172/205] fix: Don't include OpenSans for libraries --- src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index 7b02dded7571..9c1fd2afed5b 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -81,7 +81,7 @@ <_UnoProjectSystemPackageReference Include="CommunityToolkit.Mvvm" ProjectSystem="true" /> - + <_UnoProjectSystemPackageReference Include="Uno.Fonts.OpenSans" ProjectSystem="true" /> From 685c1f0dfbbbd0d96d7d7d7d5beed397ecd947dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 7 Nov 2024 22:37:14 -0500 Subject: [PATCH 173/205] chore: Bump settings to latest stable --- src/Uno.Sdk/packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index bcfc9ee81c8e..f173a0417985 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -80,7 +80,7 @@ }, { "group": "settings", - "version": "0.1.0-dev.144", + "version": "1.0.25", "packages": [ "Uno.Settings.DevServer" ] From 854a1f8010b555af0d143d6efa54b2685df73cf3 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:21:18 -0500 Subject: [PATCH 174/205] fix: Use temp file for AddIn discovery instead of output parsing to avoid encoding issues (cherry picked from commit 122646d713dc53c035d28d39596f3a07f8b1cad9) --- src/Uno.Sdk/targets/Uno.Build.targets | 6 +++ .../Extensibility/AddIns.cs | 50 ++++++++++--------- .../Uno.WinUI.DevServer.targets | 6 +++ 3 files changed, 39 insertions(+), 23 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Build.targets b/src/Uno.Sdk/targets/Uno.Build.targets index b91ffbc698e9..cea2c1957747 100644 --- a/src/Uno.Sdk/targets/Uno.Build.targets +++ b/src/Uno.Sdk/targets/Uno.Build.targets @@ -148,6 +148,12 @@ It is useful to determine all target frameworks used by all projects of a solution. --> + Discover(string solutionFile) { - // Note: With .net 9 we need to specify --verbosity detailed to get messages with High importance. - var result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpTargetFrameworks --verbosity detailed"); - var targetFrameworks = GetConfigurationValue(result.output ?? "", "TargetFrameworks") - .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(tfm => tfm.Trim()) - .Where(tfm => tfm is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); + var tmp = Path.GetTempFileName(); + var result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpTargetFrameworks \"-p:UnoDumpTargetFrameworksTargetFile={tmp}\" --verbosity quiet"); + var targetFrameworks = Read(tmp); if (targetFrameworks.IsEmpty) { @@ -37,7 +33,8 @@ public static IImmutableList Discover(string solutionFile) foreach (var targetFramework in targetFrameworks) { - result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpRemoteControlAddIns --verbosity detailed --framework \"{targetFramework}\" -nowarn:MSB4057"); + tmp = Path.GetTempFileName(); + result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpRemoteControlAddIns \"-p:UnoDumpRemoteControlAddInsTargetFile={tmp}\" --verbosity quiet --framework \"{targetFramework}\" -nowarn:MSB4057"); if (!string.IsNullOrWhiteSpace(result.error)) { if (_log.IsEnabled(LogLevel.Warning)) @@ -48,13 +45,7 @@ public static IImmutableList Discover(string solutionFile) continue; } - var addIns = GetConfigurationValue(result.output, "RemoteControlAddIns") - .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(tfm => tfm.Trim()) - .Where(tfm => tfm is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); - + var addIns = Read(tmp); if (!addIns.IsEmpty) { return addIns; @@ -69,9 +60,22 @@ public static IImmutableList Discover(string solutionFile) return ImmutableArray.Empty; } - private static IEnumerable GetConfigurationValue(string msbuildResult, string nodeName) - => Regex - .Matches(msbuildResult, $"<{nodeName}>(?[^\\<\\>]*)", RegexOptions.Singleline) - .Where(match => match.Success) - .Select(match => match.Groups["value"].Value); + private static ImmutableList Read(string file) + { + var values = File + .ReadAllLines(file, Encoding.Unicode) + .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) + .Select(liene => liene.Trim()) + .Where(line => line is { Length: > 0 }) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToImmutableList(); + + try + { + File.Delete(file); + } + catch { } + + return values; + } } diff --git a/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets b/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets index f5f251763e74..2a33b6875fa8 100644 --- a/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets +++ b/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets @@ -33,6 +33,12 @@ + From c2e9f07b80cc8d424476eb9634814c2d3b505558 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:32:20 -0500 Subject: [PATCH 175/205] chore: Fix typo (cherry picked from commit 60f770ce9c660875df343648cd966b31603f1bed) --- src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 92b63671e01e..7c3af7961702 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -65,8 +65,8 @@ private static ImmutableList Read(string file) var values = File .ReadAllLines(file, Encoding.Unicode) .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(liene => liene.Trim()) - .Where(line => line is { Length: > 0 }) + .Select(value => value.Trim()) + .Where(value => value is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); From d3b35cf38152e4dcf834a2d8e8751dcbd4165443 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:35:34 -0500 Subject: [PATCH 176/205] fix: Make the add-in disocvery safer (cherry picked from commit 4151902c67c2834114eca99c11878b2fe9b3657a) --- .../Extensibility/AddIns.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 7c3af7961702..9a065098b8db 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -62,13 +62,18 @@ public static IImmutableList Discover(string solutionFile) private static ImmutableList Read(string file) { - var values = File - .ReadAllLines(file, Encoding.Unicode) - .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(value => value.Trim()) - .Where(value => value is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); + var values = ImmutableList.Empty; + try + { + values = File + .ReadAllLines(file, Encoding.Unicode) + .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) + .Select(value => value.Trim()) + .Where(value => value is { Length: > 0 }) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToImmutableList(); + } + catch { } try { From 5bef37fe40162c7d86bcaae779ce5516561d19cd Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 7 Nov 2024 20:18:15 -0300 Subject: [PATCH 177/205] chore: remove disabled Menu when dispose (cherry picked from commit 9c0456d5eac4cbae0418b77472bcdac26ce948c3) --- src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs b/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs index 7834d2a84f25..76b58839d274 100644 --- a/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs +++ b/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs @@ -152,8 +152,7 @@ public void Dispose() if (_unoMainMenuItem is not null) { - _unoMainMenuItem.Enabled = false; - _unoMainMenuItem.Visible = false; + CommandService.RemoveCommand(_unoMainMenuItem); } } } From 67c4cd67a2c4f6dde326f0e91ba74c6592ad2bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 8 Nov 2024 22:39:23 -0500 Subject: [PATCH 178/205] ci: Don't validate transitive dependencies for template tests (cherry picked from commit d2d72392172e67879f51fc33b4400f6d3e51e0ab) --- build/ci/.azure-devops-project-template-tests.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index d44825c2442c..53bbf5cf2c93 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -25,6 +25,10 @@ jobs: group_4: TestGroup: '4' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: @@ -76,6 +80,10 @@ jobs: group_4: TestGroup: '4' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: @@ -128,6 +136,10 @@ jobs: group_3: TestGroup: '3' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: From 1f5621c59a1f4164e6e8ae720125c1ca976c3472 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 28 Oct 2024 07:44:49 +0100 Subject: [PATCH 179/205] docs: Add in Store Context page (cherry picked from commit ee53078699feaf810daf0b92939a4fe1a0afcaf5) --- .../features/windows-ui-storecontext.md | 24 +++++++++++++++++++ doc/articles/toc.yml | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 doc/articles/features/windows-ui-storecontext.md diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md new file mode 100644 index 000000000000..ce2349205de9 --- /dev/null +++ b/doc/articles/features/windows-ui-storecontext.md @@ -0,0 +1,24 @@ +--- +uid: Uno.Features.StoreContext +--- + +# Store Context + +> [!TIP] +> This article provides Uno-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). + +## In-App Review + +The in-app review feature is currently supported only on Android through Google Play. + +### Google Play Integration + +For Google Play support, make sure to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). + +### Usage + +Once you added the above package to your project, you can prompt users to rate and review your appby using the following code snippet: + +```csharp +await Windows.Services.Store.StoreContext.GetDefault().RequestRateAndReviewAppAsync(); +``` diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index ba788bbdf320..73432e5c82c0 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -629,6 +629,8 @@ href: features/SpeechRecognition.md - name: Step Counter href: features/step-counter.md + - name: Store Context + href: features/windows-ui-storecontext.md - name: Title Bar Customization href: features/windows-ui-viewmanagement.md - name: URI Launcher From 56391c19fe7e77bc7495bd17a809d6252300eae8 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Thu, 7 Nov 2024 15:33:48 +0100 Subject: [PATCH 180/205] chore: Add details for iOS (cherry picked from commit 746f1d8af17f8f1f38eb1af6e1f9d64f1ee78ae3) --- .../features/windows-ui-storecontext.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md index ce2349205de9..1fe2b3bae908 100644 --- a/doc/articles/features/windows-ui-storecontext.md +++ b/doc/articles/features/windows-ui-storecontext.md @@ -9,15 +9,29 @@ uid: Uno.Features.StoreContext ## In-App Review -The in-app review feature is currently supported only on Android through Google Play. +The in-app review feature is currently supported on iOS and Android through Google Play. ### Google Play Integration -For Google Play support, make sure to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). +#### References in a Single Project + +In Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: + +```xml + + ... + GooglePlay; + ... + +``` + +#### References in a Legacy Project + +On all Uno Platform targets, you'll need the to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). ### Usage -Once you added the above package to your project, you can prompt users to rate and review your appby using the following code snippet: +For iOS, no additional steps are needed—you can use the feature via the following snippet directly. On Android, ensure that you've added the above package to your project first. ```csharp await Windows.Services.Store.StoreContext.GetDefault().RequestRateAndReviewAppAsync(); From e9fa9ef7ad335fc2f6bec066a94173f9f9f6bc3e Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Thu, 7 Nov 2024 16:02:29 +0100 Subject: [PATCH 181/205] chore: Adjust cSpell (cherry picked from commit cd8986e3edde31844653cf215cb0a6323b4f5850) --- build/cSpell.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/cSpell.json b/build/cSpell.json index 550040fd683d..53432b651001 100644 --- a/build/cSpell.json +++ b/build/cSpell.json @@ -202,7 +202,8 @@ "jlaban", "sasakrsmanovic", "maccatalyst", - "settingscard" + "settingscard", + "storecontext" ], "patterns": [ { From 2a3ac67f7fa8398c854602ca46630f0d20578be1 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 9 Nov 2024 11:52:25 +0100 Subject: [PATCH 182/205] chore: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban (cherry picked from commit 9aa0d33b935565a0c4d046b94f77cc75296322b3) --- doc/articles/features/windows-ui-storecontext.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md index 1fe2b3bae908..c7ed2db5b65f 100644 --- a/doc/articles/features/windows-ui-storecontext.md +++ b/doc/articles/features/windows-ui-storecontext.md @@ -5,7 +5,7 @@ uid: Uno.Features.StoreContext # Store Context > [!TIP] -> This article provides Uno-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). +> This article provides Uno Platform-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). ## In-App Review @@ -15,7 +15,7 @@ The in-app review feature is currently supported on iOS and Android through Goog #### References in a Single Project -In Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: +In an Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: ```xml From 686355a512566eeaefd9ce95c1a8aac91d5d42b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 23:40:14 +0000 Subject: [PATCH 183/205] chore(deps): bump Refit from 7.0.0 to 8.0.0 in /src/Uno.UI.TestComparer Bumps [Refit](https://github.com/reactiveui/refit) from 7.0.0 to 8.0.0. - [Release notes](https://github.com/reactiveui/refit/releases) - [Commits](https://github.com/reactiveui/refit/compare/7.0.0...8.0.0) --- updated-dependencies: - dependency-name: Refit dependency-type: direct:production ... Signed-off-by: dependabot[bot] (cherry picked from commit 67886a079c3d7482979445adb61e29ac1766c3f1) --- src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj b/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj index 80b29c392991..b4a86b333789 100644 --- a/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj +++ b/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj @@ -18,7 +18,7 @@ - + From ec79093be2fab6d154a620294b4d7ba701e21806 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 8 Nov 2024 16:01:41 -0500 Subject: [PATCH 184/205] fix: Fix the discovered processor list additive (cherry picked from commit be56be494c1d7b6a77044bf218573e15d36da99c) --- src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs index dbb9d80fb160..ff91e6531b23 100644 --- a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs +++ b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs @@ -28,6 +28,7 @@ internal class RemoteControlServer : IRemoteControlServer, IDisposable private static readonly Dictionary _loadContexts = new(); private static readonly Dictionary _resolveAssemblyLocations = new(); private readonly Dictionary _processors = new(); + private readonly List _discoveredProcessors = new(); private readonly CancellationTokenSource _ct = new(); private WebSocket? _socket; @@ -257,7 +258,6 @@ private async Task ProcessPingFrame(Frame frame) private async Task ProcessDiscoveryFrame(Frame frame) { var assemblies = new List<(string path, System.Reflection.Assembly assembly)>(); - var discoveredProcessors = new List(); try { var msg = JsonConvert.DeserializeObject(frame.Content)!; @@ -358,12 +358,12 @@ private async Task ProcessDiscoveryFrame(Frame frame) { if (ActivatorUtilities.CreateInstance(_serviceProvider, processor.ProcessorType, parameters: new[] { this }) is IServerProcessor serverProcessor) { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); RegisterProcessor(serverProcessor); } else { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false)); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false)); if (this.Log().IsEnabled(LogLevel.Debug)) { this.Log().LogDebug("Failed to create server processor {ProcessorType}", processor.ProcessorType); @@ -372,7 +372,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) } catch (Exception error) { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false, LoadError: error.ToString())); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false, LoadError: error.ToString())); if (this.Log().IsEnabled(LogLevel.Error)) { this.Log().LogError(error, "Failed to create server processor {ProcessorType}", processor.ProcessorType); @@ -404,7 +404,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) { await SendFrame(new ProcessorsDiscoveryResponse( assemblies.Select(asm => asm.path).ToImmutableList(), - discoveredProcessors.ToImmutableList())); + _discoveredProcessors.ToImmutableList())); } } From 340feb885ed3d462cf8cbc1bfa76f89e74ceb472 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 8 Nov 2024 16:13:44 -0500 Subject: [PATCH 185/205] fix: Make sure if a processor is reported more than once the client handles it properly (cherry picked from commit 1071846d929dc5458fc83756b04c9ac17921eb74) --- .../RemoteControlClient.Status.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs index f7a9dd9543bd..047415e4a9db 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs @@ -150,7 +150,19 @@ public void ReportServerProcessors(ProcessorsDiscoveryResponse response) static IEnumerable GetMissingServerProcessors(ImmutableHashSet requiredProcessors, ProcessorsDiscoveryResponse response) { - var loaded = response.Processors.ToDictionary(p => p.Type, StringComparer.OrdinalIgnoreCase); + var loaded = response + .Processors + .GroupBy(p => p.Type, StringComparer.OrdinalIgnoreCase) + // If a processors is being loaded multiple times, we prefer to keep the result that has no error. + .Select(g => g + .OrderBy(p => p switch + { + { LoadError: not null } => 0, + { IsLoaded: false } => 1, + _ => 2 + }) + .Last()) + .ToDictionary(p => p.Type, StringComparer.OrdinalIgnoreCase); foreach (var required in requiredProcessors) { if (!loaded.TryGetValue(required.TypeFullName, out var actual)) From 6093882e6a27ed351d1aad66fd40207bd27e9bb9 Mon Sep 17 00:00:00 2001 From: Tylor Pater Date: Mon, 21 Oct 2024 16:53:50 -0400 Subject: [PATCH 186/205] docs: Correct closing tag Fix typo (cherry picked from commit 195e7042dca654368b8c6b3ad7000fa7846a4d38) --- doc/articles/features/unhandled-exceptions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/features/unhandled-exceptions.md b/doc/articles/features/unhandled-exceptions.md index 453bc0d81f8d..c3b857a3fe43 100644 --- a/doc/articles/features/unhandled-exceptions.md +++ b/doc/articles/features/unhandled-exceptions.md @@ -8,7 +8,7 @@ Starting Uno Platform 5.4, we are generating a generic handler for `Application. ```xml - true + true ``` From aba082d457b9c2013adc2ad355cd4ee6ca7f2c99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sun, 10 Nov 2024 10:22:45 -0500 Subject: [PATCH 187/205] fix: Adjust implicit package inclusion --- .../targets/Uno.Implicit.Packages.ProjectSystem.targets | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index 9c1fd2afed5b..e3fdaee234a4 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -11,8 +11,9 @@ <_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" /> - - <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" Condition=" '$(Optimize)' != 'true' " /> + + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Exclude="all" Condition="$(Optimize) == 'true'" /> From 3e1ea3a50380b7a671b5c8a9cabfc89291ff4041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sun, 10 Nov 2024 15:33:41 -0500 Subject: [PATCH 188/205] fix: Don't include packages on release builds --- .../targets/Uno.Implicit.Packages.ProjectSystem.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index e3fdaee234a4..6c9e0a81f315 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -13,12 +13,12 @@ <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> - <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Exclude="all" Condition="$(Optimize) == 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Exclude="all" IncludeAssets="None" Condition="$(Optimize) == 'true'" /> <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> - <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Exclude="all" Condition="$(Optimize) == 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Exclude="all" IncludeAssets="None" Condition="$(Optimize) == 'true'" /> From 75163d0d6eec3f13c2feb049faf0af85d6d5b9e0 Mon Sep 17 00:00:00 2001 From: Kunal22shah Date: Mon, 11 Nov 2024 15:34:15 -0500 Subject: [PATCH 189/205] docs: proper class name (cherry picked from commit 91d25a4127920e86644dda9a78f6896f8b1d9584) --- .../getting-started/counterapp/get-started-counter-xaml-mvux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md index 7f8ff7f3a136..9b4dbbeb9f8b 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md @@ -89,7 +89,7 @@ Also, for more information on all the template options, see [Using the Uno Platf ## Data Binding -Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. +Now that we have the **`MainModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. - Add a **`DataContext`** element to the **`Page`** element in the **MainPage.xaml** file. From 682c90e120a5478e41010b7be9eecf9821481b79 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:28:05 +0100 Subject: [PATCH 190/205] docs: Add Sign in with Uno page (cherry picked from commit 1eb2127bde24fffaa524dcc83600869bb4851a85) --- doc/articles/Assets/uno-settings-main.png | Bin 0 -> 23220 bytes doc/articles/Assets/uno-settings-popup.png | Bin 0 -> 3535 bytes doc/articles/Assets/uno-settings-rider.png | Bin 0 -> 66360 bytes doc/articles/Assets/uno-settings-vs.png | Bin 0 -> 6342 bytes doc/articles/Assets/uno-settings-vsc.png | Bin 0 -> 26458 bytes doc/articles/Assets/uno-settings-welcome.png | Bin 0 -> 27159 bytes doc/articles/Assets/uno-vsc-csproj.gif | Bin 0 -> 440013 bytes doc/articles/get-started-licensing.md | 63 +++++++++++++++++++ 8 files changed, 63 insertions(+) create mode 100644 doc/articles/Assets/uno-settings-main.png create mode 100644 doc/articles/Assets/uno-settings-popup.png create mode 100644 doc/articles/Assets/uno-settings-rider.png create mode 100644 doc/articles/Assets/uno-settings-vs.png create mode 100644 doc/articles/Assets/uno-settings-vsc.png create mode 100644 doc/articles/Assets/uno-settings-welcome.png create mode 100644 doc/articles/Assets/uno-vsc-csproj.gif create mode 100644 doc/articles/get-started-licensing.md diff --git a/doc/articles/Assets/uno-settings-main.png b/doc/articles/Assets/uno-settings-main.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3d037adf46cc4f2088bd81ca29db4c9ce18340 GIT binary patch literal 23220 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 J$(|#b{{~&~_=^Al literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-popup.png b/doc/articles/Assets/uno-settings-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..74a2b5d5a85b59821e4a8b0ecef982f0484e1b90 GIT binary patch literal 3535 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-rider.png b/doc/articles/Assets/uno-settings-rider.png new file mode 100644 index 0000000000000000000000000000000000000000..419216ab8ab7ee1d65d9a86615d0fa221cc244d4 GIT binary patch literal 66360 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-vsc.png b/doc/articles/Assets/uno-settings-vsc.png new file mode 100644 index 0000000000000000000000000000000000000000..5a81f957ac17050ed69c6c1d0c70ff1b1ca52e26 GIT binary patch literal 26458 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-vsc-csproj.gif b/doc/articles/Assets/uno-vsc-csproj.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf2e92b30c00356a3c6f5f257d83fa53ff4335b6 GIT binary patch literal 440013 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�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

=_>2&P{7wR;M-}n2a`z(vlzfjD4e|Wvv(7 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±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[NOTE] + > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. + > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) + +### [**Visual Studio Code**](#tab/vscode) + +If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: + +1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. +2. After opening your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. + ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) +3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) + +### [**JetBrains Rider**](#tab/rider) + +If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: + +1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. +2. Go to **Tools** > **Uno Platform** > **Settings...**. + ![Visual Studio Code Menu](Assets/uno-settings-rider.png) + +--- + +1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. + ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) +2. Once signed in, you’ll see confirmation of your account with license details and can use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, see the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings Welcome](Assets/uno-settings-main.png) + +## Questions + +For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. + +If you encounter any issues or need further assistance, reach out on our [community forum](https://platform.uno/community) or connect with us via the [Uno Platform GitHub](https://github.com/unoplatform). From 5b043463e65f1bdc1cf93c46059941cd74d21028 Mon Sep 17 00:00:00 2001 From: Sasha Krsmanovic <33944563+sasakrsmanovic@users.noreply.github.com> Date: Fri, 8 Nov 2024 12:20:17 -0500 Subject: [PATCH 191/205] chore: Update doc/articles/get-started-licensing.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Agnès ZITTE <16295702+agneszitte@users.noreply.github.com> (cherry picked from commit 85ea2b8c23140aa66f308ad4b7cf03f8b0aa4093) --- doc/articles/get-started-licensing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index e517726a7fb9..37e7261978bd 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -10,7 +10,7 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. -3. On the registration page, fill in your information, including your email, name, country, and password. Once done, click on **Sign up**. +3. On the registration page, fill in your information. Once done, click on **Sign up**. 4. You will receive a confirmation email from **no-reply@platform.uno**. Click on **Confirm Email** to activate your account. 5. You should then see the Sign in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. From 5126d3453835d85e6a156d1b6ecd10430e6ed7c1 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:05:54 +0100 Subject: [PATCH 192/205] chore: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Agnès ZITTE <16295702+agneszitte@users.noreply.github.com> (cherry picked from commit 3920e83a70d5ff72a8c20c72ce7f861bfbd6ac04) --- doc/articles/get-started-licensing.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 37e7261978bd..5760d0661f4e 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -11,8 +11,8 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. 3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from **no-reply@platform.uno**. Click on **Confirm Email** to activate your account. -5. You should then see the Sign in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. +4. You will receive a confirmation email from **no-reply@platform.uno**. Click on the **Confirm Email** button in the content of the email to activate your account. +5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -25,7 +25,7 @@ After creating your Uno Platform account, follow the steps below to sign in to y If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), you can sign in with your Uno Platform account as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening your project, a popup should appear. Click **Sign In / Register**. +2. After opening and loading completely your project, a popup should appear. Click **Sign In / Register**. ![Visual Studio 2022 Popup](Assets/uno-settings-popup.png) >![NOTE] > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. @@ -36,7 +36,7 @@ If you’ve already set up **Visual Studio 2022** by following [Get Started on V If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. +2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) 3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) From 04e9d5664f30cd665abad702d4fda08e2d3475de Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 11 Nov 2024 23:45:06 +0100 Subject: [PATCH 193/205] chore: Update screenshots (cherry picked from commit 3104ec53e13c32a0ad60dcacaf29612600d45183) --- doc/articles/Assets/uno-settings-main.png | Bin 23220 -> 21616 bytes doc/articles/Assets/uno-settings-menu.png | Bin 0 -> 32874 bytes .../Assets/uno-settings-rider-popup.png | Bin 0 -> 8980 bytes .../Assets/uno-settings-vsc-popup.png | Bin 0 -> 6551 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/articles/Assets/uno-settings-menu.png create mode 100644 doc/articles/Assets/uno-settings-rider-popup.png create mode 100644 doc/articles/Assets/uno-settings-vsc-popup.png diff --git a/doc/articles/Assets/uno-settings-main.png b/doc/articles/Assets/uno-settings-main.png index 9c3d037adf46cc4f2088bd81ca29db4c9ce18340..592dc6868a402b668359cb02daf4265cc441be52 100644 GIT binary patch literal 21616 zcmbTe2UJsA*Df52h>BDZ6$C_zsB}eoQ4~>%fCxxcKty`)O;kXnm!MPu14@%nLsz6r zQF=#;H0eE%@XvkD`NqB9Ki==Y@4aJ$p-FbuUVE)sp68i!@8El?ipP(hIf_D|jw{_( z&_JO`Nl_@0Y)T6F1Y3RJ3jdHeYA9Yu<+ZcS!5eaOc@=pSsv!K>{-Zluszz69K7FUp#rlrJ(?5M)hrZNE%N^v<5=u=OO--Y`KjfFyluQ5V)WnCT z*AZ5qRJOJQ#U}?`+rK9pJTbrawy!XJ?z?-6h&lfk>E)z>fl$uqX3h&mJ2N~SvI-n@ zr_)q9=rIcH3W0YNy3K^FCt`${p5zOw;@GyND?$-1jTjc-(0Q?;K7k zD0Bxqy?l|X$xWJMhi*3Czb5ynmyseRFRPGfAaRo;V%gyP_EvDv*R(=vOnJKt)u9wh zmbs;~b9e=X6Ecbt@oaN=`HQm(>_Y~vF49NYh9vYv zf~djS4idUUAMPC%m(7qYaoQ|b9;EodP7l92XE5ZnsexJK_1dw0@ssx(lj|LUgqnmt z2}5UzAs6{(PY&aXU8lw2`H_hvU2Q3Dj``uE)^_UweL}b%Ts;>Y(qsvTSme9dINPjR z?F=xvPvW@m?=%=X_*PfnkHGcyv6! zfj9r5WXgUk)sp56t2-!Dai-_}xA>iU3EUjEyDT~md_g9fLlKU+KPRKjN|D3!PUv&6 zFIczE(W7+HG%r8X49w>2sdQ^iTh>xuuMStSG2$jQJR)C?)l)|2$uNw z?w#C*{m4?}Wh<+fh8#q|YqX-lAw{1z$FnSN$_@LVwY!rg5-e-xFnLrNy(= zIoFPFVdDE7WTrg#xL=m3CDC=5c*xh3y)-bF9@`zYEhQPd(&@?9idBtMu^QaricqMv zWWbb{l!%%SShHW_%M5v&k-e=MF@!ZMR1>w9$j)U{Y-m~%71a^*|Y<9w}#t%gFHNx|AlV;kg|_sHG%0Eic(|8|xdiaDUS$?07ThA_Ell3{8p<^1b z2lM66JsxdqcJ8rEZB>?hh$0v7OrUTPcMW+shjK5?=FIRm5wnF-9z6KLHy z#zn;z%ru!#i?ofTmHK!tqT#@)Wh&YQ`LAOlCLS5mtY?XL4zlK<(g(8;)aX z+Qi8;OXTB*u!$8)+P)dEbHfy-RaOtT-YrD4MlWu-W3UDS%sw`)7=Z*)`HMw_x$n=V z&^Vv>^B0dUN*$__6&)(HFgZWuGc}∓F*fO1nW2jrW^yDT@P5q94=059|{h3D;vU`7D+i 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 Y{kE~k`mPnQCDbJ;abv;_(w4Hn0pwSxwEzGB literal 23220 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 J$(|#b{{~&~_=^Al diff --git a/doc/articles/Assets/uno-settings-menu.png b/doc/articles/Assets/uno-settings-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..7a90740b8431b0185e77c9af6de22de13d672933 GIT binary patch literal 32874 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-rider-popup.png b/doc/articles/Assets/uno-settings-rider-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..b3d7d36a904190e25750a25609a360a6deeb46ff GIT binary patch literal 8980 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 literal 0 HcmV?d00001 From 21c2a82467ff2888b988034cbf5023c4c5e18f8d Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 11 Nov 2024 23:50:23 +0100 Subject: [PATCH 194/205] chore: Sign in to Uno adjustments (cherry picked from commit ef003a0abccd74a3d40aa7b0cdf49720253d50f0) --- doc/articles/get-started-licensing.md | 31 +++++++++++++++++---------- doc/articles/toc.yml | 2 ++ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 5760d0661f4e..2c60c39fab4a 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -4,14 +4,14 @@ uid: Uno.GetStarted.Licensing # Sign in with Uno Platform -Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider—to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno community to share feedback and network. +Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider—to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. ## Create your account 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. 3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from **no-reply@platform.uno**. Click on the **Confirm Email** button in the content of the email to activate your account. +4. You will receive a confirmation email from **no-reply@platform.uno**. Follow the instructions in the email to activate your account. 5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -22,13 +22,13 @@ After creating your Uno Platform account, follow the steps below to sign in to y ### [**Visual Studio 2022**](#tab/vs2022) -If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), you can sign in with your Uno Platform account as follows: +If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, a popup should appear. Click **Sign In / Register**. +2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. ![Visual Studio 2022 Popup](Assets/uno-settings-popup.png) >![NOTE] - > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. + > If the popup doesn’t appear, access Uno Platform settings by clicking on **Extensions** > **Uno Platform** > **Settings...**. > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) @@ -38,23 +38,32 @@ If you’ve already set up **Visual Studio Code** by following [Get Started on V 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. 2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) -3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. - ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) +3. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. + ![Visual Studio Code Menu](Assets/uno-settings-vsc-popup.png) + >![NOTE] + > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. Go to **Tools** > **Uno Platform** > **Settings...**. - ![Visual Studio Code Menu](Assets/uno-settings-rider.png) +2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. + ![JetBrains Rider Popup](Assets/uno-settings-rider-popup.png) + >![NOTE] + > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **Tools** > **Uno Platform** > **Settings...**. + > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) -2. Once signed in, you’ll see confirmation of your account with license details and can use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, see the [Hot Reload documentation](xref:Uno.Features.HotReload). - ![Uno Platform Settings Welcome](Assets/uno-settings-main.png) +2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings](Assets/uno-settings-main.png) + >![TIP] + > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. + > ![Uno Platform Menu](Assets/uno-settings-menu.png) ## Questions diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index 73432e5c82c0..8fa1b5f3f306 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -32,6 +32,8 @@ - name: Troubleshoot topicHref: xref:Uno.UI.CommonIssues items: + - name: Sign in with Uno Platform + href: xref:Uno.GetStarted.Licensing - name: All Development Environments href: xref:Uno.UI.CommonIssues.AllIDEs - name: Visual Studio 2022 for Windows From ab00eaf046fe3e6da9cd1f43222ffe4454436fe3 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Tue, 12 Nov 2024 18:34:08 +0100 Subject: [PATCH 195/205] chore: Adjustments after review (cherry picked from commit b2194a7abe40abbfd790486200fef43bbc5d0029) --- .../Assets/uno-settings-notification.png | Bin 0 -> 3815 bytes doc/articles/Assets/uno-settings-popup.png | Bin 3535 -> 0 bytes ...ng => uno-settings-rider-notification.png} | Bin ....png => uno-settings-vsc-notification.png} | Bin doc/articles/Assets/uno-settings-welcome.png | Bin 27159 -> 24057 bytes doc/articles/Assets/uno-vsc-csproj.gif | Bin 440013 -> 0 bytes doc/articles/get-started-licensing.md | 63 ++++++++++-------- 7 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 doc/articles/Assets/uno-settings-notification.png delete mode 100644 doc/articles/Assets/uno-settings-popup.png rename doc/articles/Assets/{uno-settings-rider-popup.png => uno-settings-rider-notification.png} (100%) rename doc/articles/Assets/{uno-settings-vsc-popup.png => uno-settings-vsc-notification.png} (100%) delete mode 100644 doc/articles/Assets/uno-vsc-csproj.gif diff --git a/doc/articles/Assets/uno-settings-notification.png b/doc/articles/Assets/uno-settings-notification.png new file mode 100644 index 0000000000000000000000000000000000000000..fa13fd5c64305b32020576acc6838fc0523f891a GIT binary patch literal 3815 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-popup.png b/doc/articles/Assets/uno-settings-popup.png deleted file mode 100644 index 74a2b5d5a85b59821e4a8b0ecef982f0484e1b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3535 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 diff --git a/doc/articles/Assets/uno-settings-rider-popup.png b/doc/articles/Assets/uno-settings-rider-notification.png similarity index 100% rename from doc/articles/Assets/uno-settings-rider-popup.png rename to doc/articles/Assets/uno-settings-rider-notification.png diff --git a/doc/articles/Assets/uno-settings-vsc-popup.png b/doc/articles/Assets/uno-settings-vsc-notification.png similarity index 100% rename from doc/articles/Assets/uno-settings-vsc-popup.png rename to doc/articles/Assets/uno-settings-vsc-notification.png diff --git a/doc/articles/Assets/uno-settings-welcome.png b/doc/articles/Assets/uno-settings-welcome.png index 1f814f20fe3e41482cb64cef245fad4af7972c04..623a53e4a4618c98d430cbd527a596894de4c987 100644 GIT binary patch literal 24057 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 diff --git a/doc/articles/Assets/uno-vsc-csproj.gif b/doc/articles/Assets/uno-vsc-csproj.gif deleted file mode 100644 index bf2e92b30c00356a3c6f5f257d83fa53ff4335b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440013 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�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

=_>2&P{7wR;M-}n2a`z(vlzfjD4e|Wvv(7 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±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[NOTE] - > If the popup doesn’t appear, access Uno Platform settings by clicking on **Extensions** > **Uno Platform** > **Settings...**. - > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![Visual Studio 2022 notification](Assets/uno-settings-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. +> +> ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: -1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. - ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) -3. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. - ![Visual Studio Code Menu](Assets/uno-settings-vsc-popup.png) - >![NOTE] - > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. - > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![Visual Studio Code Menu](Assets/uno-settings-vsc-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. +> +> ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: -1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. - ![JetBrains Rider Popup](Assets/uno-settings-rider-popup.png) - >![NOTE] - > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **Tools** > **Uno Platform** > **Settings...**. - > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![JetBrains Rider notification](Assets/uno-settings-rider-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. +> +> ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. + ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) + 2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings](Assets/uno-settings-main.png) - >![TIP] - > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. - > ![Uno Platform Menu](Assets/uno-settings-menu.png) + +> [!TIP] +> You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. +> +> ![Uno Platform Menu](Assets/uno-settings-menu.png) + +- After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. ## Questions For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. -If you encounter any issues or need further assistance, reach out on our [community forum](https://platform.uno/community) or connect with us via the [Uno Platform GitHub](https://github.com/unoplatform). +If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via the [Uno Platform GitHub](https://github.com/unoplatform), or reach out on our [contact page](https://platform.uno/contact). From 970500751eb351fae505aa57a850853026accf6e Mon Sep 17 00:00:00 2001 From: agneszitte Date: Tue, 12 Nov 2024 21:07:57 -0500 Subject: [PATCH 196/205] docs: Improve licensing, troubleshooting, and app creation sections with additional fixes (cherry picked from commit c341e1a2b14583d0b81426248316b815b40ec7ee) --- doc/articles/common-issues.md | 15 ++++- doc/articles/create-an-app-rider.md | 10 ++- doc/articles/create-an-app-vs2022.md | 11 ++++ doc/articles/create-an-app-vscode.md | 12 +++- doc/articles/get-started-licensing.md | 87 ++++++++++++++++----------- doc/articles/toc.yml | 51 ++++++++++------ 6 files changed, 130 insertions(+), 56 deletions(-) diff --git a/doc/articles/common-issues.md b/doc/articles/common-issues.md index 02a49c02dd84..b7d6545304ab 100644 --- a/doc/articles/common-issues.md +++ b/doc/articles/common-issues.md @@ -10,9 +10,17 @@ The Uno Platform features and support are constantly evolving, yet you may encou A better resource for high-level questions about Uno Platform is the [general FAQ](xref:Uno.Development.FAQ). +## Sign in with Uno Platform + +Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider, to unlock powerful tools like Hot Reload, helping you speed up development. + +More detailed information is available [here](xref:Uno.GetStarted.Licensing). + ## Hot Reload -More troubleshooting information is available [in this section](xref:Uno.Features.HotReload#troubleshooting). +When using Hot Reload, ensure you first review the [supported features](xref:Uno.Features.HotReload#features), [supported features per OS](xref:Uno.Features.HotReload#supported-features-per-os), and [supported features per platform](xref:Uno.Features.HotReload#supported-features-per-platform). + +If issues persist, additional troubleshooting information is available in [this section](xref:Uno.Features.HotReload#troubleshooting). ## Development Environments @@ -28,6 +36,11 @@ More troubleshooting information is available [in this section](xref:Uno.Feature - [Common issues on iOS/mac Catalyst](xref:Uno.UI.CommonIssues.IosCatalyst) - [Common issues on UWP](xref:Uno.UI.CommonIssues.UWP) +## Build Errors + +- [Troubleshooting build errors](xref:Uno.Development.Troubleshooting) +- [Build error codes](xref:Build.Solution.error-codes) + ## Next Steps Learn more about: diff --git a/doc/articles/create-an-app-rider.md b/doc/articles/create-an-app-rider.md index c3a46afd8e56..08990930a953 100644 --- a/doc/articles/create-an-app-rider.md +++ b/doc/articles/create-an-app-rider.md @@ -74,7 +74,15 @@ Creating an Uno Platform project is done [using dotnet new](xref:Uno.GetStarted. --- > [!IMPORTANT] -> A notification window will appear for the free registration of the extension. If the notification disappears before you can enter the license, you can find it again in the "Notification Bell" icon at the top right of the Rider window. +> A notification should appear prompting you to sign in or register with Uno Platform. +> +> Signing in with your Uno Platform account in Rider unlocks powerful tools like Hot Reload, helping you speed up development. +> +> With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. +> +> Detailed information on registration and sign-in is available here. +> +> ![Uno Platform Sign in / Register notification](Assets/uno-settings-rider-notification.png) ### Considerations for macOS and Linux diff --git a/doc/articles/create-an-app-vs2022.md b/doc/articles/create-an-app-vs2022.md index 106fdae6bb28..26b547e8334c 100644 --- a/doc/articles/create-an-app-vs2022.md +++ b/doc/articles/create-an-app-vs2022.md @@ -35,6 +35,17 @@ To create an Uno Platform app: 1. A banner at the top of the editor may ask to reload projects, click **Reload projects**: ![Visual Studio - A banner indicating to reload projects](Assets/quick-start/vs2022-project-reload.png) +1. > [!IMPORTANT] + > A notification should appear prompting you to sign in or register with Uno Platform. + > + > Signing in with your Uno Platform account in Visual Studio unlocks powerful tools like Hot Reload, helping you speed up development. + > + > With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. + > + > Detailed information on registration and sign-in is available here. + > + > ![Uno Platform sign in / register notification](Assets/uno-settings-notification.png) + ## Debug the App ### [**Desktop**](#tab/desktop) diff --git a/doc/articles/create-an-app-vscode.md b/doc/articles/create-an-app-vscode.md index 9342297f0d71..d9645eedd0b4 100644 --- a/doc/articles/create-an-app-vscode.md +++ b/doc/articles/create-an-app-vscode.md @@ -43,8 +43,16 @@ Next, open the project using Visual Studio Code: * Visual Studio Code might ask to restore the NuGet packages. Allow it to restore them if asked. * Once the solution has been loaded, in the status bar at the bottom left of VS Code, `MyApp.sln` is selected by default. Select `MyApp.csproj` to load the project instead. -> [!IMPORTANT] -> A notification window will appear for the free registration of the extension. If the notification disappears before you can enter the license, you can find it again in the "Notification Bell" icon at the bottom right of the VS Code window. +* > [!IMPORTANT] + > A notification should appear prompting you to sign in or register with Uno Platform. + > + > Signing in with your Uno Platform account in Visual Studio Code unlocks powerful tools like Hot Reload, helping you speed up development. + > + > With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. + > + > Detailed information on registration and sign-in is available here. + > + > ![Uno Platform Sign in / Register notification](Assets/uno-settings-vsc-notification.png) ## Debug the App diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index d51ebf91fb57..e4884171da8f 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -9,10 +9,10 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St ## Create your account 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). -2. Enter your email address and click on **Register**. -3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from `no-reply@platform.uno`. Follow the instructions in the email to activate your account. -5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. +1. Enter your email address and click on **Register**. +1. On the registration page, fill in your information. Once done, click on **Sign up**. +1. You will receive a confirmation email from `no-reply@platform.uno`. Follow the instructions in the email to activate your account. +1. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -22,62 +22,81 @@ After creating your Uno Platform account, follow the steps below to sign in to y ### [**Visual Studio 2022**](#tab/vs2022) -If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), sign in as follows: +If you’ve already set up **Visual Studio 2022** by following the [Get Started on Visual Studio 2022](xref:Uno.GetStarted.vs2022) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Creating an app with Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. ![Visual Studio 2022 notification](Assets/uno-settings-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. -> -> ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) + > [!TIP] + > Ensure that the lower left IDE icon shows a check mark and says "Ready" ![A checkmark with a text saying ready](getting-started/wizard/assets/vs2022-ready-statusbar.png). This ensures that the projects have been created, and their dependencies have been restored completely. + > + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. + > + > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) -If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: +If you’ve already set up **Visual Studio Code** by following the [Get Started on VS Code](xref:Uno.GetStarted.vscode) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Creating an app with VS Code](xref:Uno.GettingStarted.CreateAnApp.VSCode) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. - ![Visual Studio Code Menu](Assets/uno-settings-vsc-notification.png) + ![Visual Studio Code notification](Assets/uno-settings-vsc-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. -> -> ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + > + > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) -If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: +If you’ve already set up **JetBrains Rider** by following the [Get Started on JetBrains Rider](xref:Uno.GetStarted.Rider) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Create an app with JetBrains Rider](xref:Uno.GettingStarted.CreateAnApp.Rider) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. ![JetBrains Rider notification](Assets/uno-settings-rider-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. -> -> ![JetBrains Rider Menu](Assets/uno-settings-rider.png) + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. + > + > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- +### Uno Platform Settings window + 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) -2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). +1. Once signed in, you’ll see a confirmation of your account along with your license details. + + You can then use the **Hot Reload** feature to speed up your workflow and test changes in real-time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). - ![Uno Platform Settings](Assets/uno-settings-main.png) + ![Uno Platform Settings signed in](Assets/uno-settings-main.png) -> [!TIP] -> You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. -> -> ![Uno Platform Menu](Assets/uno-settings-menu.png) + > [!TIP] + > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes, and **Sign out**. + > + > ![Uno Platform Settings Menu](Assets/uno-settings-menu.png) -- After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. +1. After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. ## Questions For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. -If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via the [Uno Platform GitHub](https://github.com/unoplatform), or reach out on our [contact page](https://platform.uno/contact). +If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via [GitHub](https://github.com/unoplatform/uno/discussions), or reach out on our [contact page](https://platform.uno/contact). diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index 8fa1b5f3f306..610381a5feb8 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -32,26 +32,41 @@ - name: Troubleshoot topicHref: xref:Uno.UI.CommonIssues items: + - name: Overview + href: xref:Uno.UI.CommonIssues - name: Sign in with Uno Platform href: xref:Uno.GetStarted.Licensing - - name: All Development Environments - href: xref:Uno.UI.CommonIssues.AllIDEs - - name: Visual Studio 2022 for Windows - href: xref:Uno.UI.CommonIssues.vs2022 - - name: VS Code - href: xref:Uno.UI.CommonIssues.vscode - - name: WebAssembly - href: xref:Uno.UI.CommonIssues.Wasm - - name: UWP - href: xref:Uno.UI.CommonIssues.UWP - - name: Skia (Gtk/Wpf/Framebuffer) - href: xref:Uno.UI.CommonIssues.Skia - - name: iOS/mac Catalyst - href: xref:Uno.UI.CommonIssues.IosCatalyst - - name: Troubleshooting build errors - href: uno-builds-troubleshooting.md - - name: Build error codes - href: xref:Build.Solution.error-codes + - name: Hot Reload + topicHref: xref:Uno.Features.HotReload#troubleshooting + - name: Development Environments + topicHref: xref:Uno.UI.CommonIssues.AllIDEs + items: + - name: All Development Environments + href: xref:Uno.UI.CommonIssues.AllIDEs + - name: Visual Studio 2022 for Windows + href: xref:Uno.UI.CommonIssues.vs2022 + - name: VS Code + href: xref:Uno.UI.CommonIssues.vscode + - name: Rider + href: xref:Uno.UI.CommonIssues.rider + - name: Platforms + topicHref: xref:Uno.UI.CommonIssues.Wasm + items: + - name: WebAssembly + href: xref:Uno.UI.CommonIssues.Wasm + - name: UWP + href: xref:Uno.UI.CommonIssues.UWP + - name: Skia (Gtk/Wpf/Framebuffer) + href: xref:Uno.UI.CommonIssues.Skia + - name: iOS/mac Catalyst + href: xref:Uno.UI.CommonIssues.IosCatalyst + - name: Build Errors + topicHref: xref:Uno.Development.Troubleshooting + items: + - name: Troubleshooting build errors + href: xref:Uno.Development.Troubleshooting + - name: Build error codes + href: xref:Build.Solution.error-codes - name: Samples & Tutorials topicHref: xref:Uno.SamplesTutorials.Overview From 6578f138bc5ca967a239e55813c6acbf6ed29aad Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:11:58 +0100 Subject: [PATCH 197/205] chore: Update intro wording Co-authored-by: Nick Randolph (cherry picked from commit 0593bb32a156089cd40b065f402f041150776bdc) --- doc/articles/get-started-licensing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index e4884171da8f..4c48409783d0 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -4,7 +4,7 @@ uid: Uno.GetStarted.Licensing # Sign in with Uno Platform -Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider, to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. +Sign in with your Uno Platform account directly in your favorite IDE (Visual Studio, VS Code, or Rider), to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. ## Create your account From b9a42c33fe00d2f467c4c0facb3444d60bc0d4d0 Mon Sep 17 00:00:00 2001 From: agneszitte Date: Wed, 13 Nov 2024 12:52:31 -0500 Subject: [PATCH 198/205] docs: Add migration guide details to the licensing related documentation (cherry picked from commit d9553776b1a927550525c211070e270298fd0a58) --- doc/articles/get-started-licensing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 4c48409783d0..c48bf7d3b7e3 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -26,7 +26,7 @@ If you’ve already set up **Visual Studio 2022** by following the [Get Started 1. Create a new Uno Platform project by following the [Creating an app with Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. @@ -46,7 +46,7 @@ If you’ve already set up **Visual Studio Code** by following the [Get Started 1. Create a new Uno Platform project by following the [Creating an app with VS Code](xref:Uno.GettingStarted.CreateAnApp.VSCode) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. @@ -63,7 +63,7 @@ If you’ve already set up **JetBrains Rider** by following the [Get Started on 1. Create a new Uno Platform project by following the [Create an app with JetBrains Rider](xref:Uno.GettingStarted.CreateAnApp.Rider) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. From 300f3bff53a5ea343717eefced9336f17684d5a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 15 Nov 2024 10:02:51 -0500 Subject: [PATCH 199/205] chore: Adjust for forwardport --- .../run-netcore-mobile-template-tests.ps1 | 14 +++++++------- .../uno52AppWithLib/uno52AppWithLib.csproj | 4 ++-- .../uno52emptylib/uno52emptylib.csproj | 4 ++-- .../5.2/uno52AppWithLib/uno52lib/uno52lib.csproj | 4 ++-- src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj | 2 +- .../5.2/uno52NuGetLib/uno52NuGetLib.csproj | 2 +- .../uno52SingleProjectLib.csproj | 2 +- .../5.2/uno52blank/uno52blank/uno52blank.csproj | 4 ++-- .../uno53net9blank/uno53net9blank.csproj | 4 ++-- src/Uno.Sdk/packages.json | 4 ++-- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/build/test-scripts/run-netcore-mobile-template-tests.ps1 b/build/test-scripts/run-netcore-mobile-template-tests.ps1 index 376a9cb1da84..f5321ab109e4 100644 --- a/build/test-scripts/run-netcore-mobile-template-tests.ps1 +++ b/build/test-scripts/run-netcore-mobile-template-tests.ps1 @@ -271,16 +271,16 @@ $projects = @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), # Ensure that default without platform builds properly - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.26100"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.19041"), @()), # Validate building inside VS @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true"), @("NetCore")), @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-desktop"), @("NetCore")), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.26100"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.19041"), @()), # # 5.2 Uno Lib @@ -301,7 +301,7 @@ $projects = @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @("macOS")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @("macOS")), # # 5.2 Uno SingleProject Lib @@ -314,7 +314,7 @@ $projects = @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-desktop"), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), # 5.2 Uno App with Library reference @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0"), @("macOS", "NetCore")), @@ -339,7 +339,7 @@ $projects = @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(4, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), + @(4, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), # Publishing validation @(4, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", "-p:PackageFormat=app"), @("OnlyMacOS", "NetCore", "Publish")) diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj index 66c4752e55b7..e7d30b60c49b 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.26100 + $(TargetFrameworks);net8.0-windows10.0.19041 $(TargetFrameworks.Replace('net8.0-android','')) @@ -52,7 +52,7 @@ BeforeTargets="AfterBuild"> + Condition=" '$(TargetFramework)' == 'net8.0-windows10.0.19041' OR '$(TargetFramework)' == 'net8.0-desktop' "> <_AssetsToValidate Include="$(OutputPath)Assets\SharedAssets.md" /> <_AssetsToValidate Include="$(OutputPath)Assets\Icons\icon_foreground.png" /> diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj index 194ad396fa14..4c1a25d4673f 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.26100 + $(TargetFrameworks);net8.0-windows10.0.19041 $(TargetFrameworks.Replace('net8.0-android','')) @@ -39,4 +39,4 @@ - + \ No newline at end of file diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj index 45540750ad7a..3b536a6df335 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.26100 + $(TargetFrameworks);net8.0-windows10.0.19041 $(TargetFrameworks.Replace('net8.0-android','')) @@ -39,4 +39,4 @@ - + \ No newline at end of file diff --git a/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj b/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj index fedfadc3f2d5..ef105687423f 100644 --- a/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj +++ b/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj b/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj index 3f8e15879332..ceb179b8eb27 100644 --- a/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj +++ b/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj b/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj index 88cdd66cf72f..c2bd98afb43f 100644 --- a/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj +++ b/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj b/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj index b2359027a9da..20a7d5370285 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.26100 + $(TargetFrameworks);net8.0-windows10.0.19041 $(TargetFrameworks.Replace('net8.0-android','')) @@ -46,7 +46,7 @@ + Condition="'$(TargetFramework)'=='net8.0-windows10.0.19041'"> net9.0-browserwasm;net9.0-desktop;net9.0 $(TargetFrameworks);net9.0-android;net9.0-ios;net9.0-maccatalyst;net9.0-desktop - $(TargetFrameworks);net9.0-windows10.0.26100 + $(TargetFrameworks);net9.0-windows10.0.19041 $(TargetFrameworks.Replace('net9.0-android','')) @@ -65,7 +65,7 @@ BeforeTargets="AfterBuild"> + Condition=" '$(TargetFramework)' == 'net9.0-windows10.0.19041' OR '$(TargetFramework)' == 'net9.0-desktop' "> <_AssetsToValidate Include="$(OutputPath)Assets\SharedAssets.md" /> <_AssetsToValidate Include="$(OutputPath)Assets\Icons\icon_foreground.png" /> diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index b21f6579d715..db0beb7336a4 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -81,14 +81,14 @@ }, { "group": "settings", - "version": "1.0.25", + "version": "1.1.22", "packages": [ "Uno.Settings.DevServer" ] }, { "group": "hotdesign", - "version": "1.0.0-dev.53", + "version": "1.1.0-dev.66", "packages": [ "Uno.UI.HotDesign" ] From fc0283ca49236876be2721347f4847949bfd14d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 15 Nov 2024 10:06:18 -0500 Subject: [PATCH 200/205] chore: Adjust template --- build/ci/.azure-devops-project-template-tests.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index 5b33f41d75e5..2bcf1a95b5fb 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -142,10 +142,6 @@ jobs: # don't validate transitive dependencies for template tests NuGetAuditMode: direct - variables: - # don't validate transitive dependencies for template tests - NuGetAuditMode: direct - steps: - task: DownloadBuildArtifacts@0 inputs: From 1fc00a2e06af03551c53b9d56bb7212f998e4fac Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 15 Nov 2024 13:50:56 -0500 Subject: [PATCH 201/205] chore: Adjust toolkit dependency --- .../5.1/uno51recommended/Directory.Packages.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props index bf4abe062445..d9ed0d87ae00 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props +++ b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props @@ -54,8 +54,8 @@ - - + + From 452641f131161f95c32a1530e8f632e93097debf Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 15 Nov 2024 13:54:14 -0500 Subject: [PATCH 202/205] chore: Adjust hotdesign --- src/Uno.Sdk/packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index db0beb7336a4..98abd0080680 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -88,7 +88,7 @@ }, { "group": "hotdesign", - "version": "1.1.0-dev.66", + "version": "1.0.51", "packages": [ "Uno.UI.HotDesign" ] From 3fe3d60fb45eec5716aedf8c739152c6be5867c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 15 Nov 2024 17:14:40 -0500 Subject: [PATCH 203/205] chore: Remove HD analyzer when building in release --- .../Uno.Implicit.Packages.ProjectSystem.targets | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index 6c9e0a81f315..9bc7dfe1dd4d 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -109,4 +109,17 @@ + + + + + + <_HDAnalyzerToRemove Include="@(Analyzer)" Condition="'%(Analyzer.NuGetPackageId)'=='Uno.UI.HotDesign'" /> + + + From c24eec35f7fd5ff5fc5d9d0785c4559cbe5417c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 15 Nov 2024 21:11:04 -0500 Subject: [PATCH 204/205] chore: Adjust workaround location --- build/nuget/uno.winui.targets | 14 ++++++++++++++ .../Uno.Implicit.Packages.ProjectSystem.targets | 13 ------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/build/nuget/uno.winui.targets b/build/nuget/uno.winui.targets index 0beb9f1738ba..ed93b8bc3195 100644 --- a/build/nuget/uno.winui.targets +++ b/build/nuget/uno.winui.targets @@ -21,4 +21,18 @@ + + + + + + <_HDAnalyzerToRemove Include="@(Analyzer)" Condition="'%(Analyzer.NuGetPackageId)'=='Uno.UI.HotDesign'" /> + + + + diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index 9bc7dfe1dd4d..6c9e0a81f315 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -109,17 +109,4 @@ - - - - - - <_HDAnalyzerToRemove Include="@(Analyzer)" Condition="'%(Analyzer.NuGetPackageId)'=='Uno.UI.HotDesign'" /> - - - From 412138ccf9f869de89258ec0c76a28b4f346c8c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 16 Nov 2024 17:25:54 -0500 Subject: [PATCH 205/205] chore: Adjust line ending --- build/test-scripts/run-net7-template-linux.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/test-scripts/run-net7-template-linux.ps1 b/build/test-scripts/run-net7-template-linux.ps1 index 8b26048e24b7..a10c9ece3764 100644 --- a/build/test-scripts/run-net7-template-linux.ps1 +++ b/build/test-scripts/run-net7-template-linux.ps1 @@ -81,7 +81,7 @@ $projects = @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()), # 5.3 lib - @(3, "5.3/uno53net9Lib/uno53net9Lib.csproj", @(), @()), + @(3, "5.3/uno53net9Lib/uno53net9Lib.csproj", @(), @()) # 5.3 blank publish testing # Disabled for LXD setup issues