From 99979efaf6b401a819e65b09473010de06e3bbc8 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Wed, 4 Dec 2019 15:45:00 -0800 Subject: [PATCH 01/12] Update branding to 3.1.1 (#17335) * Update branding to 3.1.1 * Add * * Skip RefPack tests * Update baseline --- .azure/pipelines/ci.yml | 1 + eng/Baseline.Designer.props | 574 +++++++++--------- eng/Baseline.xml | 154 +++-- eng/Versions.props | 10 +- .../BaselineGenerator.csproj | 1 - src/Framework/test/TargetingPackTests.cs | 4 +- 6 files changed, 371 insertions(+), 373 deletions(-) diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index 651495cc9f..09c05b8757 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -9,6 +9,7 @@ trigger: include: - master - release/* + - internal/release/3.* # Run PR validation on all branches pr: diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index 1e28129d00..b5c8196535 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,7 +2,7 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 3.0.0 + 3.1.0 @@ -16,132 +16,132 @@ - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - - - - + + + + - + - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - - - - + + + + - - - + + + - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - - + + @@ -186,510 +186,510 @@ - 3.0.0 + 3.1.0 - - - - + + + + - - - - + + + + - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - - - + + + - - + + - 3.0.0 + 3.1.0 - - + + - - + + - 3.0.0 + 3.1.0 - - - - - + + + + + - - - - + + + + - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - - - + + + - - - + + + - - + + - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - + - + - 3.0.0 + 3.1.0 - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - - - + + + - - + + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - - - + + + - - - + + + - 3.0.0 + 3.1.0 - - + + - - + + - 3.0.0 + 3.1.0 - - - + + + - - + + - 3.0.0 + 3.1.0 - - - + + + - - + + - 3.0.0 + 3.1.0 - - - - - + + + + + - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - - - - + + + + - 3.0.0 + 3.1.0 - - - - + + + + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - - + + - - + + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - - - - - - + + + + + + - - - - - + + + + + - 3.0.0 + 3.1.0 - - - + + + - - - + + + - 3.0.0 + 3.1.0 - - + + - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - + - 3.0.0 + 3.1.0 - - - - - + + + + + - 3.0.0 + 3.1.0 - + - + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - - + + - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - - - 3.0.0 + + + 3.1.0 - - - 3.0.0 + + + 3.1.0 - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - 3.0.0 + 3.1.0 - - - + + + - 3.0.0 + 3.1.0 - - - - + + + + - - - + + + - 3.0.0 + 3.1.0 - - - + + + - - + + \ No newline at end of file diff --git a/eng/Baseline.xml b/eng/Baseline.xml index 52cbb358f4..bdcbf3e91d 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -1,91 +1,89 @@  - - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/eng/Versions.props b/eng/Versions.props index 047f31a3e2..943d24efe0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,17 +8,17 @@ 3 1 - 0 - 3 + 1 + 0 - true + false release true false - rtm - RTM + servicing + Servicing 4 preview$(BlazorClientPreReleasePreviewNumber) diff --git a/eng/tools/BaselineGenerator/BaselineGenerator.csproj b/eng/tools/BaselineGenerator/BaselineGenerator.csproj index df9cc7220a..775e7523c8 100644 --- a/eng/tools/BaselineGenerator/BaselineGenerator.csproj +++ b/eng/tools/BaselineGenerator/BaselineGenerator.csproj @@ -3,7 +3,6 @@ Exe $(DefaultNetCoreTargetFramework) - -s https://api.nuget.org/v3/index.json $(MSBuildThisFileDirectory)../../ diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 8a2625b99d..ec8a646f48 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore _targetingPackRoot = Path.Combine(TestData.GetTestDataValue("TargetingPackLayoutRoot"), "packs", "Microsoft.AspNetCore.App.Ref", TestData.GetTestDataValue("TargetingPackVersion")); } - [Fact] + [Fact(Skip="https://github.com/aspnet/AspNetCore/issues/14832")] public void AssembliesAreReferenceAssemblies() { IEnumerable dlls = Directory.GetFiles(_targetingPackRoot, "*.dll", SearchOption.AllDirectories); @@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore }); } - [Fact] + [Fact(Skip="https://github.com/aspnet/AspNetCore/issues/14832")] public void PlatformManifestListsAllFiles() { var platformManifestPath = Path.Combine(_targetingPackRoot, "data", "PlatformManifest.txt"); From 08348ed326341b03003c79c4c5fbdff76999da7e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2019 01:21:59 +0000 Subject: [PATCH 02/12] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20191126.10 (#17525) - Microsoft.EntityFrameworkCore.Tools - 3.1.1-servicing.19576.10 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.1-servicing.19576.10 - dotnet-ef - 3.1.1-servicing.19576.10 - Microsoft.EntityFrameworkCore - 3.1.1-servicing.19576.10 - Microsoft.EntityFrameworkCore.InMemory - 3.1.1-servicing.19576.10 - Microsoft.EntityFrameworkCore.Relational - 3.1.1-servicing.19576.10 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.1-servicing.19576.10 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.1-preview4.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.1-servicing.19576.9 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyModel - 3.1.1-servicing.19576.9 (parent: Microsoft.Extensions.Logging) - Internal.AspNetCore.Analyzers - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.1-servicing.19576.5 (parent: Microsoft.EntityFrameworkCore) --- NuGet.config | 1 + eng/Version.Details.xml | 276 ++++++++++++++++++++-------------------- eng/Versions.props | 138 ++++++++++---------- 3 files changed, 208 insertions(+), 207 deletions(-) diff --git a/NuGet.config b/NuGet.config index ff2c367882..3cbe74036f 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,6 +3,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d58c63097f..7740355842 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,265 +29,265 @@ https://github.com/aspnet/AspNetCore-Tooling 4d6f2ea3abb46351be590e25d52ef2a5ab8fdc56 - + https://github.com/aspnet/EntityFrameworkCore - a852a65fe0e5a9b458ca4d7e4428e71deca70bf7 + 9b656e1add085152b185c5f7a933920f77573c5e - + https://github.com/aspnet/EntityFrameworkCore - a852a65fe0e5a9b458ca4d7e4428e71deca70bf7 + 9b656e1add085152b185c5f7a933920f77573c5e - + https://github.com/aspnet/EntityFrameworkCore - a852a65fe0e5a9b458ca4d7e4428e71deca70bf7 + 9b656e1add085152b185c5f7a933920f77573c5e - + https://github.com/aspnet/EntityFrameworkCore - a852a65fe0e5a9b458ca4d7e4428e71deca70bf7 + 9b656e1add085152b185c5f7a933920f77573c5e - + https://github.com/aspnet/EntityFrameworkCore - a852a65fe0e5a9b458ca4d7e4428e71deca70bf7 + 9b656e1add085152b185c5f7a933920f77573c5e - + https://github.com/aspnet/EntityFrameworkCore - a852a65fe0e5a9b458ca4d7e4428e71deca70bf7 + 9b656e1add085152b185c5f7a933920f77573c5e - + https://github.com/aspnet/EntityFrameworkCore - a852a65fe0e5a9b458ca4d7e4428e71deca70bf7 + 9b656e1add085152b185c5f7a933920f77573c5e - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b https://github.com/dotnet/corefx @@ -377,17 +377,17 @@ https://github.com/dotnet/corefx 0f7f38c4fd323b26da10cce95f857f77f0f09b48 - + https://github.com/dotnet/core-setup - f15b6f92ec4c09d6e53dac4a890a1ceebb9b8ef1 + f3f2dd583fffa254015fc21ff0e45784b333256d - + https://github.com/dotnet/core-setup - f15b6f92ec4c09d6e53dac4a890a1ceebb9b8ef1 + f3f2dd583fffa254015fc21ff0e45784b333256d https://github.com/dotnet/core-setup @@ -409,9 +409,9 @@ https://github.com/dotnet/corefx 0f7f38c4fd323b26da10cce95f857f77f0f09b48 - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b https://github.com/dotnet/arcade @@ -425,9 +425,9 @@ https://github.com/dotnet/arcade a42a124635ce1a218309ecb31ec59d559cacb886 - + https://github.com/aspnet/Extensions - 04bb33fefa1e681da5dd88ce9c0f50963443c646 + 92cf26b203486123be3c1ba03dc57acecd720e6b https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 943d24efe0..acf792337d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -69,9 +69,9 @@ 3.4.0-beta4-19569-03 - 3.1.1-servicing.19575.1 + 3.1.1-servicing.19576.9 3.1.0 - 3.1.1-servicing.19575.1 + 3.1.1-servicing.19576.9 2.1.0 1.1.0 @@ -101,75 +101,75 @@ 3.1.0-preview4.19575.4 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 - 3.1.0-rtm.19575.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.5 3.1.0-rtm.19565.4 - 3.1.0-rtm.19575.5 - 3.1.0-preview4.19575.5 + 3.1.1-servicing.19576.5 + 3.1.1-preview4.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 + 3.1.1-servicing.19576.10 + 3.1.1-servicing.19576.10 + 3.1.1-servicing.19576.10 + 3.1.1-servicing.19576.10 + 3.1.1-servicing.19576.10 + 3.1.1-servicing.19576.10 + 3.1.1-servicing.19576.10 3.1.1-servicing.19577.2 3.1.1-servicing.19577.2 From 1f114dff507ed81030bafbb32b1fdec191ae5414 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Thu, 5 Dec 2019 12:33:38 -0800 Subject: [PATCH 03/12] Download runtime from suffixed location in dotnetcli blob storage (#17592) --- eng/Version.Details.xml | 4 ++++ eng/Versions.props | 1 + src/Installers/Windows/WindowsHostingBundle/Product.targets | 4 ++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7740355842..af95629e3b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -393,6 +393,10 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 + + https://github.com/dotnet/core-setup + f3f2dd583fffa254015fc21ff0e45784b333256d + https://github.com/dotnet/core-setup diff --git a/eng/Versions.props b/eng/Versions.props index acf792337d..8bdf514784 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -70,6 +70,7 @@ 3.4.0-beta4-19569-03 3.1.1-servicing.19576.9 + 3.1.1-servicing.19576.9 3.1.0 3.1.1-servicing.19576.9 2.1.0 diff --git a/src/Installers/Windows/WindowsHostingBundle/Product.targets b/src/Installers/Windows/WindowsHostingBundle/Product.targets index dd2b113f35..ea34ff172d 100644 --- a/src/Installers/Windows/WindowsHostingBundle/Product.targets +++ b/src/Installers/Windows/WindowsHostingBundle/Product.targets @@ -26,10 +26,10 @@ - + dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x64.exe - + dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x86.exe From 0a6e4d10e825b426ef77c9edf451e7a72f3a677f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2019 13:32:22 -0800 Subject: [PATCH 04/12] Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20191205.6 (#17624) - Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.1-servicing.19605.6 - Microsoft.AspNetCore.Razor.Language - 3.1.1-servicing.19605.6 - Microsoft.CodeAnalysis.Razor - 3.1.1-servicing.19605.6 - Microsoft.NET.Sdk.Razor - 3.1.1-servicing.19605.6 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index af95629e3b..b6185dc4c5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor 964edff52e79094ca3f241d315bb4970671a1de3 - + https://github.com/aspnet/AspNetCore-Tooling - 4d6f2ea3abb46351be590e25d52ef2a5ab8fdc56 + 9cf15bed711983d35362d62972ab87ccc88ba8ca - + https://github.com/aspnet/AspNetCore-Tooling - 4d6f2ea3abb46351be590e25d52ef2a5ab8fdc56 + 9cf15bed711983d35362d62972ab87ccc88ba8ca - + https://github.com/aspnet/AspNetCore-Tooling - 4d6f2ea3abb46351be590e25d52ef2a5ab8fdc56 + 9cf15bed711983d35362d62972ab87ccc88ba8ca - + https://github.com/aspnet/AspNetCore-Tooling - 4d6f2ea3abb46351be590e25d52ef2a5ab8fdc56 + 9cf15bed711983d35362d62972ab87ccc88ba8ca https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index 8bdf514784..cf49c0ecbc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -172,10 +172,10 @@ 3.1.1-servicing.19576.10 3.1.1-servicing.19576.10 - 3.1.1-servicing.19577.2 - 3.1.1-servicing.19577.2 - 3.1.1-servicing.19577.2 - 3.1.1-servicing.19577.2 + 3.1.1-servicing.19605.6 + 3.1.1-servicing.19605.6 + 3.1.1-servicing.19605.6 + 3.1.1-servicing.19605.6 3.1.0-preview4.19575.4 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 - 3.1.1-servicing.19576.5 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 + 3.1.1-servicing.19604.6 3.1.0-rtm.19565.4 - 3.1.1-servicing.19576.5 - 3.1.1-preview4.19576.5 + 3.1.1-servicing.19604.6 + 3.1.1-preview4.19604.6 - 3.1.1-servicing.19576.10 - 3.1.1-servicing.19576.10 - 3.1.1-servicing.19576.10 - 3.1.1-servicing.19576.10 - 3.1.1-servicing.19576.10 - 3.1.1-servicing.19576.10 - 3.1.1-servicing.19576.10 + 3.1.1-servicing.19605.1 + 3.1.1-servicing.19605.1 + 3.1.1-servicing.19605.1 + 3.1.1-servicing.19605.1 + 3.1.1-servicing.19605.1 + 3.1.1-servicing.19605.1 + 3.1.1-servicing.19605.1 3.1.1-servicing.19605.6 3.1.1-servicing.19605.6 From c3fa87ed04f183449c2e0c2c63ac1e17858babc9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2019 01:06:40 +0000 Subject: [PATCH 06/12] Update dependencies from https://github.com/aspnet/Blazor build 20191205.1 (#17642) - Microsoft.AspNetCore.Blazor.Mono - 3.1.0-preview4.19605.1 --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ea08c8908a..ac7e4e0033 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,9 +9,9 @@ --> - + https://github.com/aspnet/Blazor - 964edff52e79094ca3f241d315bb4970671a1de3 + 7868699de745fd30a654c798a99dc541b77b95c0 https://github.com/aspnet/AspNetCore-Tooling diff --git a/eng/Versions.props b/eng/Versions.props index c2d4fe4814..532e950574 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -100,7 +100,7 @@ 3.1.0 - 3.1.0-preview4.19575.4 + 3.1.0-preview4.19605.1 3.1.1-servicing.19604.6 3.1.1-servicing.19604.6 From bc75981efe0acdfa14101f5db05074232fef296a Mon Sep 17 00:00:00 2001 From: William Godbe Date: Fri, 6 Dec 2019 14:01:09 -0800 Subject: [PATCH 07/12] [release/3.1] Use Microsoft.NETCore.App.Internal for runtime version (#17627) --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 17454ad1bf..49caef6338 100644 --- a/global.json +++ b/global.json @@ -6,10 +6,10 @@ "dotnet": "3.1.100-preview1-014400", "runtimes": { "dotnet/x64": [ - "$(MicrosoftNETCoreAppRuntimeVersion)" + "$(MicrosoftNETCoreAppInternalPackageVersion)" ], "dotnet/x86": [ - "$(MicrosoftNETCoreAppRuntimeVersion)" + "$(MicrosoftNETCoreAppInternalPackageVersion)" ] }, "Git": "2.22.0", From 3fba107522a817ab681fbeefb8b67087f7020407 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Tue, 10 Dec 2019 11:30:13 -0800 Subject: [PATCH 08/12] Fix typo in error message (#17741) --- src/Components/Blazor/Build/src/Tasks/BlazorILLink.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Blazor/Build/src/Tasks/BlazorILLink.cs b/src/Components/Blazor/Build/src/Tasks/BlazorILLink.cs index 527f302a46..5e0a86d384 100644 --- a/src/Components/Blazor/Build/src/Tasks/BlazorILLink.cs +++ b/src/Components/Blazor/Build/src/Tasks/BlazorILLink.cs @@ -168,7 +168,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Tasks protected override bool HandleTaskExecutionErrors() { // Show a slightly better error than the standard ToolTask message that says "dotnet" failed. - Log.LogError($"ILLink failed with exited code {ExitCode}."); + Log.LogError($"ILLink failed with exit code {ExitCode}."); return false; } From 3a93704737cceb38c4d51ae03075cf4eaad81b23 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 12 Dec 2019 15:05:12 +0000 Subject: [PATCH 09/12] Support async main (#17673) --- .../Blazor/src/Hosting/EntrypointInvoker.cs | 89 ++++++++++ .../test/Hosting/EntrypointInvokerTest.cs | 153 ++++++++++++++++++ .../Microsoft.AspNetCore.Blazor.Tests.csproj | 3 +- .../StandaloneApp/wwwroot/index.html | 8 +- src/Components/Components.sln | 15 ++ src/Components/Web.JS/src/Boot.WebAssembly.ts | 4 +- .../Web.JS/src/Platform/Mono/MonoPlatform.ts | 22 ++- .../Web.JS/src/Platform/Platform.ts | 2 +- .../ServerErrorNotificationTest.cs} | 5 +- ...ntSideTest.cs => ErrorNotificationTest.cs} | 4 +- .../Tests/StartupErrorNotificationTest.cs | 40 +++++ .../test/testassets/BasicTestApp/Index.razor | 6 - .../test/testassets/BasicTestApp/Program.cs | 24 ++- .../BasicTestApp/wwwroot/index.html | 11 ++ .../testassets/BasicTestApp/wwwroot/style.css | 14 +- .../TestServer/Pages/_ServerHost.cshtml | 6 + 16 files changed, 381 insertions(+), 25 deletions(-) create mode 100644 src/Components/Blazor/Blazor/src/Hosting/EntrypointInvoker.cs create mode 100644 src/Components/Blazor/Blazor/test/Hosting/EntrypointInvokerTest.cs rename src/Components/test/E2ETest/{Tests/ErrorNotificationServerSideTest.cs => ServerExecutionTests/ServerErrorNotificationTest.cs} (85%) rename src/Components/test/E2ETest/Tests/{ErrorNotificationClientSideTest.cs => ErrorNotificationTest.cs} (94%) create mode 100644 src/Components/test/E2ETest/Tests/StartupErrorNotificationTest.cs diff --git a/src/Components/Blazor/Blazor/src/Hosting/EntrypointInvoker.cs b/src/Components/Blazor/Blazor/src/Hosting/EntrypointInvoker.cs new file mode 100644 index 0000000000..bce063bcf5 --- /dev/null +++ b/src/Components/Blazor/Blazor/src/Hosting/EntrypointInvoker.cs @@ -0,0 +1,89 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; + +namespace Microsoft.AspNetCore.Blazor.Hosting +{ + internal static class EntrypointInvoker + { + // This method returns void because currently the JS side is not listening to any result, + // nor will it handle any exceptions. We handle all exceptions internally to this method. + // In the future we may want Blazor.start to return something that exposes the possibly-async + // entrypoint result to the JS caller. There's no requirement to do that today, and if we + // do change this it will be non-breaking. + public static void InvokeEntrypoint(string assemblyName, string[] args) + { + object entrypointResult; + try + { + var assembly = Assembly.Load(assemblyName); + var entrypoint = FindUnderlyingEntrypoint(assembly); + var @params = entrypoint.GetParameters().Length == 1 ? new object[] { args } : new object[] { }; + entrypointResult = entrypoint.Invoke(null, @params); + } + catch (Exception syncException) + { + HandleStartupException(syncException); + return; + } + + // If the entrypoint is async, handle async exceptions in the same way that we would + // have handled sync ones + if (entrypointResult is Task entrypointTask) + { + entrypointTask.ContinueWith(task => + { + if (task.Exception != null) + { + HandleStartupException(task.Exception); + } + }); + } + } + + private static MethodBase FindUnderlyingEntrypoint(Assembly assembly) + { + // This is the entrypoint declared in .NET metadata. In the case of async main, it's the + // compiler-generated wrapper method. Otherwise it's the developer-defined method. + var metadataEntrypointMethodBase = assembly.EntryPoint; + + // For "async Task Main", the C# compiler generates a method called "
" + // that is marked as the assembly entrypoint. Detect this case, and instead of + // calling "", call the sibling "Whatever". + if (metadataEntrypointMethodBase.IsSpecialName) + { + var origName = metadataEntrypointMethodBase.Name; + var origNameLength = origName.Length; + if (origNameLength > 2) + { + var candidateMethodName = origName.Substring(1, origNameLength - 2); + var candidateMethod = metadataEntrypointMethodBase.DeclaringType.GetMethod( + candidateMethodName, + BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic, + null, + metadataEntrypointMethodBase.GetParameters().Select(p => p.ParameterType).ToArray(), + null); + + if (candidateMethod != null) + { + return candidateMethod; + } + } + } + + // Either it's not async main, or for some reason we couldn't locate the underlying entrypoint, + // so use the one from assembly metadata. + return metadataEntrypointMethodBase; + } + + private static void HandleStartupException(Exception exception) + { + // Logs to console, and causes the error UI to appear + Console.Error.WriteLine(exception); + } + } +} diff --git a/src/Components/Blazor/Blazor/test/Hosting/EntrypointInvokerTest.cs b/src/Components/Blazor/Blazor/test/Hosting/EntrypointInvokerTest.cs new file mode 100644 index 0000000000..60a3d1638b --- /dev/null +++ b/src/Components/Blazor/Blazor/test/Hosting/EntrypointInvokerTest.cs @@ -0,0 +1,153 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.IO; +using System.Reflection; +using System.Runtime.Loader; +using System.Threading.Tasks; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Xunit; + +namespace Microsoft.AspNetCore.Blazor.Hosting +{ + public class EntrypointInvokerTest + { + [Theory] + [InlineData(false, false)] + [InlineData(false, true)] + [InlineData(true, false)] + [InlineData(true, true)] + public void InvokesEntrypoint_Sync_Success(bool hasReturnValue, bool hasParams) + { + // Arrange + var returnType = hasReturnValue ? "int" : "void"; + var paramsDecl = hasParams ? "string[] args" : string.Empty; + var returnStatement = hasReturnValue ? "return 123;" : "return;"; + var assembly = CompileToAssembly(@" +static " + returnType + @" Main(" + paramsDecl + @") +{ + DidMainExecute = true; + " + returnStatement + @" +}", out var didMainExecute); + + // Act + EntrypointInvoker.InvokeEntrypoint(assembly.FullName, new string[] { }); + + // Assert + Assert.True(didMainExecute()); + } + + [Theory] + [InlineData(false, false)] + [InlineData(false, true)] + [InlineData(true, false)] + [InlineData(true, true)] + public void InvokesEntrypoint_Async_Success(bool hasReturnValue, bool hasParams) + { + // Arrange + var returnTypeGenericParam = hasReturnValue ? "" : string.Empty; + var paramsDecl = hasParams ? "string[] args" : string.Empty; + var returnStatement = hasReturnValue ? "return 123;" : "return;"; + var assembly = CompileToAssembly(@" +public static TaskCompletionSource ContinueTcs { get; } = new TaskCompletionSource(); + +static async Task" + returnTypeGenericParam + @" Main(" + paramsDecl + @") +{ + await ContinueTcs.Task; + DidMainExecute = true; + " + returnStatement + @" +}", out var didMainExecute); + + // Act/Assert 1: Waits for task + // The fact that we're not blocking here proves that we're not executing the + // metadata-declared entrypoint, as that would block + EntrypointInvoker.InvokeEntrypoint(assembly.FullName, new string[] { }); + Assert.False(didMainExecute()); + + // Act/Assert 2: Continues + var tcs = (TaskCompletionSource)assembly.GetType("SomeApp.Program").GetProperty("ContinueTcs").GetValue(null); + tcs.SetResult(null); + Assert.True(didMainExecute()); + } + + [Fact] + public void InvokesEntrypoint_Sync_Exception() + { + // Arrange + var assembly = CompileToAssembly(@" +public static void Main() +{ + DidMainExecute = true; + throw new InvalidTimeZoneException(""Test message""); +}", out var didMainExecute); + + // Act/Assert + // The fact that this doesn't throw shows that EntrypointInvoker is doing something + // to handle the exception. We can't assert about what it does here, because that + // would involve capturing console output, which isn't safe in unit tests. Instead + // we'll check this in E2E tests. + EntrypointInvoker.InvokeEntrypoint(assembly.FullName, new string[] { }); + Assert.True(didMainExecute()); + } + + [Fact] + public void InvokesEntrypoint_Async_Exception() + { + // Arrange + var assembly = CompileToAssembly(@" +public static TaskCompletionSource ContinueTcs { get; } = new TaskCompletionSource(); + +public static async Task Main() +{ + await ContinueTcs.Task; + DidMainExecute = true; + throw new InvalidTimeZoneException(""Test message""); +}", out var didMainExecute); + + // Act/Assert 1: Waits for task + EntrypointInvoker.InvokeEntrypoint(assembly.FullName, new string[] { }); + Assert.False(didMainExecute()); + + // Act/Assert 2: Continues + // As above, we can't directly observe the exception handling behavior here, + // so this is covered in E2E tests instead. + var tcs = (TaskCompletionSource)assembly.GetType("SomeApp.Program").GetProperty("ContinueTcs").GetValue(null); + tcs.SetResult(null); + Assert.True(didMainExecute()); + } + + private static Assembly CompileToAssembly(string mainMethod, out Func didMainExecute) + { + var syntaxTree = CSharpSyntaxTree.ParseText(@" +using System; +using System.Threading.Tasks; + +namespace SomeApp +{ + public static class Program + { + public static bool DidMainExecute { get; private set; } + + " + mainMethod + @" + } +}"); + + var compilation = CSharpCompilation.Create( + $"TestAssembly-{Guid.NewGuid().ToString("D")}", + new[] { syntaxTree }, + new[] { MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location) }, + new CSharpCompilationOptions(OutputKind.ConsoleApplication)); + using var ms = new MemoryStream(); + var compilationResult = compilation.Emit(ms); + ms.Seek(0, SeekOrigin.Begin); + var assembly = AssemblyLoadContext.Default.LoadFromStream(ms); + + var didMainExecuteProp = assembly.GetType("SomeApp.Program").GetProperty("DidMainExecute"); + didMainExecute = () => (bool)didMainExecuteProp.GetValue(null); + + return assembly; + } + } +} diff --git a/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj b/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj index a0acf4173e..be1cb3f836 100644 --- a/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj +++ b/src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj @@ -1,4 +1,4 @@ - + $(DefaultNetCoreTargetFramework) @@ -6,6 +6,7 @@ + diff --git a/src/Components/Blazor/testassets/StandaloneApp/wwwroot/index.html b/src/Components/Blazor/testassets/StandaloneApp/wwwroot/index.html index 5da6ba26b3..fde34bd639 100644 --- a/src/Components/Blazor/testassets/StandaloneApp/wwwroot/index.html +++ b/src/Components/Blazor/testassets/StandaloneApp/wwwroot/index.html @@ -1,4 +1,4 @@ - + @@ -11,6 +11,12 @@ Loading... +
+ An unhandled exception has occurred. See browser dev tools for details. + Reload + 🗙 +
+ diff --git a/src/Components/Components.sln b/src/Components/Components.sln index b4d1840025..91278955cf 100644 --- a/src/Components/Components.sln +++ b/src/Components/Components.sln @@ -248,6 +248,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mono.WebAssembly.Interop", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mono.WebAssembly.Interop", "Blazor\Mono.WebAssembly.Interop\src\Mono.WebAssembly.Interop.csproj", "{D141CFEE-D10A-406B-8963-F86FA13732E3}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ComponentsApp.Server", "test\testassets\ComponentsApp.Server\ComponentsApp.Server.csproj", "{F2E27E1C-2E47-42C1-9AC7-36265A381717}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1518,6 +1520,18 @@ Global {D141CFEE-D10A-406B-8963-F86FA13732E3}.Release|x64.Build.0 = Release|Any CPU {D141CFEE-D10A-406B-8963-F86FA13732E3}.Release|x86.ActiveCfg = Release|Any CPU {D141CFEE-D10A-406B-8963-F86FA13732E3}.Release|x86.Build.0 = Release|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Debug|x64.ActiveCfg = Debug|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Debug|x64.Build.0 = Debug|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Debug|x86.ActiveCfg = Debug|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Debug|x86.Build.0 = Debug|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Release|Any CPU.Build.0 = Release|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Release|x64.ActiveCfg = Release|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Release|x64.Build.0 = Release|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Release|x86.ActiveCfg = Release|Any CPU + {F2E27E1C-2E47-42C1-9AC7-36265A381717}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1632,6 +1646,7 @@ Global {A5617A9D-C71E-44DE-936C-27611EB40A02} = {7260DED9-22A9-4E9D-92F4-5E8A4404DEAF} {21BB9C13-20C1-4F2B-80E4-D7C64AA3BD05} = {7260DED9-22A9-4E9D-92F4-5E8A4404DEAF} {D141CFEE-D10A-406B-8963-F86FA13732E3} = {21BB9C13-20C1-4F2B-80E4-D7C64AA3BD05} + {F2E27E1C-2E47-42C1-9AC7-36265A381717} = {44E0D4F3-4430-4175-B482-0D1AEE4BB699} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {CC3C47E1-AD1A-4619-9CD3-E08A0148E5CE} diff --git a/src/Components/Web.JS/src/Boot.WebAssembly.ts b/src/Components/Web.JS/src/Boot.WebAssembly.ts index efecd016e9..1a80098301 100644 --- a/src/Components/Web.JS/src/Boot.WebAssembly.ts +++ b/src/Components/Web.JS/src/Boot.WebAssembly.ts @@ -73,5 +73,7 @@ interface BootJsonData { window['Blazor'].start = boot; if (shouldAutoStart()) { - boot(); + boot().catch(error => { + Module.printErr(error); // Logs it, and causes the error UI to appear + }); } diff --git a/src/Components/Web.JS/src/Platform/Mono/MonoPlatform.ts b/src/Components/Web.JS/src/Platform/Mono/MonoPlatform.ts index 31fee329d6..527dcd5ab8 100644 --- a/src/Components/Web.JS/src/Platform/Mono/MonoPlatform.ts +++ b/src/Components/Web.JS/src/Platform/Mono/MonoPlatform.ts @@ -11,8 +11,7 @@ let assembly_load: (assemblyName: string) => number; let find_class: (assemblyHandle: number, namespace: string, className: string) => number; let find_method: (typeHandle: number, methodName: string, unknownArg: number) => MethodHandle; let invoke_method: (method: MethodHandle, target: System_Object, argsArrayPtr: number, exceptionFlagIntPtr: number) => System_Object; -let mono_call_assembly_entry_point: (assemblyName: string, args: System_Object[]) => System_Object; -let mono_obj_array_new: (length: number) => System_Object; +let mono_string_array_new: (length: number) => System_Array; let mono_string_get_utf8: (managedString: System_String) => Mono.Utf8Ptr; let mono_string: (jsString: string) => System_String; const appBinDirName = 'appBinDir'; @@ -41,9 +40,18 @@ export const monoPlatform: Platform = { findMethod: findMethod, - callEntryPoint: function callEntryPoint(assemblyName: string): System_Object { - const empty_array = mono_obj_array_new(0); - return mono_call_assembly_entry_point(assemblyName, [empty_array]); + callEntryPoint: function callEntryPoint(assemblyName: string) { + // Instead of using Module.mono_call_assembly_entry_point, we have our own logic for invoking + // the entrypoint which adds support for async main. + // Currently we disregard the return value from the entrypoint, whether it's sync or async. + // In the future, we might want Blazor.start to return a Promise>, where the + // outer promise reflects the startup process, and the inner one reflects the possibly-async + // .NET entrypoint method. + const invokeEntrypoint = findMethod('Microsoft.AspNetCore.Blazor', 'Microsoft.AspNetCore.Blazor.Hosting', 'EntrypointInvoker', 'InvokeEntrypoint'); + this.callMethod(invokeEntrypoint, null, [ + this.toDotNetString(assemblyName), + mono_string_array_new(0) // In the future, we may have a way of supplying arg strings. For now, we always supply an empty string[]. + ]); }, callMethod: function callMethod(method: MethodHandle, target: System_Object, args: System_Object[]): System_Object { @@ -263,11 +271,9 @@ function createEmscriptenModuleInstance(loadAssemblyUrls: string[], onReady: () 'number', ]); - mono_call_assembly_entry_point = Module.mono_call_assembly_entry_point; - mono_string_get_utf8 = Module.cwrap('mono_wasm_string_get_utf8', 'number', ['number']); mono_string = Module.cwrap('mono_wasm_string_from_js', 'number', ['string']); - mono_obj_array_new = Module.cwrap ('mono_wasm_obj_array_new', 'number', ['number']); + mono_string_array_new = Module.cwrap('mono_wasm_string_array_new', 'number', ['number']); MONO.loaded_files = []; diff --git a/src/Components/Web.JS/src/Platform/Platform.ts b/src/Components/Web.JS/src/Platform/Platform.ts index 84587f943a..29eb04609e 100644 --- a/src/Components/Web.JS/src/Platform/Platform.ts +++ b/src/Components/Web.JS/src/Platform/Platform.ts @@ -1,7 +1,7 @@ export interface Platform { start(loadAssemblyUrls: string[]): Promise; - callEntryPoint(assemblyName: string): System_Object; + callEntryPoint(assemblyName: string): void; findMethod(assemblyName: string, namespace: string, className: string, methodName: string): MethodHandle; callMethod(method: MethodHandle, target: System_Object | null, args: (System_Object | null)[]): System_Object; diff --git a/src/Components/test/E2ETest/Tests/ErrorNotificationServerSideTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ServerErrorNotificationTest.cs similarity index 85% rename from src/Components/test/E2ETest/Tests/ErrorNotificationServerSideTest.cs rename to src/Components/test/E2ETest/ServerExecutionTests/ServerErrorNotificationTest.cs index 6d2e860573..77b7da75d6 100644 --- a/src/Components/test/E2ETest/Tests/ErrorNotificationServerSideTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ServerErrorNotificationTest.cs @@ -5,16 +5,15 @@ using BasicTestApp; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests; using Microsoft.AspNetCore.E2ETesting; -using OpenQA.Selenium; using Xunit; using Xunit.Abstractions; namespace Microsoft.AspNetCore.Components.E2ETest.Tests { [Collection("ErrorNotification")] // When the clientside and serverside tests run together it seems to cause failures, possibly due to connection lose on exception. - public class ErrorNotificationServerSideTest : ErrorNotificationClientSideTest + public class ServerErrorNotificationTest : ErrorNotificationTest { - public ErrorNotificationServerSideTest( + public ServerErrorNotificationTest( BrowserFixture browserFixture, ToggleExecutionModeServerFixture serverFixture, ITestOutputHelper output) diff --git a/src/Components/test/E2ETest/Tests/ErrorNotificationClientSideTest.cs b/src/Components/test/E2ETest/Tests/ErrorNotificationTest.cs similarity index 94% rename from src/Components/test/E2ETest/Tests/ErrorNotificationClientSideTest.cs rename to src/Components/test/E2ETest/Tests/ErrorNotificationTest.cs index 7c0705acde..883d1bc5ab 100644 --- a/src/Components/test/E2ETest/Tests/ErrorNotificationClientSideTest.cs +++ b/src/Components/test/E2ETest/Tests/ErrorNotificationTest.cs @@ -13,9 +13,9 @@ using Xunit.Abstractions; namespace Microsoft.AspNetCore.Components.E2ETest.Tests { [Collection("ErrorNotification")] // When the clientside and serverside tests run together it seems to cause failures, possibly due to connection lose on exception. - public class ErrorNotificationClientSideTest : ServerTestBase> + public class ErrorNotificationTest : ServerTestBase> { - public ErrorNotificationClientSideTest( + public ErrorNotificationTest( BrowserFixture browserFixture, ToggleExecutionModeServerFixture serverFixture, ITestOutputHelper output) diff --git a/src/Components/test/E2ETest/Tests/StartupErrorNotificationTest.cs b/src/Components/test/E2ETest/Tests/StartupErrorNotificationTest.cs new file mode 100644 index 0000000000..75359253c0 --- /dev/null +++ b/src/Components/test/E2ETest/Tests/StartupErrorNotificationTest.cs @@ -0,0 +1,40 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using BasicTestApp; +using Microsoft.AspNetCore.E2ETesting; +using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; +using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; +using OpenQA.Selenium; +using Xunit.Abstractions; +using Xunit; + +namespace Microsoft.AspNetCore.Components.E2ETest.Tests +{ + public class StartupErrorNotificationTest : ServerTestBase> + { + public StartupErrorNotificationTest( + BrowserFixture browserFixture, + DevHostServerFixture serverFixture, + ITestOutputHelper output) + : base(browserFixture, serverFixture, output) + { + _serverFixture.PathBase = ServerPathBase; + } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public void DisplaysNotificationForStartupException(bool errorIsAsync) + { + var url = $"{ServerPathBase}?error={(errorIsAsync ? "async" : "sync")}"; + + Navigate(url, noReload: true); + var errorUiElem = Browser.Exists(By.Id("blazor-error-ui"), TimeSpan.FromSeconds(10)); + Assert.NotNull(errorUiElem); + + Browser.Equal("block", () => errorUiElem.GetCssValue("display")); + } + } +} diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index 0548f382a8..eff29276a4 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -87,12 +87,6 @@ @((RenderFragment)RenderSelectedComponent) -
- An unhandled error has occurred. - Reload - 🗙 -
- @code { string SelectedComponentTypeName { get; set; } = "none"; diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index cebb226e7c..2be7d81b4e 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -1,15 +1,20 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Globalization; +using System.Threading.Tasks; using Microsoft.AspNetCore.Blazor.Hosting; +using Mono.WebAssembly.Interop; namespace BasicTestApp { public class Program { - public static void Main(string[] args) + public static async Task Main(string[] args) { + await SimulateErrorsIfNeededForTest(); + // We want the culture to be en-US so that the tests for bind can work consistently. CultureInfo.CurrentCulture = new CultureInfo("en-US"); @@ -19,5 +24,22 @@ namespace BasicTestApp public static IWebAssemblyHostBuilder CreateHostBuilder(string[] args) => BlazorWebAssemblyHost.CreateDefaultBuilder() .UseBlazorStartup(); + + // Supports E2E tests in StartupErrorNotificationTest + private static async Task SimulateErrorsIfNeededForTest() + { + var currentUrl = new MonoWebAssemblyJSRuntime().Invoke("getCurrentUrl"); + if (currentUrl.Contains("error=sync")) + { + throw new InvalidTimeZoneException("This is a synchronous startup exception"); + } + + await Task.Yield(); + + if (currentUrl.Contains("error=async")) + { + throw new InvalidTimeZoneException("This is an asynchronous startup exception"); + } + } } } diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/index.html b/src/Components/test/testassets/BasicTestApp/wwwroot/index.html index 517d9d6fcc..a37c08a7d1 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/index.html +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/index.html @@ -14,6 +14,13 @@ Loading... + + + @@ -27,6 +34,10 @@ function navigationManagerNavigate() { Blazor.navigateTo('/subdir/some-path'); } + + function getCurrentUrl() { + return location.href; + } diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/style.css b/src/Components/test/testassets/BasicTestApp/wwwroot/style.css index 777375d9e0..ea9900430b 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/style.css +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/style.css @@ -7,11 +7,23 @@ } #blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; + box-sizing: border-box; } - #blazor-error-ui dismiss { + #blazor-error-ui .dismiss { cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; } .validation-message { diff --git a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml index af2f28f658..b0ba837af2 100644 --- a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml @@ -17,6 +17,12 @@ +
+ An unhandled error has occurred. + Reload + 🗙 +
+