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);