From 67c2ff25dee0e5cfff7c322cb15aef40414922ef Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 29 Oct 2018 20:23:19 +0000 Subject: [PATCH 01/14] fix win32 skia backend renderer failing. --- src/Windows/Avalonia.Win32/WindowFramebuffer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/WindowFramebuffer.cs b/src/Windows/Avalonia.Win32/WindowFramebuffer.cs index 9c331f662d..19b90685bf 100644 --- a/src/Windows/Avalonia.Win32/WindowFramebuffer.cs +++ b/src/Windows/Avalonia.Win32/WindowFramebuffer.cs @@ -61,7 +61,7 @@ namespace Avalonia.Win32 } } - public PixelSize Size => new PixelSize(_bmpInfo.biWidth, _bmpInfo.biHeight); + public PixelSize Size => new PixelSize(_bmpInfo.biWidth, -_bmpInfo.biHeight); public void DrawToDevice(IntPtr hDC, int destX = 0, int destY = 0, int srcX = 0, int srcY = 0, int width = -1, int height = -1) From 6a537bea115d24b3e618379c7461ae52b5f92167 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Mon, 29 Oct 2018 21:47:38 +0000 Subject: [PATCH 02/14] fix keyboard input on osx. --- .../xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme | 4 ++-- src/Avalonia.Native/AvaloniaNativePlatform.cs | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme b/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme index c1cc9b4887..1a665d3ea5 100644 --- a/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme +++ b/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme @@ -38,7 +38,7 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" launchStyle = "0" useCustomWorkingDirectory = "YES" - customWorkingDirectory = "$PROJECT_DIR/../../../../samples/ControlCatalog" + customWorkingDirectory = "$PROJECT_DIR/../../../../samples/ControlCatalog.NetCore" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" @@ -58,7 +58,7 @@ diff --git a/src/Avalonia.Native/AvaloniaNativePlatform.cs b/src/Avalonia.Native/AvaloniaNativePlatform.cs index 091a4ad285..ff410ddbe3 100644 --- a/src/Avalonia.Native/AvaloniaNativePlatform.cs +++ b/src/Avalonia.Native/AvaloniaNativePlatform.cs @@ -76,6 +76,7 @@ namespace Avalonia.Native .Bind().ToConstant(new DefaultRenderTimer(60)) .Bind().ToConstant(new SystemDialogs(_factory.CreateSystemDialogs())) .Bind().ToConstant(new GlPlatformFeature(_factory.ObtainGlFeature())) + .Bind().ToConstant(new PlatformHotkeyConfiguration(InputModifiers.Windows)) .Bind().ToConstant(opts); } From 80a95c5baee9bcf06e28617b0455d23f58a35994 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 09:41:17 +0000 Subject: [PATCH 03/14] fix call from invalid thread in previewer. --- .../Remote/Server/RemoteServerTopLevelImpl.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs b/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs index 17cdbf834c..e1767fca36 100644 --- a/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs +++ b/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs @@ -211,10 +211,10 @@ namespace Avalonia.Controls.Remote.Server } if(obj is KeyEventMessage key) { - Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); - Dispatcher.UIThread.Post(() => { + Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); + Input?.Invoke(new RawKeyEventArgs( KeyboardDevice, 0, @@ -225,10 +225,10 @@ namespace Avalonia.Controls.Remote.Server } if(obj is TextInputEventMessage text) { - Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); - Dispatcher.UIThread.Post(() => { + Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); + Input?.Invoke(new RawTextInputEventArgs( KeyboardDevice, 0, From 7b4b2a0a4389c70c8576c90ccc8d5d39a3550eeb Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 10:29:33 +0000 Subject: [PATCH 04/14] add previewer location as an msbuild property. --- Avalonia.sln | 1 + build/Avalonia.Designer.HostApp.props | 8 ++++++++ packages/Avalonia/Avalonia.csproj | 7 ++++++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 build/Avalonia.Designer.HostApp.props diff --git a/Avalonia.sln b/Avalonia.sln index 7fa5f7736a..bf75c35d10 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -128,6 +128,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.NetCore", "s EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1-27F5-4255-9AFC-04ABFD11683A}" ProjectSection(SolutionItems) = preProject + build\Avalonia.Designer.HostApp.props = build\Avalonia.Designer.HostApp.props build\Base.props = build\Base.props build\Binding.props = build\Binding.props build\JetBrains.Annotations.props = build\JetBrains.Annotations.props diff --git a/build/Avalonia.Designer.HostApp.props b/build/Avalonia.Designer.HostApp.props new file mode 100644 index 0000000000..c3a9ce20a7 --- /dev/null +++ b/build/Avalonia.Designer.HostApp.props @@ -0,0 +1,8 @@ + + + $(MSBuildThisFileDirectory)\..\..\tools\netcoreapp2.0\designer\Avalonia.Designer.HostApp.dll + + + $(MSBuildThisFileDirectory)\..\..\tools\net461\designer\Avalonia.Designer.HostApp.exe + + diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj index ae209f085e..32a953ea9e 100644 --- a/packages/Avalonia/Avalonia.csproj +++ b/packages/Avalonia/Avalonia.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net461;netcoreapp2.0 @@ -27,6 +27,11 @@ false None + <_PackageFiles Include="../../build/Avalonia.Designer.HostApp.props"> + build/Avalonia.props + false + None + From 52e5f6fd23d738fb4481647965a5b14b8b8f1eac Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 12:08:55 +0000 Subject: [PATCH 05/14] suggested changes --- Avalonia.sln | 1 - {build => packages/Avalonia}/Avalonia.Designer.HostApp.props | 2 ++ packages/Avalonia/Avalonia.csproj | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) rename {build => packages/Avalonia}/Avalonia.Designer.HostApp.props (81%) diff --git a/Avalonia.sln b/Avalonia.sln index bf75c35d10..7fa5f7736a 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -128,7 +128,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.NetCore", "s EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1-27F5-4255-9AFC-04ABFD11683A}" ProjectSection(SolutionItems) = preProject - build\Avalonia.Designer.HostApp.props = build\Avalonia.Designer.HostApp.props build\Base.props = build\Base.props build\Binding.props = build\Binding.props build\JetBrains.Annotations.props = build\JetBrains.Annotations.props diff --git a/build/Avalonia.Designer.HostApp.props b/packages/Avalonia/Avalonia.Designer.HostApp.props similarity index 81% rename from build/Avalonia.Designer.HostApp.props rename to packages/Avalonia/Avalonia.Designer.HostApp.props index c3a9ce20a7..fd7ecc9d12 100644 --- a/build/Avalonia.Designer.HostApp.props +++ b/packages/Avalonia/Avalonia.Designer.HostApp.props @@ -1,8 +1,10 @@  $(MSBuildThisFileDirectory)\..\..\tools\netcoreapp2.0\designer\Avalonia.Designer.HostApp.dll + dotnet exec $(MSBuildThisFileDirectory)\..\..\tools\net461\designer\Avalonia.Designer.HostApp.exe + exe diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj index 32a953ea9e..61e29b8016 100644 --- a/packages/Avalonia/Avalonia.csproj +++ b/packages/Avalonia/Avalonia.csproj @@ -27,7 +27,7 @@ false None - <_PackageFiles Include="../../build/Avalonia.Designer.HostApp.props"> + <_PackageFiles Include="build/Avalonia.Designer.HostApp.props"> build/Avalonia.props false None From 93b507fc116a8a63bfb0a5d35075a1d0c20ffc85 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 12:25:49 +0000 Subject: [PATCH 06/14] rename props file. --- packages/Avalonia/Avalonia.csproj | 2 +- .../{Avalonia.Designer.HostApp.props => Avalonia.props} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/Avalonia/{Avalonia.Designer.HostApp.props => Avalonia.props} (100%) diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj index 61e29b8016..4cb2877b2f 100644 --- a/packages/Avalonia/Avalonia.csproj +++ b/packages/Avalonia/Avalonia.csproj @@ -27,7 +27,7 @@ false None - <_PackageFiles Include="build/Avalonia.Designer.HostApp.props"> + <_PackageFiles Include="build/Avalonia.props"> build/Avalonia.props false None diff --git a/packages/Avalonia/Avalonia.Designer.HostApp.props b/packages/Avalonia/Avalonia.props similarity index 100% rename from packages/Avalonia/Avalonia.Designer.HostApp.props rename to packages/Avalonia/Avalonia.props From 2eceba9e741bcea404f3633488dd7c436f4b962e Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 13:34:32 +0000 Subject: [PATCH 07/14] fix location of avalonia.props. --- packages/Avalonia/Avalonia.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj index 4cb2877b2f..dee42fb795 100644 --- a/packages/Avalonia/Avalonia.csproj +++ b/packages/Avalonia/Avalonia.csproj @@ -27,7 +27,7 @@ false None - <_PackageFiles Include="build/Avalonia.props"> + <_PackageFiles Include="Avalonia.props"> build/Avalonia.props false None From 2daa13a11d8dcee48fce7c4de062e1985af33571 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 13:54:47 +0000 Subject: [PATCH 08/14] update build script to package releasable packages on release branches. --- parameters.cake | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/parameters.cake b/parameters.cake index 8d813accbb..8bf6ed8173 100644 --- a/parameters.cake +++ b/parameters.cake @@ -18,6 +18,7 @@ public class Parameters public bool IsPullRequest { get; private set; } public bool IsMainRepo { get; private set; } public bool IsMasterBranch { get; private set; } + public bool IsReleaseBranch { get; private set; } public bool IsTagged { get; private set; } public bool IsReleasable { get; private set; } public bool IsMyGetRelease { get; private set; } @@ -46,8 +47,9 @@ public class Parameters SkipTests = context.HasArgument("skip-tests"); // CONFIGURATION - MainRepo = "AvaloniaUI/Avalonia"; + MainRepo = "https://github.com/AvaloniaUI/Avalonia"; MasterBranch = "master"; + ReleaseBranchPrefix = "release/"; ReleaseConfiguration = "Release"; MSBuildSolution = "./dirs.proj"; @@ -59,12 +61,14 @@ public class Parameters IsRunningOnAzure = buildSystem.IsRunningOnVSTS || buildSystem.IsRunningOnTFS || context.EnvironmentVariable("LOGNAME") == "vsts"; IsPullRequest = buildSystem.AppVeyor.Environment.PullRequest.IsPullRequest; - IsMainRepo = StringComparer.OrdinalIgnoreCase.Equals(MainRepo, buildSystem.AppVeyor.Environment.Repository.Name); - IsMasterBranch = StringComparer.OrdinalIgnoreCase.Equals(MasterBranch, buildSystem.AppVeyor.Environment.Repository.Branch); + IsMainRepo = StringComparer.OrdinalIgnoreCase.Equals(MainRepo, context.EnvironmentVariable("BUILD_REPOSITORY_URI")); + IsMasterBranch = StringComparer.OrdinalIgnoreCase.Equals(MasterBranch, context.EnvironmentVariable("BUILD_SOURCEBRANCHNAME")); + IsReleaseBranch = StringComparer.OrdinalIgnoreCase.StartsWith(ReleaseBranchPrefix, context.EnvironmentVariable("BUILD_SOURCEBRANCHNAME")); IsTagged = buildSystem.AppVeyor.Environment.Repository.Tag.IsTag && !string.IsNullOrWhiteSpace(buildSystem.AppVeyor.Environment.Repository.Tag.Name); IsReleasable = StringComparer.OrdinalIgnoreCase.Equals(ReleaseConfiguration, Configuration); IsMyGetRelease = !IsTagged && IsReleasable; + IsNuGetRelease = IsMainRepo && IsReleasable && IsReleaseBranch; // VERSION Version = context.Argument("force-nuget-version", GetVersion()); @@ -92,9 +96,13 @@ public class Parameters } else if (IsRunningOnAzure) { + if(!IsNuGetRelease) + { // Use AssemblyVersion with Build as version Version += "-build" + context.EnvironmentVariable("BUILD_BUILDID") + "-beta"; - PublishTestResults = true; + } + + PublishTestResults = true; } // DIRECTORIES From 288c56cd3e3a8a2ba79760e5f3a250ccc8f049d9 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 14:05:46 +0000 Subject: [PATCH 09/14] fix build script. --- parameters.cake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/parameters.cake b/parameters.cake index 8bf6ed8173..acaab8f6b7 100644 --- a/parameters.cake +++ b/parameters.cake @@ -9,6 +9,7 @@ public class Parameters public string MasterBranch { get; private set; } public string ReleasePlatform { get; private set; } public string ReleaseConfiguration { get; private set; } + public string ReleaseBranchPrefix { get; private set; } public string MSBuildSolution { get; private set; } public bool IsLocalBuild { get; private set; } public bool IsRunningOnUnix { get; private set; } @@ -63,7 +64,7 @@ public class Parameters IsPullRequest = buildSystem.AppVeyor.Environment.PullRequest.IsPullRequest; IsMainRepo = StringComparer.OrdinalIgnoreCase.Equals(MainRepo, context.EnvironmentVariable("BUILD_REPOSITORY_URI")); IsMasterBranch = StringComparer.OrdinalIgnoreCase.Equals(MasterBranch, context.EnvironmentVariable("BUILD_SOURCEBRANCHNAME")); - IsReleaseBranch = StringComparer.OrdinalIgnoreCase.StartsWith(ReleaseBranchPrefix, context.EnvironmentVariable("BUILD_SOURCEBRANCHNAME")); + IsReleaseBranch = context.EnvironmentVariable("BUILD_SOURCEBRANCHNAME").ToLower().StartsWith(ReleaseBranchPrefix.ToLower()); IsTagged = buildSystem.AppVeyor.Environment.Repository.Tag.IsTag && !string.IsNullOrWhiteSpace(buildSystem.AppVeyor.Environment.Repository.Tag.Name); IsReleasable = StringComparer.OrdinalIgnoreCase.Equals(ReleaseConfiguration, Configuration); From a1a6c46963dbbdf6ebff54d9bd71477fc4c90f0b Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 14:09:44 +0000 Subject: [PATCH 10/14] print isrelease branch. --- build.cake | 1 + 1 file changed, 1 insertion(+) diff --git a/build.cake b/build.cake index c781c0f2e5..f10a12c4e6 100644 --- a/build.cake +++ b/build.cake @@ -50,6 +50,7 @@ Setup(context => Information("IsPullRequest: " + parameters.IsPullRequest); Information("IsMainRepo: " + parameters.IsMainRepo); Information("IsMasterBranch: " + parameters.IsMasterBranch); + Information("IsReleaseBranch: " + parameters.IsReleaseBranch); Information("IsTagged: " + parameters.IsTagged); Information("IsReleasable: " + parameters.IsReleasable); Information("IsMyGetRelease: " + parameters.IsMyGetRelease); From 1db82552a2977f4e246b6ef20c549abc823ef80c Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 30 Oct 2018 17:14:15 +0300 Subject: [PATCH 11/14] Separate previewer properties --- packages/Avalonia/Avalonia.props | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/Avalonia/Avalonia.props b/packages/Avalonia/Avalonia.props index fd7ecc9d12..8234dc4fde 100644 --- a/packages/Avalonia/Avalonia.props +++ b/packages/Avalonia/Avalonia.props @@ -1,10 +1,6 @@ - - - $(MSBuildThisFileDirectory)\..\..\tools\netcoreapp2.0\designer\Avalonia.Designer.HostApp.dll - dotnet exec - - - $(MSBuildThisFileDirectory)\..\..\tools\net461\designer\Avalonia.Designer.HostApp.exe - exe + + + $(MSBuildThisFileDirectory)\..\tools\netcoreapp2.0\designer\Avalonia.Designer.HostApp.dll + $(MSBuildThisFileDirectory)\..\tools\net461\designer\Avalonia.Designer.HostApp.exe From 3979eb99630a3ca6defdb09bede751871af33ea3 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 14:36:58 +0000 Subject: [PATCH 12/14] fix release branch detection. --- parameters.cake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parameters.cake b/parameters.cake index acaab8f6b7..d13e503bd0 100644 --- a/parameters.cake +++ b/parameters.cake @@ -50,7 +50,7 @@ public class Parameters // CONFIGURATION MainRepo = "https://github.com/AvaloniaUI/Avalonia"; MasterBranch = "master"; - ReleaseBranchPrefix = "release/"; + ReleaseBranchPrefix = "refs/heads/release/"; ReleaseConfiguration = "Release"; MSBuildSolution = "./dirs.proj"; @@ -64,7 +64,7 @@ public class Parameters IsPullRequest = buildSystem.AppVeyor.Environment.PullRequest.IsPullRequest; IsMainRepo = StringComparer.OrdinalIgnoreCase.Equals(MainRepo, context.EnvironmentVariable("BUILD_REPOSITORY_URI")); IsMasterBranch = StringComparer.OrdinalIgnoreCase.Equals(MasterBranch, context.EnvironmentVariable("BUILD_SOURCEBRANCHNAME")); - IsReleaseBranch = context.EnvironmentVariable("BUILD_SOURCEBRANCHNAME").ToLower().StartsWith(ReleaseBranchPrefix.ToLower()); + IsReleaseBranch = context.EnvironmentVariable("BUILD_SOURCEBRANCH").ToLower().StartsWith(ReleaseBranchPrefix.ToLower()); IsTagged = buildSystem.AppVeyor.Environment.Repository.Tag.IsTag && !string.IsNullOrWhiteSpace(buildSystem.AppVeyor.Environment.Repository.Tag.Name); IsReleasable = StringComparer.OrdinalIgnoreCase.Equals(ReleaseConfiguration, Configuration); From 5dac868cf0807d825eb76bdbaae35470087e93e4 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 30 Oct 2018 15:13:36 +0000 Subject: [PATCH 13/14] bump version number. --- build/SharedVersion.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/SharedVersion.props b/build/SharedVersion.props index 6ca65014b1..b46ac16a79 100644 --- a/build/SharedVersion.props +++ b/build/SharedVersion.props @@ -2,7 +2,7 @@ xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> Avalonia - 0.7.0 + 0.7.1 Copyright 2018 © The AvaloniaUI Project https://github.com/AvaloniaUI/Avalonia/blob/master/licence.md https://github.com/AvaloniaUI/Avalonia/ From bbf570198a2d261ac884942a81e00dfa18495b03 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Tue, 30 Oct 2018 08:15:43 -0700 Subject: [PATCH 14/14] Always run PublishTestArtifacts unless the build was canceled. --- azure-pipelines.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5156bac3b5..f6929f8dee 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -29,6 +29,7 @@ jobs: inputs: testResultsFormat: 'VSTest' testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx' + condition: not(canceled()) - job: macOS pool: @@ -77,6 +78,7 @@ jobs: inputs: testResultsFormat: 'VSTest' testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx' + condition: not(canceled()) - task: PublishBuildArtifacts@1 inputs: @@ -111,6 +113,7 @@ jobs: inputs: testResultsFormat: 'VSTest' testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx' + condition: not(canceled()) - task: PublishBuildArtifacts@1 inputs: