From 86989413f6252ad45824632e17dd123280b9d2de Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Wed, 31 Jan 2018 15:01:11 -0800 Subject: [PATCH 1/4] Update dependencies.props to 2.1.0-preview-28193, build tools to 2.1.0-preview1-1010 [ci skip] Scripted changes: - updated travis and appveyor.yml files to only build dev, ci, and release branches - updated dependencies.props - updated korebuild-lock.txt - updated korebuild.json to release/2.1 channel --- .appveyor.yml | 16 +++++----- .travis.yml | 24 +++++++-------- build/dependencies.props | 66 ++++++++++++++++++++-------------------- korebuild-lock.txt | 4 +-- korebuild.json | 4 +-- 5 files changed, 56 insertions(+), 58 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index c7b6e34316..4eea96ab69 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,19 +1,17 @@ init: - - git config --global core.autocrlf true +- git config --global core.autocrlf true branches: only: - - master - - release - - dev - - /^(.*\/)?ci-.*$/ - - /^rel\/.*/ + - dev + - /^release\/.*$/ + - /^(.*\/)?ci-.*$/ build_script: - - ps: .\run.ps1 default-build +- ps: .\run.ps1 default-build clone_depth: 1 environment: global: DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true DOTNET_CLI_TELEMETRY_OPTOUT: 1 -test: off -deploy: off +test: 'off' +deploy: 'off' os: Visual Studio 2017 diff --git a/.travis.yml b/.travis.yml index 6c59666f3a..64bdbb4441 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,25 +3,25 @@ sudo: false dist: trusty env: global: - - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - - DOTNET_CLI_TELEMETRY_OPTOUT: 1 + - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true + - DOTNET_CLI_TELEMETRY_OPTOUT: 1 mono: none os: - - linux - - osx +- linux +- osx osx_image: xcode8.2 addons: apt: packages: - - libunwind8 + - libunwind8 branches: only: - - master - - release - - dev - - /^(.*\/)?ci-.*$/ - - /^rel\/.*/ + - dev + - /^release\/.*$/ + - /^(.*\/)?ci-.*$/ before_install: - - if test "$TRAVIS_OS_NAME" == "osx"; then brew update; brew install openssl; ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/; ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/; fi +- if test "$TRAVIS_OS_NAME" == "osx"; then brew update; brew install openssl; ln -s + /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/; ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib + /usr/local/lib/; fi script: - - ./build.sh +- ./build.sh diff --git a/build/dependencies.props b/build/dependencies.props index 8dafd8a582..e92f71a36f 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -3,45 +3,45 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.1.0-preview1-15679 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 - 2.1.0-preview1-28153 + 2.1.0-preview1-1010 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 + 2.1.0-preview1-28193 2.0.0 - 2.1.0-preview1-26115-03 + 2.1.0-preview1-26122-01 1.0.1 15.3.0 4.7.49 1.4.0 3.2.0 - 4.5.0-preview1-26112-01 - 1.6.0-preview1-26112-01 - 4.5.0-preview1-26112-01 + 4.5.0-preview1-26119-06 + 1.6.0-preview1-26119-06 + 4.5.0-preview1-26119-06 2.3.1 2.3.1 diff --git a/korebuild-lock.txt b/korebuild-lock.txt index a474bc0e35..851bfbf203 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.1.0-preview1-15679 -commithash:5347461137cb45a77ddcc0b55b2478092de43338 +version:2.1.0-preview1-1010 +commithash:75ca924dfbd673c38841025b04c4dcd93b84f56d diff --git a/korebuild.json b/korebuild.json index bd5d51a51b..678d8bb948 100644 --- a/korebuild.json +++ b/korebuild.json @@ -1,4 +1,4 @@ { - "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/dev/tools/korebuild.schema.json", - "channel": "dev" + "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.1/tools/korebuild.schema.json", + "channel": "release/2.1" } From f8d61a4c522a9200c22b3141c50d6b4c00d3c393 Mon Sep 17 00:00:00 2001 From: David Fowler Date: Wed, 31 Jan 2018 16:00:55 -0800 Subject: [PATCH 2/4] Dispose the host if Initialize fails (#1324) --- .../WebHostBuilder.cs | 17 +++++-- .../WebHostBuilderTests.cs | 45 +++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs b/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs index 31f07c6d71..2d39c2cb86 100644 --- a/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs +++ b/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs @@ -100,7 +100,7 @@ namespace Microsoft.AspNetCore.Hosting throw new ArgumentNullException(nameof(configureServices)); } - return ConfigureServices((_ , services) => configureServices(services)); + return ConfigureServices((_, services) => configureServices(services)); } /// @@ -189,10 +189,19 @@ namespace Microsoft.AspNetCore.Hosting _options, _config, hostingStartupErrors); + try + { + host.Initialize(); - host.Initialize(); - - return host; + return host; + } + catch + { + // Dispose the host if there's a failure to initialize, this should clean up + // will dispose services that were constructed until the exception was thrown + host.Dispose(); + throw; + } } private IServiceCollection BuildCommonServices(out AggregateException hostingStartupErrors) diff --git a/test/Microsoft.AspNetCore.Hosting.Tests/WebHostBuilderTests.cs b/test/Microsoft.AspNetCore.Hosting.Tests/WebHostBuilderTests.cs index a5765a52b2..af482b0e0b 100644 --- a/test/Microsoft.AspNetCore.Hosting.Tests/WebHostBuilderTests.cs +++ b/test/Microsoft.AspNetCore.Hosting.Tests/WebHostBuilderTests.cs @@ -369,6 +369,23 @@ namespace Microsoft.AspNetCore.Hosting Assert.Equal("A public method named 'ConfigureProduction' or 'Configure' could not be found in the 'Microsoft.AspNetCore.Hosting.Fakes.StartupBoom' type.", exception.Message); } + [Fact] + public void ServiceProviderDisposedOnBuildException() + { + var service = new DisposableService(); + var hostBuilder = new WebHostBuilder() + .UseServer(new TestServer()) + .ConfigureServices(services => + { + // Added as a factory since instances are never disposed by the container + services.AddSingleton(sp => service); + }) + .UseStartup(); + + Assert.Throws(() => hostBuilder.Build()); + Assert.True(service.Disposed); + } + [Fact] public void CaptureStartupErrorsHonored() { @@ -1050,6 +1067,16 @@ namespace Microsoft.AspNetCore.Hosting } } + public class DisposableService : IDisposable + { + public bool Disposed { get; private set; } + + public void Dispose() + { + Disposed = true; + } + } + public class TestHostingStartup : IHostingStartup { public void Configure(IWebHostBuilder builder) @@ -1068,6 +1095,24 @@ namespace Microsoft.AspNetCore.Hosting } } + public class StartupWithResolvedDisposableThatThrows + { + public StartupWithResolvedDisposableThatThrows(DisposableService service) + { + + } + + public void ConfigureServices(IServiceCollection services) + { + throw new InvalidOperationException(); + } + + public void Configure(IApplicationBuilder app) + { + + } + } + public class TestLoggerProvider : ILoggerProvider { public TestSink Sink { get; set; } = new TestSink(); From 66714b5fc0780c40b9e9599f0886ae9c3047d306 Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Thu, 15 Feb 2018 10:38:15 -0800 Subject: [PATCH 3/4] Use ExperimentalPackageVersion --- build/dependencies.props | 64 +++++++++---------- ...spNetCore.Server.IntegrationTesting.csproj | 6 +- version.props | 4 +- 3 files changed, 39 insertions(+), 35 deletions(-) diff --git a/build/dependencies.props b/build/dependencies.props index e92f71a36f..10da312fc5 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -4,44 +4,44 @@ 2.1.0-preview1-1010 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 - 2.1.0-preview1-28193 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 + 2.1.0-preview1-28274 2.0.0 - 2.1.0-preview1-26122-01 + 2.1.0-preview1-26208-06 1.0.1 15.3.0 4.7.49 1.4.0 3.2.0 - 4.5.0-preview1-26119-06 - 1.6.0-preview1-26119-06 - 4.5.0-preview1-26119-06 + 4.5.0-preview1-26208-08 + 1.6.0-preview1-26208-08 + 4.5.0-preview1-26208-08 2.3.1 2.3.1 diff --git a/src/Microsoft.AspNetCore.Server.IntegrationTesting/Microsoft.AspNetCore.Server.IntegrationTesting.csproj b/src/Microsoft.AspNetCore.Server.IntegrationTesting/Microsoft.AspNetCore.Server.IntegrationTesting.csproj index d9914f9909..c38a2ded59 100644 --- a/src/Microsoft.AspNetCore.Server.IntegrationTesting/Microsoft.AspNetCore.Server.IntegrationTesting.csproj +++ b/src/Microsoft.AspNetCore.Server.IntegrationTesting/Microsoft.AspNetCore.Server.IntegrationTesting.csproj @@ -2,8 +2,10 @@ ASP.NET Core helpers to deploy applications to IIS Express, IIS, WebListener and Kestrel for testing. - $(ExperimentalProjectVersionPrefix) - false + $(ExperimentalVersionPrefix) + $(ExperimentalVersionSuffix) + false + $(ExperimentalPackageVersion) netstandard2.0 $(NoWarn);CS1591 true diff --git a/version.props b/version.props index dd9ba18b3c..b5e0b02a22 100644 --- a/version.props +++ b/version.props @@ -1,7 +1,9 @@ 2.1.0 - 0.5.0 + 0.5.0 + alpha1 + $(ExperimentalVersionPrefix)-$(ExperimentalVersionSuffix)-final preview1 $(VersionPrefix) $(VersionPrefix)-$(VersionSuffix)-final From 14aed686ceeb474b67770b25378fbfb3ee086477 Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Fri, 16 Feb 2018 13:52:08 -0800 Subject: [PATCH 4/4] BuildNumber on Experimental packages --- version.props | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/version.props b/version.props index b5e0b02a22..ef19125418 100644 --- a/version.props +++ b/version.props @@ -1,13 +1,16 @@ 2.1.0 - 0.5.0 - alpha1 - $(ExperimentalVersionPrefix)-$(ExperimentalVersionSuffix)-final preview1 $(VersionPrefix) $(VersionPrefix)-$(VersionSuffix)-final t000 $(VersionSuffix)-$(BuildNumber) + + 0.5.0 + alpha1 + $(ExperimentalVersionPrefix) + $(ExperimentalVersionPrefix)-$(ExperimentalVersionSuffix)-final + $(ExperimentalVersionSuffix)-$(BuildNumber)