From ad97f8ab85a596f3deed551964058fd2536165a6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2019 07:21:34 +0000 Subject: [PATCH 1/7] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190922.2 (#14245) - Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19472.2 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19472.2 - dotnet-ef - 3.1.0-preview1.19472.2 - Microsoft.EntityFrameworkCore - 3.1.0-preview1.19472.2 - Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19472.2 - Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19472.2 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19472.2 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19470.9 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19470.9 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19470.9 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19470.9 (parent: Microsoft.Extensions.Logging) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19470.2 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 288 ++++++++++++++++++++-------------------- eng/Versions.props | 144 ++++++++++---------- 2 files changed, 216 insertions(+), 216 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cac579c3bc..eba63dbda6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,269 +29,269 @@ https://github.com/aspnet/AspNetCore-Tooling 9dc38f98bd6eb330aa1463c38bb2f6c6eccdb309 - + https://github.com/aspnet/EntityFrameworkCore - 6cfdd4a9df8fa46ece6894541278b01b6411d273 + 04a13869d538a4519a403d50abfbbff28b5f41fd - + https://github.com/aspnet/EntityFrameworkCore - 6cfdd4a9df8fa46ece6894541278b01b6411d273 + 04a13869d538a4519a403d50abfbbff28b5f41fd - + https://github.com/aspnet/EntityFrameworkCore - 6cfdd4a9df8fa46ece6894541278b01b6411d273 + 04a13869d538a4519a403d50abfbbff28b5f41fd - + https://github.com/aspnet/EntityFrameworkCore - 6cfdd4a9df8fa46ece6894541278b01b6411d273 + 04a13869d538a4519a403d50abfbbff28b5f41fd - + https://github.com/aspnet/EntityFrameworkCore - 6cfdd4a9df8fa46ece6894541278b01b6411d273 + 04a13869d538a4519a403d50abfbbff28b5f41fd - + https://github.com/aspnet/EntityFrameworkCore - 6cfdd4a9df8fa46ece6894541278b01b6411d273 + 04a13869d538a4519a403d50abfbbff28b5f41fd - + https://github.com/aspnet/EntityFrameworkCore - 6cfdd4a9df8fa46ece6894541278b01b6411d273 + 04a13869d538a4519a403d50abfbbff28b5f41fd - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c https://github.com/dotnet/corefx @@ -381,25 +381,25 @@ https://github.com/dotnet/corefx d0f0bfa5b123b4c1183c889cf4017bb529675502 - + https://github.com/dotnet/core-setup - b0ea03ec3af2a9c388f718fbb4978984ab339953 + 72b39b0473993b932a08c8fc24a8988d45b416a5 - + https://github.com/dotnet/core-setup - b0ea03ec3af2a9c388f718fbb4978984ab339953 + 72b39b0473993b932a08c8fc24a8988d45b416a5 - + https://github.com/dotnet/core-setup - b0ea03ec3af2a9c388f718fbb4978984ab339953 + 72b39b0473993b932a08c8fc24a8988d45b416a5 - + https://github.com/dotnet/core-setup - b0ea03ec3af2a9c388f718fbb4978984ab339953 + 72b39b0473993b932a08c8fc24a8988d45b416a5 @@ -408,9 +408,9 @@ https://github.com/dotnet/corefx d0f0bfa5b123b4c1183c889cf4017bb529675502 - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 8b0d85434b8da04ab6395496803525db6003fa22 + 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 26cf85de83..7540f5e7a2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,10 +61,10 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19470.5 - 3.1.0-preview1.19470.5 - 3.1.0-preview1.19470.5 - 2.1.0-preview1.19470.5 + 3.1.0-preview1.19470.9 + 3.1.0-preview1.19470.9 + 3.1.0-preview1.19470.9 + 2.1.0-preview1.19470.9 1.1.0-preview1.19463.3 4.7.0-preview1.19463.3 @@ -93,75 +93,75 @@ 3.0.0-preview9.19462.2 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 - 3.1.0-preview1.19470.1 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 + 3.1.0-preview1.19470.2 - 3.1.0-preview1.19471.7 - 3.1.0-preview1.19471.7 - 3.1.0-preview1.19471.7 - 3.1.0-preview1.19471.7 - 3.1.0-preview1.19471.7 - 3.1.0-preview1.19471.7 - 3.1.0-preview1.19471.7 + 3.1.0-preview1.19472.2 + 3.1.0-preview1.19472.2 + 3.1.0-preview1.19472.2 + 3.1.0-preview1.19472.2 + 3.1.0-preview1.19472.2 + 3.1.0-preview1.19472.2 + 3.1.0-preview1.19472.2 3.1.0-preview1.19472.1 3.1.0-preview1.19472.1 From 8430a30abc3ca0cd2d00e40c9260a6335fc8dc5c Mon Sep 17 00:00:00 2001 From: Artak <34246760+mkArtakMSFT@users.noreply.github.com> Date: Thu, 19 Sep 2019 10:16:02 -0700 Subject: [PATCH 2/7] Updated the description text --- .../content/RazorPagesWeb-CSharp/.template.config/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json index d027fb97e4..3441545d67 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json @@ -8,7 +8,7 @@ ], "name": "ASP.NET Core Web App", "generatorVersions": "[1.0.0.0-*)", - "description": "A project template for creating an ASP.NET Core application with example ASP.NET Razor Pages content", + "description": "A project template for creating an ASP.NET Core application with example ASP.NET Core Razor Pages content", "groupIdentity": "Microsoft.Web.RazorPages", "precedence": "5000", "identity": "Microsoft.Web.RazorPages.CSharp.3.0", From 3c05f3a8af2c4a72b351b0bfe09329ef3ffe23f4 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Mon, 23 Sep 2019 11:17:45 -0700 Subject: [PATCH 3/7] Do not return an top lever parameter analyzer warning for some types (#13496) * Do not return an top lever parameter analyzer warning for some types Fixes https://github.com/aspnet/AspNetCore/issues/6945 --- .../src/DiagnosticDescriptors.cs | 3 ++- .../src/TopLevelParameterNameAnalyzer.cs | 27 ++++++++++++++++++- ...icParameter_ReturnsFalse_ForSimpleTypes.cs | 9 +++++++ .../test/TopLevelParameterNameAnalyzerTest.cs | 24 +++++++++++++++++ 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 src/Mvc/Mvc.Analyzers/test/TestFiles/TopLevelParameterNameAnalyzerTest/IsProblematicParameter_ReturnsFalse_ForSimpleTypes.cs diff --git a/src/Mvc/Mvc.Analyzers/src/DiagnosticDescriptors.cs b/src/Mvc/Mvc.Analyzers/src/DiagnosticDescriptors.cs index 1b7eace720..76b068a928 100644 --- a/src/Mvc/Mvc.Analyzers/src/DiagnosticDescriptors.cs +++ b/src/Mvc/Mvc.Analyzers/src/DiagnosticDescriptors.cs @@ -47,7 +47,8 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers new DiagnosticDescriptor( "MVC1004", "Rename model bound parameter.", - "Property on type '{0}' has the same name as parameter '{1}'. This may result in incorrect model binding. Consider renaming the parameter or using a model binding attribute to override the name.", + "Property on type '{0}' has the same name as parameter '{1}'. This may result in incorrect model binding. " + + "Consider renaming the parameter or the property to avoid conflicts. If the type '{0}' has a custom type converter or custom model binder, you can suppress this message.", "Naming", DiagnosticSeverity.Warning, isEnabledByDefault: true, diff --git a/src/Mvc/Mvc.Analyzers/src/TopLevelParameterNameAnalyzer.cs b/src/Mvc/Mvc.Analyzers/src/TopLevelParameterNameAnalyzer.cs index c20466bfcc..2d391f55c8 100644 --- a/src/Mvc/Mvc.Analyzers/src/TopLevelParameterNameAnalyzer.cs +++ b/src/Mvc/Mvc.Analyzers/src/TopLevelParameterNameAnalyzer.cs @@ -89,12 +89,17 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers return false; } - if (SpecifiesModelType(symbolCache, parameter)) + if (SpecifiesModelType(in symbolCache, parameter)) { // Ignore parameters that specify a model type. return false; } + if (!IsComplexType(parameter.Type)) + { + return false; + } + var parameterName = GetName(symbolCache, parameter); var type = parameter.Type; @@ -122,6 +127,26 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers return false; } + private static bool IsComplexType(ITypeSymbol type) + { + // This analyzer should not apply to simple types. In MVC, a simple type is any type that has a type converter that returns true for TypeConverter.CanConvertFrom(typeof(string)). + // Unfortunately there isn't a Roslyn way of determining if a TypeConverter exists for a given symbol or if the converter allows string conversions. + // https://github.com/dotnet/corefx/blob/v3.0.0-preview8.19405.3/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectTypeDescriptionProvider.cs#L103-L141 + // provides a list of types that have built-in converters. + // We'll use a simpler heuristic in the analyzer: A type is simple if it's a value type or if it's in the "System.*" namespace hierarchy. + + var @namespace = type.ContainingNamespace?.ToString(); + if (@namespace != null) + { + // Things in the System.* namespace hierarchy don't count as complex types. This workarounds + // the problem of discovering type converters on types in mscorlib. + return @namespace != "System" && + !@namespace.StartsWith("System.", StringComparison.Ordinal); + } + + return true; + } + internal static string GetName(in SymbolCache symbolCache, ISymbol symbol) { foreach (var attribute in symbol.GetAttributes(symbolCache.IModelNameProvider)) diff --git a/src/Mvc/Mvc.Analyzers/test/TestFiles/TopLevelParameterNameAnalyzerTest/IsProblematicParameter_ReturnsFalse_ForSimpleTypes.cs b/src/Mvc/Mvc.Analyzers/test/TestFiles/TopLevelParameterNameAnalyzerTest/IsProblematicParameter_ReturnsFalse_ForSimpleTypes.cs new file mode 100644 index 0000000000..50aded8121 --- /dev/null +++ b/src/Mvc/Mvc.Analyzers/test/TestFiles/TopLevelParameterNameAnalyzerTest/IsProblematicParameter_ReturnsFalse_ForSimpleTypes.cs @@ -0,0 +1,9 @@ +using System; + +namespace Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzerTestFiles +{ + public class IsProblematicParameter_ReturnsFalse_ForSimpleTypes + { + public void ActionMethod(DateTime date, DateTime? day, Uri absoluteUri, Version majorRevision, DayOfWeek sunday) { } + } +} diff --git a/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs b/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs index 361f6d3cb5..b13e1eac9e 100644 --- a/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs +++ b/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs @@ -95,6 +95,30 @@ namespace Microsoft.AspNetCore.Mvc.Analyzers Assert.False(result); } + // Test for https://github.com/aspnet/AspNetCore/issues/6945 + [Fact] + public async Task IsProblematicParameter_ReturnsFalse_ForSimpleTypes() + { + var testName = nameof(IsProblematicParameter_ReturnsFalse_ForSimpleTypes); + var testSource = MvcTestSource.Read(GetType().Name, testName); + var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source }); + + var compilation = await project.GetCompilationAsync(); + + var modelType = compilation.GetTypeByMetadataName($"Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzerTestFiles.{testName}"); + var method = (IMethodSymbol)modelType.GetMembers("ActionMethod").First(); + + Assert.True(TopLevelParameterNameAnalyzer.SymbolCache.TryCreate(compilation, out var symbolCache)); + + Assert.Collection( + method.Parameters, + p => Assert.False(TopLevelParameterNameAnalyzer.IsProblematicParameter(symbolCache, p)), + p => Assert.False(TopLevelParameterNameAnalyzer.IsProblematicParameter(symbolCache, p)), + p => Assert.False(TopLevelParameterNameAnalyzer.IsProblematicParameter(symbolCache, p)), + p => Assert.False(TopLevelParameterNameAnalyzer.IsProblematicParameter(symbolCache, p)), + p => Assert.False(TopLevelParameterNameAnalyzer.IsProblematicParameter(symbolCache, p))); + } + [Fact] public async Task IsProblematicParameter_IgnoresStaticProperties() { From 2e4609a02bda11ce79f20aa26e18177a9cb27865 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Sat, 21 Sep 2019 11:40:02 -0700 Subject: [PATCH 4/7] Skip F# variant of `MvcTemplate_NoAuthImplAsync(...)` test - #14022 - template test run on CI does not honour `[Flaky]` --- src/ProjectTemplates/test/MvcTemplateTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs index 95f6ce784a..0ec1c9e01e 100644 --- a/src/ProjectTemplates/test/MvcTemplateTest.cs +++ b/src/ProjectTemplates/test/MvcTemplateTest.cs @@ -27,7 +27,7 @@ namespace Templates.Test [Theory] [InlineData(null)] - [InlineData("F#")] + [InlineData("F#", Skip = "https://github.com/aspnet/AspNetCore/issues/14022")] [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2267", FlakyOn.All)] public async Task MvcTemplate_NoAuthImplAsync(string languageOverride) { From 26f160d1649350083fad67f45741ceb1c798b110 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Mon, 23 Sep 2019 11:46:25 -0700 Subject: [PATCH 5/7] Remove additional explict 'netcoreapp3.1' mentions (#14226) - e.g. use netcoreappX.Y in comments --- eng/Workarounds.targets | 2 +- eng/tools/BaselineGenerator/BaselineGenerator.csproj | 2 +- eng/tools/RepoTasks/RepoTasks.csproj | 4 ++-- src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj | 2 +- src/ProjectTemplates/test/BlazorServerTemplateTest.cs | 4 ++-- src/ProjectTemplates/test/EmptyWebTemplateTest.cs | 2 +- src/ProjectTemplates/test/IdentityUIPackageTest.cs | 2 +- src/ProjectTemplates/test/MvcTemplateTest.cs | 4 ++-- src/ProjectTemplates/test/RazorClassLibraryTemplateTest.cs | 4 ++-- src/ProjectTemplates/test/RazorPagesTemplateTest.cs | 4 ++-- .../test/SpaTemplateTest/SpaTemplateTestBase.cs | 2 +- src/ProjectTemplates/test/WebApiTemplateTest.cs | 2 +- src/ProjectTemplates/test/WorkerTemplateTest.cs | 2 +- .../IIS/IntegrationTesting.IIS/src/IISExpressDeployer.cs | 2 +- .../src/Internal/Transports/WebSocketsServerTransport.cs | 3 ++- 15 files changed, 21 insertions(+), 20 deletions(-) diff --git a/eng/Workarounds.targets b/eng/Workarounds.targets index 62ecd5baee..32f68d1bc3 100644 --- a/eng/Workarounds.targets +++ b/eng/Workarounds.targets @@ -9,7 +9,7 @@ diff --git a/eng/tools/BaselineGenerator/BaselineGenerator.csproj b/eng/tools/BaselineGenerator/BaselineGenerator.csproj index 143b3063d7..082a9eaf02 100644 --- a/eng/tools/BaselineGenerator/BaselineGenerator.csproj +++ b/eng/tools/BaselineGenerator/BaselineGenerator.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + $(DefaultNetCoreTargetFramework) -s https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json $(MSBuildThisFileDirectory)../../ diff --git a/eng/tools/RepoTasks/RepoTasks.csproj b/eng/tools/RepoTasks/RepoTasks.csproj index a954207698..5bef776106 100644 --- a/eng/tools/RepoTasks/RepoTasks.csproj +++ b/eng/tools/RepoTasks/RepoTasks.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + $(DefaultNetCoreTargetFramework) $(TargetFrameworks);net472 $(DefineConstants);BUILD_MSI_TASKS false @@ -16,7 +16,7 @@ - + diff --git a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj index 633be490c2..4c4298a92d 100644 --- a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj +++ b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj @@ -25,7 +25,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant aspnetcore_base_runtime.version $(InstallersOutputPath)$(BaseRuntimeVersionFileName) - + runtimes/$(RuntimeIdentifier)/lib/ $(BuildOutputTargetFolder)$(DefaultNetCoreTargetFramework) diff --git a/src/ProjectTemplates/test/BlazorServerTemplateTest.cs b/src/ProjectTemplates/test/BlazorServerTemplateTest.cs index bf9fe12f2c..463b710ac3 100644 --- a/src/ProjectTemplates/test/BlazorServerTemplateTest.cs +++ b/src/ProjectTemplates/test/BlazorServerTemplateTest.cs @@ -36,7 +36,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); @@ -93,7 +93,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/ProjectTemplates/test/EmptyWebTemplateTest.cs b/src/ProjectTemplates/test/EmptyWebTemplateTest.cs index 64f5d8cf3e..c6fb6dfeeb 100644 --- a/src/ProjectTemplates/test/EmptyWebTemplateTest.cs +++ b/src/ProjectTemplates/test/EmptyWebTemplateTest.cs @@ -36,7 +36,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/ProjectTemplates/test/IdentityUIPackageTest.cs b/src/ProjectTemplates/test/IdentityUIPackageTest.cs index 204c560859..deede64521 100644 --- a/src/ProjectTemplates/test/IdentityUIPackageTest.cs +++ b/src/ProjectTemplates/test/IdentityUIPackageTest.cs @@ -134,7 +134,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(packageOptions: packageOptions); diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs index 0ec1c9e01e..7c5306fa3e 100644 --- a/src/ProjectTemplates/test/MvcTemplateTest.cs +++ b/src/ProjectTemplates/test/MvcTemplateTest.cs @@ -48,7 +48,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); @@ -116,7 +116,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/ProjectTemplates/test/RazorClassLibraryTemplateTest.cs b/src/ProjectTemplates/test/RazorClassLibraryTemplateTest.cs index 8186ab4156..0d02a56f8f 100644 --- a/src/ProjectTemplates/test/RazorClassLibraryTemplateTest.cs +++ b/src/ProjectTemplates/test/RazorClassLibraryTemplateTest.cs @@ -33,7 +33,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); @@ -52,7 +52,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs index 637d7179b5..94bfe38d18 100644 --- a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs +++ b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs @@ -45,7 +45,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, createResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); @@ -115,7 +115,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs b/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs index 700349b773..1826b5a4eb 100644 --- a/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs +++ b/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs @@ -76,7 +76,7 @@ namespace Templates.Test.SpaTemplateTest Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. using var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/ProjectTemplates/test/WebApiTemplateTest.cs b/src/ProjectTemplates/test/WebApiTemplateTest.cs index 8e08db9068..39ca4adcf5 100644 --- a/src/ProjectTemplates/test/WebApiTemplateTest.cs +++ b/src/ProjectTemplates/test/WebApiTemplateTest.cs @@ -36,7 +36,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/ProjectTemplates/test/WorkerTemplateTest.cs b/src/ProjectTemplates/test/WorkerTemplateTest.cs index fbe88be770..738eafc61d 100644 --- a/src/ProjectTemplates/test/WorkerTemplateTest.cs +++ b/src/ProjectTemplates/test/WorkerTemplateTest.cs @@ -32,7 +32,7 @@ namespace Templates.Test Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult)); // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release - // The output from publish will go into bin/Release/netcoreapp3.1/publish and won't be affected by calling build + // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build // later, while the opposite is not true. var buildResult = await Project.RunDotNetBuildAsync(); diff --git a/src/Servers/IIS/IntegrationTesting.IIS/src/IISExpressDeployer.cs b/src/Servers/IIS/IntegrationTesting.IIS/src/IISExpressDeployer.cs index 4206ab8f22..e408a22b69 100644 --- a/src/Servers/IIS/IntegrationTesting.IIS/src/IISExpressDeployer.cs +++ b/src/Servers/IIS/IntegrationTesting.IIS/src/IISExpressDeployer.cs @@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS // Start timer StartTimer(); - // For an unpublished application the dllroot points pre-built dlls like projectdir/bin/debug/netcoreapp3.1/ + // For an unpublished application the dllroot points pre-built dlls like projectdir/bin/debug/netcoreappX.Y/ // and contentRoot points to the project directory so you get things like static assets. // For a published app both point to the publish directory. var dllRoot = CheckIfPublishIsRequired(); diff --git a/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs b/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs index ef54b75288..d5c2c1fefb 100644 --- a/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs +++ b/src/SignalR/common/Http.Connections/src/Internal/Transports/WebSocketsServerTransport.cs @@ -155,7 +155,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports var memory = _application.Output.GetMemory(); var receiveResult = await socket.ReceiveAsync(memory, token); - // Need to check again for netcoreapp3.1 because a close can happen between a 0-byte read and the actual read + + // Need to check again for netcoreapp3.0 and later because a close can happen between a 0-byte read and the actual read if (receiveResult.MessageType == WebSocketMessageType.Close) { return; From 454f18b71a3ff1ae8d542a5ff64ec3f77567dfd0 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 24 Sep 2019 01:07:27 +0200 Subject: [PATCH 6/7] [Templating][Fixes #13679] Updates Identity _LoginPartial to correctly log out from Identity (#14315) --- .../Areas/Identity/Pages/Shared/_LoginPartial.cshtml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml index e35168507a..a4f854aac3 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml @@ -10,7 +10,9 @@ Hello @User.Identity.Name! } else From 2c179318db28ba7df70ff5076ac56d7ccce20413 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 24 Sep 2019 01:08:11 +0200 Subject: [PATCH 7/7] [Templates] Separate F# from C# tests, unskip tests, include reliability improvements. (#14261) * Separates F# from C# tests. These tests have very different runtime characteristics and should not be bundled together as the same test scenario. For example, we want to quickly separate F# specific issues from C# specific ones. * Unskipping all skipped tests as the issue tracking their flakyness was closed. * Adding reliability improvements to network requests. * Adds retries. --- .../test/EmptyWebTemplateTest.cs | 17 +++++++--- .../test/Helpers/AspNetProcess.cs | 32 ++++++++++++++++--- src/ProjectTemplates/test/MvcTemplateTest.cs | 16 ++++++---- .../test/RazorPagesTemplateTest.cs | 6 ++-- .../test/WebApiTemplateTest.cs | 11 ++++--- 5 files changed, 58 insertions(+), 24 deletions(-) diff --git a/src/ProjectTemplates/test/EmptyWebTemplateTest.cs b/src/ProjectTemplates/test/EmptyWebTemplateTest.cs index c6fb6dfeeb..56e2e8c105 100644 --- a/src/ProjectTemplates/test/EmptyWebTemplateTest.cs +++ b/src/ProjectTemplates/test/EmptyWebTemplateTest.cs @@ -22,10 +22,19 @@ namespace Templates.Test public ITestOutputHelper Output { get; } - [Theory] - [InlineData(null)] - [InlineData("F#")] - public async Task EmptyWebTemplateAsync(string languageOverride) + [Fact] + public async Task EmptyWebTemplateCSharp() + { + await EmtpyTemplateCore(languageOverride: null); + } + + [Fact] + public async Task EmptyWebTemplateFSharp() + { + await EmtpyTemplateCore("F#"); + } + + private async Task EmtpyTemplateCore(string languageOverride) { Project = await ProjectFactory.GetOrCreateProject("empty" + (languageOverride == "F#" ? "fsharp" : "csharp"), Output); diff --git a/src/ProjectTemplates/test/Helpers/AspNetProcess.cs b/src/ProjectTemplates/test/Helpers/AspNetProcess.cs index cb071dc8f3..deb0c199d2 100644 --- a/src/ProjectTemplates/test/Helpers/AspNetProcess.cs +++ b/src/ProjectTemplates/test/Helpers/AspNetProcess.cs @@ -58,7 +58,7 @@ namespace Templates.Test.Helpers var arguments = published ? $"exec {dllPath}" : "run"; Process = ProcessEx.Run(output, workingDirectory, DotNetMuxer.MuxerPathOrDefault(), arguments, envVars: environmentVariables); - if(hasListeningUri) + if (hasListeningUri) { ListeningUri = GetListeningUri(output); } @@ -108,7 +108,7 @@ namespace Templates.Test.Helpers HttpMethod.Get, new Uri(ListeningUri, page.Url)); - var response = await _httpClient.SendAsync(request); + var response = await RequestWithRetries(client => client.SendAsync(request), _httpClient); Assert.Equal(HttpStatusCode.OK, response.StatusCode); var parser = new HtmlParser(); @@ -141,7 +141,7 @@ namespace Templates.Test.Helpers Assert.True(string.Equals(anchor.Href, expectedLink), $"Expected next link to be {expectedLink} but it was {anchor.Href}."); var result = await RetryHelper.RetryRequest(async () => { - return await _httpClient.GetAsync(anchor.Href); + return await RequestWithRetries(client => client.GetAsync(anchor.Href), _httpClient); }, logger: NullLogger.Instance); Assert.True(IsSuccessStatusCode(result), $"{anchor.Href} is a broken link!"); @@ -149,6 +149,28 @@ namespace Templates.Test.Helpers } } + private async Task RequestWithRetries(Func> requester, HttpClient client, int retries = 3, TimeSpan initialDelay = default) + { + var currentDelay = initialDelay == default ? TimeSpan.FromSeconds(30) : initialDelay; + for (int i = 0; i <= retries; i++) + { + try + { + return await requester(client); + } + catch (Exception) + { + if (i == retries) + { + throw; + } + await Task.Delay(currentDelay); + currentDelay *= 2; + } + } + throw new InvalidOperationException("Max retries reached."); + } + private Uri GetListeningUri(ITestOutputHelper output) { // Wait until the app is accepting HTTP requests @@ -190,7 +212,7 @@ namespace Templates.Test.Helpers internal Task SendRequest(string path) { - return _httpClient.GetAsync(new Uri(ListeningUri, path)); + return RequestWithRetries(client => client.GetAsync(new Uri(ListeningUri, path)), _httpClient); } public async Task AssertStatusCode(string requestUrl, HttpStatusCode statusCode, string acceptContentType = null) @@ -204,7 +226,7 @@ namespace Templates.Test.Helpers request.Headers.Add("Accept", acceptContentType); } - var response = await _httpClient.SendAsync(request); + var response = await RequestWithRetries(client => client.SendAsync(request), _httpClient); Assert.True(statusCode == response.StatusCode, $"Expected {requestUrl} to have status '{statusCode}' but it was '{response.StatusCode}'."); } diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs index 7c5306fa3e..9ebaf1afc6 100644 --- a/src/ProjectTemplates/test/MvcTemplateTest.cs +++ b/src/ProjectTemplates/test/MvcTemplateTest.cs @@ -25,11 +25,14 @@ namespace Templates.Test public ProjectFactoryFixture ProjectFactory { get; } public ITestOutputHelper Output { get; } - [Theory] - [InlineData(null)] - [InlineData("F#", Skip = "https://github.com/aspnet/AspNetCore/issues/14022")] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2267", FlakyOn.All)] - public async Task MvcTemplate_NoAuthImplAsync(string languageOverride) + [Fact(Skip = "https://github.com/aspnet/AspNetCore/issues/14022")] + public async Task MvcTemplate_NoAuthFSharp() => await MvcTemplateCore(languageOverride: "F#"); + + [Fact] + public async Task MvcTemplate_NoAuthCSharp() => await MvcTemplateCore(languageOverride: null); + + + private async Task MvcTemplateCore(string languageOverride) { Project = await ProjectFactory.GetOrCreateProject("mvcnoauth" + (languageOverride == "F#" ? "fsharp" : "csharp"), Output); @@ -98,8 +101,7 @@ namespace Templates.Test [Theory] [InlineData(true)] [InlineData(false)] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2267", FlakyOn.All)] - public async Task MvcTemplate_IndividualAuthImplAsync(bool useLocalDB) + public async Task MvcTemplate_IndividualAuth(bool useLocalDB) { Project = await ProjectFactory.GetOrCreateProject("mvcindividual" + (useLocalDB ? "uld" : ""), Output); diff --git a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs index 94bfe38d18..7cd41d56b2 100644 --- a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs +++ b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs @@ -26,8 +26,7 @@ namespace Templates.Test public ITestOutputHelper Output { get; } [Fact] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2327", FlakyOn.All)] - public async Task RazorPagesTemplate_NoAuthImplAsync() + public async Task RazorPagesTemplate_NoAuth() { Project = await ProjectFactory.GetOrCreateProject("razorpagesnoauth", Output); @@ -95,10 +94,9 @@ namespace Templates.Test } [Theory] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2335", FlakyOn.All)] [InlineData(false)] [InlineData(true)] - public async Task RazorPagesTemplate_IndividualAuthImplAsync(bool useLocalDB) + public async Task RazorPagesTemplate_IndividualAuth(bool useLocalDB) { Project = await ProjectFactory.GetOrCreateProject("razorpagesindividual" + (useLocalDB ? "uld" : ""), Output); diff --git a/src/ProjectTemplates/test/WebApiTemplateTest.cs b/src/ProjectTemplates/test/WebApiTemplateTest.cs index 39ca4adcf5..89d047a06e 100644 --- a/src/ProjectTemplates/test/WebApiTemplateTest.cs +++ b/src/ProjectTemplates/test/WebApiTemplateTest.cs @@ -22,10 +22,13 @@ namespace Templates.Test public Project Project { get; set; } - [Theory] - [InlineData(null)] - [InlineData("F#")] - public async Task WebApiTemplateAsync(string languageOverride) + [Fact] + public async Task WebApiTemplateFSharp() => await WebApiTemplateCore(languageOverride: "F#"); + + [Fact] + public async Task WebApiTemplateCSharp() => await WebApiTemplateCore(languageOverride: null); + + private async Task WebApiTemplateCore(string languageOverride) { Project = await FactoryFixture.GetOrCreateProject("webapi" + (languageOverride == "F#" ? "fsharp" : "csharp"), Output);