Browse Source

Merge branch 'release/2.2'

Nate McMaster 7 years ago
parent
commit
85e2147ff0
100 changed files with 364 additions and 848 deletions
  1. 1 1
      Directory.Build.targets
  2. 11 0
      THIRD-PARTY-NOTICES.txt
  3. 1 1
      build/PackageArchive.targets
  4. 6 2
      build/Publish.targets
  5. 2 0
      build/RepositoryBuild.targets
  6. 1 1
      build/SharedFx.targets
  7. 1 6
      build/artifacts.props
  8. 0 2
      build/buildorder.props
  9. 0 16
      build/lineups/Internal.AspNetCore.Universe.Lineup.nuspec
  10. 7 7
      build/repo.props
  11. 2 42
      build/repo.targets
  12. 0 2
      build/submodules.props
  13. 2 1
      build/tasks/RemoveSharedFrameworkDependencies.cs
  14. 4 3
      build/tasks/RepoTasks.csproj
  15. 36 0
      eng/Baseline.Designer.props
  16. 3 0
      eng/Baseline.xml
  17. 8 7
      eng/Dependencies.props
  18. 3 0
      eng/ProjectReferences.props
  19. 0 2
      eng/dependencies.temp.props
  20. 4 0
      eng/targets/CSharp.Common.props
  21. 1 0
      eng/targets/ResolveReferences.targets
  22. 1 1
      global.json
  23. 2 2
      korebuild-lock.txt
  24. 14 0
      korebuild.json
  25. 0 130
      scripts/GenerateTags.ps1
  26. 0 5
      scripts/GetPackageVersion.targets
  27. 0 23
      scripts/ListRepoVersions.ps1
  28. 0 111
      scripts/PatchVersionPrefix.ps1
  29. 0 66
      scripts/TagRepos.ps1
  30. 0 134
      scripts/UpdateDependenciesCoreFx.ps1
  31. 0 148
      scripts/UpdateRepos.ps1
  32. 0 2
      scripts/requirements.txt
  33. 0 100
      scripts/update_travis_appveyor_yml.py
  34. 0 6
      src/AADIntegration/build/repo.props
  35. 0 5
      src/Antiforgery/build/repo.props
  36. 0 6
      src/AuthSamples/build/repo.props
  37. 0 4
      src/AzureIntegration/build/repo.props
  38. 0 6
      src/CORS/build/repo.props
  39. 9 4
      src/CORS/test/FunctionalTests/package-lock.json
  40. 0 0
      src/Http/Routing.Abstractions/src/IOutboundParameterTransformer.cs
  41. 0 0
      src/Http/Routing.Abstractions/src/IParameterPolicy.cs
  42. 0 0
      src/Http/Routing.Abstractions/src/IRouteConstraint.cs
  43. 0 0
      src/Http/Routing.Abstractions/src/IRouteHandler.cs
  44. 0 0
      src/Http/Routing.Abstractions/src/IRouter.cs
  45. 0 0
      src/Http/Routing.Abstractions/src/IRoutingFeature.cs
  46. 0 0
      src/Http/Routing.Abstractions/src/LinkGenerator.cs
  47. 0 0
      src/Http/Routing.Abstractions/src/LinkOptions.cs
  48. 2 2
      src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj
  49. 0 0
      src/Http/Routing.Abstractions/src/Properties/AssemblyInfo.cs
  50. 0 0
      src/Http/Routing.Abstractions/src/RouteContext.cs
  51. 0 0
      src/Http/Routing.Abstractions/src/RouteData.cs
  52. 0 0
      src/Http/Routing.Abstractions/src/RouteDirection.cs
  53. 0 0
      src/Http/Routing.Abstractions/src/RoutingHttpContextExtensions.cs
  54. 0 0
      src/Http/Routing.Abstractions/src/VirtualPathContext.cs
  55. 0 0
      src/Http/Routing.Abstractions/src/VirtualPathData.cs
  56. 0 0
      src/Http/Routing.Abstractions/src/baseline.netcore.json
  57. 11 0
      src/Http/Routing.Abstractions/test/Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests.csproj
  58. 0 0
      src/Http/Routing.Abstractions/test/RouteDataTest.cs
  59. 0 0
      src/Http/Routing.Abstractions/test/VirtualPathDataTests.cs
  60. 185 0
      src/Http/Routing.sln
  61. 0 0
      src/Http/Routing/perf/EndpointMetadataCollectionBenchmark.cs
  62. 0 0
      src/Http/Routing/perf/EndpointRoutingBenchmarkBase.cs
  63. 0 0
      src/Http/Routing/perf/LinkGeneration/LinkGenerationGithubBenchmark.cs
  64. 0 0
      src/Http/Routing/perf/LinkGeneration/LinkGenerationGithubBenchmark.generated.cs
  65. 0 0
      src/Http/Routing/perf/LinkGeneration/SingleRouteRouteValuesAddressSchemeBenchmark.cs
  66. 0 0
      src/Http/Routing/perf/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs
  67. 0 0
      src/Http/Routing/perf/LinkGeneration/SingleRouteWithNoParametersBenchmark.cs
  68. 0 0
      src/Http/Routing/perf/LinkGeneration/SingleRouteWithParametersBenchmark.cs
  69. 0 0
      src/Http/Routing/perf/Matching/FastPathTokenizerBenchmarkBase.cs
  70. 0 0
      src/Http/Routing/perf/Matching/FastPathTokenizerEmptyBenchmark.cs
  71. 0 0
      src/Http/Routing/perf/Matching/FastPathTokenizerLargeBenchmark.cs
  72. 0 0
      src/Http/Routing/perf/Matching/FastPathTokenizerPlaintextBenchmark.cs
  73. 0 0
      src/Http/Routing/perf/Matching/FastPathTokenizerSmallBenchmark.cs
  74. 0 0
      src/Http/Routing/perf/Matching/JumpTableMultipleEntryBenchmark.cs
  75. 0 0
      src/Http/Routing/perf/Matching/JumpTableSingleEntryBenchmark.cs
  76. 0 0
      src/Http/Routing/perf/Matching/JumpTableZeroEntryBenchmark.cs
  77. 0 0
      src/Http/Routing/perf/Matching/MatcherAzureBenchmark.cs
  78. 0 0
      src/Http/Routing/perf/Matching/MatcherAzureBenchmarkBase.generated.cs
  79. 0 0
      src/Http/Routing/perf/Matching/MatcherBuilderAzureBenchmark.cs
  80. 0 0
      src/Http/Routing/perf/Matching/MatcherBuilderGithubBenchmark.cs
  81. 0 0
      src/Http/Routing/perf/Matching/MatcherBuilderMultipleEntryBenchmark.cs
  82. 0 0
      src/Http/Routing/perf/Matching/MatcherGithubBenchmark.cs
  83. 0 0
      src/Http/Routing/perf/Matching/MatcherGithubBenchmarkBase.generated.cs
  84. 0 0
      src/Http/Routing/perf/Matching/MatcherSingleEntryBenchmark.cs
  85. 0 0
      src/Http/Routing/perf/Matching/RouteEndpointAzureBenchmark.cs
  86. 0 0
      src/Http/Routing/perf/Matching/TrivialMatcher.cs
  87. 0 0
      src/Http/Routing/perf/Matching/TrivialMatcherBuilder.cs
  88. 47 0
      src/Http/Routing/perf/Microsoft.AspNetCore.Routing.Performance.csproj
  89. 0 0
      src/Http/Routing/perf/Properties/AssemblyInfo.cs
  90. 0 0
      src/Http/Routing/perf/readme.md
  91. 0 0
      src/Http/Routing/src/Builder/EndpointRouteBuilderExtensions.cs
  92. 0 0
      src/Http/Routing/src/Builder/EndpointRoutingApplicationBuilderExtensions.cs
  93. 0 0
      src/Http/Routing/src/Builder/RoutingBuilderExtensions.cs
  94. 0 0
      src/Http/Routing/src/CompositeEndpointDataSource.cs
  95. 0 0
      src/Http/Routing/src/ConfigureRouteOptions.cs
  96. 0 0
      src/Http/Routing/src/Constraints/AlphaRouteConstraint.cs
  97. 0 0
      src/Http/Routing/src/Constraints/BoolRouteConstraint.cs
  98. 0 0
      src/Http/Routing/src/Constraints/CompositeRouteConstraint.cs
  99. 0 0
      src/Http/Routing/src/Constraints/DateTimeRouteConstraint.cs
  100. 0 0
      src/Http/Routing/src/Constraints/DecimalRouteConstraint.cs

+ 1 - 1
Directory.Build.targets

@@ -9,7 +9,7 @@
 
   <PropertyGroup Condition=" '$(IsPackable)' != 'false' AND '$(AspNetCorePatchVersion)' != '0' ">
     <!-- Always include framework metapackages in patch updates. -->
-    <IsPackageInThisPatch Condition="'$(IsFrameworkMetapackage)' == 'true'">true</IsPackageInThisPatch>
+    <IsPackageInThisPatch Condition="'$(IsFrameworkMetapackage)' == 'true' OR '$(IsSharedSourcePackage)' == 'true' ">true</IsPackageInThisPatch>
     <IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">$(PackagesInPatch.Contains(' $(PackageId);'))</IsPackageInThisPatch>
   </PropertyGroup>
 

+ 11 - 0
THIRD-PARTY-NOTICES.txt

@@ -84,3 +84,14 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE
+
+License notice for viz.js
+------------------------------------
+
+Copyright (c) 2014-2018 Michael Daines
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 1 - 1
build/PackageArchive.targets

@@ -8,7 +8,7 @@
     <ArchiveProjects Include="$(RepositoryRoot)src\PackageArchive\Archive.*\*.*proj" />
   </ItemGroup>
 
-  <Target Name="BuildFallbackArchive" DependsOnTargets="GetProjectArtifactInfo;GetFxProjectArtifactInfo;ResolveRepoInfo;GeneratePropsFiles">
+  <Target Name="BuildFallbackArchive" DependsOnTargets="ResolveSharedSourcesPackageInfo;GetProjectArtifactInfo;GetFxProjectArtifactInfo;ResolveRepoInfo;GeneratePropsFiles">
     <PropertyGroup>
       <ArchiveBuildProps>
         DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);

+ 6 - 2
build/Publish.targets

@@ -73,11 +73,15 @@
         <RelativeBlobPath>$(BlobBasePath)nuGetPackagesArchive-ci-server-$(PackageVersion).zip</RelativeBlobPath>
       </FilesToPublish>
 
-      <FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-$(PackageVersion).patch.zip" >
+      <!-- This file is conditionally included because it may not exist in servicing builds -->
+      <FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-$(PackageVersion).patch.zip"
+                      Condition="Exists('$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-$(PackageVersion).patch.zip')" >
         <RelativeBlobPath>$(BlobBasePath)nuGetPackagesArchive-ci-server-$(PackageVersion).patch.zip</RelativeBlobPath>
       </FilesToPublish>
 
-      <FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-compat-$(PackageVersion).patch.zip" >
+      <!-- This file is conditionally included because it may not exist in servicing builds -->
+      <FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-compat-$(PackageVersion).patch.zip"
+                      Condition="Exists('$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-compat-$(PackageVersion).patch.zip')">
         <RelativeBlobPath>$(BlobBasePath)nuGetPackagesArchive-ci-server-compat-$(PackageVersion).patch.zip</RelativeBlobPath>
       </FilesToPublish>
 

+ 2 - 0
build/RepositoryBuild.targets

@@ -87,6 +87,8 @@
       <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:BuildNumberSuffix=$(BuildNumberSuffix)</RepositoryBuildArguments>
       <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:Configuration=$(Configuration)</RepositoryBuildArguments>
       <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:IsFinalBuild=$(IsFinalBuild)</RepositoryBuildArguments>
+      <!-- We collect all output and code sign at the end. We don't need to code sign when we build each submodule. -->
+      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DisableCodeSigning=true</RepositoryBuildArguments>
       <RepositoryBuildArguments>$(RepositoryBuildArguments) '/p:DotNetAssetRootAccessTokenSuffix=$(DotNetAssetRootAccessTokenSuffix)'</RepositoryBuildArguments>
       <RepositoryBuildArguments>$(RepositoryBuildArguments) '/p:DotNetAssetRootUrl=$(DotNetAssetRootUrl)'</RepositoryBuildArguments>
       <RepositoryBuildArguments Condition=" '$(SkipTestsDueToMissingSharedFx)' == 'true' ">$(RepositoryBuildArguments) /p:SkipAspNetCoreRuntimeInstall=true</RepositoryBuildArguments>

+ 1 - 1
build/SharedFx.targets

@@ -55,7 +55,7 @@
       </SharedFxBuildProperties>
     </PropertyGroup>
 
-    <MSBuild Projects="$(MSBuildToolsPath)\NuGet.targets"
+    <MSBuild Projects="$(NuGetRestoreTargets)"
              Targets="Restore"
              Properties="$(SharedFxBuildProperties);RestoreGraphProjectInput=$(_RestoreGraphProjectInput);_DummyTarget=Restore" />
 

+ 1 - 6
build/artifacts.props

@@ -78,8 +78,6 @@
 
     <!-- Packages for internal use only. -->
     <PackageArtifact Include="AspNetCoreRuntime.3.0.$(SharedFxArchitecture)" Category="noship" Condition=" '$(SharedFxRid)' == 'win-x64' OR '$(SharedFxRid)' == 'win-x86' " />
-    <PackageArtifact Include="Internal.AspNetCore.Universe.Lineup" Category="noship" />
-    <PackageArtifact Include="Internal.WebHostBuilderFactory.Sources" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModule" Category="noship" Condition=" '$(OS)' == 'Windows_NT' " />
@@ -119,7 +117,6 @@
     <PackageArtifact Include="Microsoft.AspNetCore.Http" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.HttpOverrides" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.HttpsPolicy" Category="noship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.HttpSys.Sources" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Identity" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Localization.Routing" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Localization" Category="noship" />
@@ -145,7 +142,6 @@
     <PackageArtifact Include="Microsoft.AspNetCore.ResponseCompression" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Rewrite" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Routing.Abstractions" Category="noship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Routing.DecisionTree.Sources" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Routing" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Server.HttpSys" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore.Server.IIS" Category="noship" />
@@ -165,9 +161,8 @@
     <PackageArtifact Include="Microsoft.AspNetCore.WebUtilities" Category="noship" />
     <PackageArtifact Include="Microsoft.AspNetCore" Category="noship" />
     <PackageArtifact Include="Microsoft.Extensions.ApplicationModelDetection" Category="noship" />
-    <PackageArtifact Include="Microsoft.Extensions.Buffers.MemoryPool.Sources" Category="noship" />
-    <PackageArtifact Include="Microsoft.Extensions.Buffers.Testing.Sources" Category="noship" />
     <PackageArtifact Include="Microsoft.Net.Http.Headers" Category="noship" />
     <PackageArtifact Include="Microsoft.Web.Xdt.Extensions" Category="shipoob" />
+    <PackageArtifact Include="Internal.WebHostBuilderFactory.Sources" Category="noship"/>
   </ItemGroup>
 </Project>

+ 0 - 2
build/buildorder.props

@@ -8,7 +8,6 @@
 
   <ItemGroup>
     <RepositoryBuildOrder Include="Razor" Order="6" />
-    <RepositoryBuildOrder Include="HttpSysServer" Order="8" />
     <RepositoryBuildOrder Include="Antiforgery" Order="10" />
     <RepositoryBuildOrder Include="IISIntegration" Order="10" />
     <RepositoryBuildOrder Include="StaticFiles" Order="11" />
@@ -16,7 +15,6 @@
     <RepositoryBuildOrder Include="Session" Order="11" />
     <RepositoryBuildOrder Include="ServerTests" Order="11" />
     <RepositoryBuildOrder Include="CORS" Order="12"  />
-    <RepositoryBuildOrder Include="Routing" Order="12" />
     <RepositoryBuildOrder Include="Security" Order="13" />
     <RepositoryBuildOrder Include="MetaPackages" Order="13" />
     <RepositoryBuildOrder Include="Mvc" Order="14" />

+ 0 - 16
build/lineups/Internal.AspNetCore.Universe.Lineup.nuspec

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
-  <metadata>
-    <id>Internal.AspNetCore.Universe.Lineup</id>
-    <version>$version$</version>
-    <authors>Microsoft</authors>
-    <description>This package used to unify ASP.NET Core package versions across all ASP.NET Core repos. Internal use only.</description>
-    <packageTypes>
-      <packageType name="lineup" />
-    </packageTypes>
-  </metadata>
-  <files>
-    <file src="$dependenciesPropsFile$" target="build/dependencies.props" />
-    <file src="$brandingPropsFile$" target="build/branding.props" />
-  </files>
-</package>

+ 7 - 7
build/repo.props

@@ -17,15 +17,11 @@
     <DependencyPackageDir>$(RepositoryRoot).deps\build\</DependencyPackageDir>
     <SignedDependencyPackageDir>$(RepositoryRoot).deps\Signed\Packages\</SignedDependencyPackageDir>
     <SignCheckExclusionsFile>$(RepositoryRoot)eng\signcheck.exclusions.txt</SignCheckExclusionsFile>
-    <!-- This creates false-positives on many of the native .dll's we produce or re-distribute from other teams. -->
-    <DisableSignCheckStrongName>true</DisableSignCheckStrongName>
-
     <SharedSourcesFolder>$(RepositoryRoot)src\Shared\</SharedSourcesFolder>
   </PropertyGroup>
 
   <ItemGroup>
-    <SharedSourceDirectories Include="$([System.IO.Directory]::GetDirectories($(SharedSourcesFolder)))" />
-    <SharedSourceDirectories Remove="$(RepositoryRoot)src\Shared\Diagnostics\" />
+    <SharedSourceDirectories Include="$(SharedSourcesFolder)Hosting.WebHostBuilderFactory\" />
   </ItemGroup>
 
   <ItemGroup>
@@ -65,7 +61,7 @@
     <!-- Exclude the websockets samples for now because they use classic .csproj, which is not yet supported in our build. -->
     <ProjectToExclude Include="
                        $(RepositoryRoot)src\Middleware\WebSockets\samples\**\*.csproj;
-                       $(RepositoryRoot)src\Tools\dotnet-watch\test\TestProjects\**\*.csproj;
+                       $(RepositoryRoot)src\Tools\dotnet-watch\test\TestProjects\**\*.csproj
                        " />
 
     <ProjectToBuild Include="
@@ -78,7 +74,11 @@
                       $(RepositoryRoot)src\Tools\**\*.*proj;
                       $(RepositoryRoot)src\Middleware\**\*.*proj;
                       "
-                    Exclude="@(ProjectToExclude)" />
+                    Exclude="
+                      @(ProjectToExclude);
+                      $(RepositoryRoot)**\bin\**\*;
+                      $(RepositoryRoot)**\obj\**\*;
+                      $(RepositoryRoot)**\AutobahnTestApp\**\*;" />
   </ItemGroup>
 
   <!-- Properties for publishing -->

+ 2 - 42
build/repo.targets

@@ -72,7 +72,7 @@
     </ItemGroup>
   </Target>
 
-  <Target Name="ResolveRepoInfo" DependsOnTargets="_ResolveProjectArtifactsInfoShipped;_PrepareRepositories;GetLineupPackageInfo">
+  <Target Name="ResolveRepoInfo" DependsOnTargets="_ResolveProjectArtifactsInfoShipped;_PrepareRepositories">
     <!-- We need to pass the NETCoreApp package versions to msbuild so that it doesn't complain about us using a different one than it was restored against.  -->
     <PropertyGroup>
       <DesignTimeBuildProps>$(BuildProperties);MicrosoftNETCoreAppPackageVersion=$(MicrosoftNETCoreAppPackageVersion);</DesignTimeBuildProps>
@@ -178,19 +178,6 @@
     <Error Text="No solutions were found in '$(SubmoduleRoot)'. Did you forget to clone the submodules? Run `git submodule update --init`." Condition="@(Solution->Count()) == 0" />
   </Target>
 
-  <Target Name="GetLineupPackageInfo">
-    <ItemGroup>
-      <ArtifactInfo Include="$(BuildDir)Internal.AspNetCore.Universe.Lineup.$(PackageVersion).nupkg">
-        <ArtifactType>NuGetPackage</ArtifactType>
-        <PackageId>Internal.AspNetCore.Universe.Lineup</PackageId>
-        <Version>$(PackageVersion)</Version>
-        <Category>noship</Category>
-        <IsLineup>true</IsLineup>
-      </ArtifactInfo>
-      <FilesToSign Include="$(BuildDir)Internal.AspNetCore.Universe.Lineup.$(PackageVersion).nupkg" Certificate="$(PackageSigningCertName)" />
-    </ItemGroup>
-  </Target>
-
   <Target Name="GeneratePropsFiles" DependsOnTargets="PrepareOutputPaths;GetArtifactInfo">
     <ItemGroup>
       <_LineupPackages Include="@(ExternalDependency)" />
@@ -234,13 +221,6 @@
     <WriteLinesToFile File="$(GeneratedBrandingPropsPath)" Overwrite="true" Lines="$(BrandingPropsContent)"/>
 
     <Copy SourceFiles="$(GeneratedPackageVersionPropsPath);$(GeneratedBrandingPropsPath)" DestinationFolder="$(ArtifactsDir)" />
-
-    <PackNuSpec NuSpecPath="$(MSBuildThisFileDirectory)lineups\Internal.AspNetCore.Universe.Lineup.nuspec"
-                DestinationFolder="$(BuildDir)"
-                Overwrite="true"
-                Properties="version=$(PackageVersion);dependenciesPropsFile=$(GeneratedPackageVersionPropsPath);brandingPropsFile=$(GeneratedBrandingPropsPath)">
-      <Output TaskParameter="Packages" ItemName="LineupPackage" />
-    </PackNuSpec>
   </Target>
 
   <Target Name="CleanRepoArtifacts">
@@ -248,26 +228,6 @@
   </Target>
 
   <Target Name="_PrepareRepositories">
-    <ItemGroup Condition="'$(KOREBUILD_REPOSITORY_INCLUDE)'!=''">
-      <_RepositoriesToInclude Include="$(KOREBUILD_REPOSITORY_INCLUDE)" />
-      <Repository Update="@(Repository)" Build="false" />
-      <Repository
-        Update="@(Repository)"
-        Condition="'@(Repository)'=='@(_RepositoriesToInclude)' AND '%(Identity)'!=''"
-        Build="true" />
-    </ItemGroup>
-
-    <ItemGroup Condition="'$(KOREBUILD_REPOSITORY_EXCLUDE)'!=''">
-      <_RepositoriesToExclude Include="$(KOREBUILD_REPOSITORY_EXCLUDE)" />
-      <Repository
-        Update="@(Repository)"
-        Condition="'@(Repository)'=='@(_RepositoriesToExclude)' AND '%(Identity)'!=''"
-        Build="false" />
-    </ItemGroup>
-
-    <Error Text="KOREBUILD_REPOSITORY_EXCLUDE AND KOREBUILD_REPOSITORY_INCLUDE are specified."
-      Condition="'$(KOREBUILD_REPOSITORY_INCLUDE)' != '' AND '$(KOREBUILD_REPOSITORY_EXCLUDE)' != ''" />
-
     <ItemGroup>
       <Repository Update="%(Identity)" RootPath="$(SubmoduleRoot)%(Identity)\" Condition="'%(Identity)' != '' AND '%(RootPath)' == ''"  />
       <ShippedRepository Update="%(Identity)" RootPath="$(SubmoduleRoot)%(Identity)\" Condition="'%(Identity)' != '' AND '%(RootPath)' == ''" />
@@ -282,7 +242,7 @@
   <Target Name="BuildRepositories"
      DependsOnTargets="_PrepareRepositories;GeneratePropsFiles;ComputeGraph;_BuildRepositories" />
 
-  <Target Name="ListExpectedPackages" DependsOnTargets="GetProjectArtifactInfo;GetFxProjectArtifactInfo;ResolveRepoInfo">
+  <Target Name="ListExpectedPackages" DependsOnTargets="ResolveSharedSourcesPackageInfo;GetProjectArtifactInfo;ResolveRepoInfo">
     <WriteLinesToFile File="$(RepositoryRoot)artifacts\packages.csv" Lines="PackageId,Version;@(ArtifactInfo->WithMetadataValue('ArtifactType', 'NuGetPackage')->'%(PackageId),%(Version)')" Overwrite="true" />
   </Target>
 

+ 0 - 2
build/submodules.props

@@ -41,7 +41,6 @@
     <Repository Include="AzureIntegration" />
     <Repository Include="Components" />
     <Repository Include="CORS" />
-    <Repository Include="HttpSysServer" />
     <Repository Include="Identity" />
     <Repository Include="IISIntegration" />
     <Repository Include="JavaScriptServices" />
@@ -49,7 +48,6 @@
     <Repository Include="Mvc" />
     <Repository Include="Razor" />
     <Repository Include="ResponseCaching" />
-    <Repository Include="Routing" />
     <Repository Include="Security" />
     <Repository Include="Session" />
     <Repository Include="SignalR" />

+ 2 - 1
build/tasks/RemoveSharedFrameworkDependencies.cs

@@ -24,7 +24,8 @@ namespace RepoTasks
 
         public override bool Execute()
         {
-            var dependencyToRemove = FrameworkOnlyPackages.Select(p => p.ItemSpec).ToHashSet(StringComparer.OrdinalIgnoreCase);
+            Log.LogMessage("NuGet version = " + typeof(PackageArchiveReader).Assembly.GetName().Version);
+            var dependencyToRemove = new HashSet<string>(FrameworkOnlyPackages.Select(p => p.ItemSpec), StringComparer.OrdinalIgnoreCase);
 
             foreach (var file in Files)
             {

+ 4 - 3
build/tasks/RepoTasks.csproj

@@ -2,14 +2,15 @@
   <Import Project="$(RepoTasksSdkPath)\Sdk.props" Condition="'$(RepoTasksSdkPath)' != '' "/>
 
   <PropertyGroup>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <TargetFramework Condition="'$(MSBuildRuntimeType)' == 'Core' ">netcoreapp2.1</TargetFramework>
+    <TargetFramework Condition="'$(MSBuildRuntimeType)' != 'Core' ">net461</TargetFramework>
   </PropertyGroup>
 
   <ItemGroup>
     <PackageReference Remove="Internal.AspNetCore.Sdk" />
     <PackageReference Include="Microsoft.DotNet.Archive" Version="$(MicrosoftDotNetArchivePackageVersion)" />
-    <PackageReference Include="NuGet.Build.Tasks" Version="$(NuGetInMSBuildVersion)" PrivateAssets="All" />
-    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(DevDependency_MicrosoftExtensionsDependencyModelPackageVersion)" PrivateAssets="All" />
+    <PackageReference Include="NuGet.Build.Tasks" Version="4.9.1" />
+    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(DevDependency_MicrosoftExtensionsDependencyModelPackageVersion)" />
     <PackageReference Include="WindowsAzure.Storage" Version="$(DevDependency_WindowsAzureStoragePackageVersion)" />
   </ItemGroup>
 

+ 36 - 0
eng/Baseline.Designer.props

@@ -345,6 +345,42 @@
     <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[2.2.0, )" />
     <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[2.2.0, )" />
   </ItemGroup>
+  <!-- Package: Microsoft.AspNetCore.Routing.Abstractions-->
+  <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Routing.Abstractions' ">
+    <BaselinePackageVersion>2.2.0</BaselinePackageVersion>
+  </PropertyGroup>
+  <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Routing.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' ">
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="[2.2.0, )" />
+  </ItemGroup>
+  <!-- Package: Microsoft.AspNetCore.Routing-->
+  <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Routing' ">
+    <BaselinePackageVersion>2.2.0</BaselinePackageVersion>
+  </PropertyGroup>
+  <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Routing' AND '$(TargetFramework)' == 'netcoreapp2.2' ">
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Routing.Abstractions" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.ObjectPool" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[2.2.0, )" />
+  </ItemGroup>
+  <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Routing' AND '$(TargetFramework)' == 'netstandard2.0' ">
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Routing.Abstractions" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.ObjectPool" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[2.2.0, )" />
+  </ItemGroup>
+  <!-- Package: Microsoft.AspNetCore.Server.HttpSys-->
+  <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.HttpSys' ">
+    <BaselinePackageVersion>2.2.0</BaselinePackageVersion>
+  </PropertyGroup>
+  <ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.HttpSys' AND '$(TargetFramework)' == 'netstandard2.0' ">
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.Core" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.AspNetCore.Hosting" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Net.Http.Headers" Version="[2.2.0, )" />
+    <BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.5.0, )" />
+    <BaselinePackageReference Include="System.Security.Principal.Windows" Version="[4.5.0, )" />
+  </ItemGroup>
   <!-- Package: Microsoft.AspNetCore.Server.Kestrel.Core-->
   <PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.Kestrel.Core' ">
     <BaselinePackageVersion>2.2.0</BaselinePackageVersion>

+ 3 - 0
eng/Baseline.xml

@@ -39,6 +39,9 @@
   <Package Id="Microsoft.AspNetCore.Owin" Version="2.2.0" />
   <Package Id="Microsoft.AspNetCore.ResponseCompression" Version="2.2.0" />
   <Package Id="Microsoft.AspNetCore.Rewrite" Version="2.2.0" />
+  <Package Id="Microsoft.AspNetCore.Routing.Abstractions" Version="2.2.0" />
+  <Package Id="Microsoft.AspNetCore.Routing" Version="2.2.0" />
+  <Package Id="Microsoft.AspNetCore.Server.HttpSys" Version="2.2.0" />
   <Package Id="Microsoft.AspNetCore.Server.Kestrel.Core" Version="2.2.0" />
   <Package Id="Microsoft.AspNetCore.Server.Kestrel.Https" Version="2.2.0" />
   <Package Id="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" Version="2.2.0" />

+ 8 - 7
eng/Dependencies.props

@@ -19,7 +19,6 @@
     <LatestPackageReference Include="Microsoft.EntityFrameworkCore" Version="$(MicrosoftEntityFrameworkCorePackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.ActivatorUtilities.Sources" Version="$(MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.ClosedGenericMatcher.Sources" Version="$(MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Extensions.CopyOnWriteDictionary.Sources" Version="$(MicrosoftExtensionsCopyOnWriteDictionarySourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
@@ -29,11 +28,16 @@
     <LatestPackageReference Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="$(MicrosoftExtensionsConfigurationUserSecretsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftExtensionsConfigurationPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.CopyOnWriteDictionary.Sources" Version="$(MicrosoftExtensionsCopyOnWriteDictionarySourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="$(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.DiagnosticAdapter" Version="$(MicrosoftExtensionsDiagnosticAdapterPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.HashCodeCombiner.Sources" Version="$(MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsHostingAbstractionsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="$(MicrosoftExtensionsLocalizationAbstractionsPackageVersion)" />
@@ -42,24 +46,21 @@
     <LatestPackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Process.Sources" Version="$(MicrosoftExtensionsProcessSourcesPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.PropertyHelper.Sources" Version="$(MicrosoftExtensionsPropertyHelperSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.RazorViews.Sources" Version="$(MicrosoftExtensionsRazorViewsSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.StackTrace.Sources" Version="$(MicrosoftExtensionsStackTraceSourcesPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Extensions.PropertyHelper.Sources" Version="$(MicrosoftExtensionsPropertyHelperSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.TypeNameHelper.Sources" Version="$(MicrosoftExtensionsTypeNameHelperSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.WebEncoders.Sources" Version="$(MicrosoftExtensionsWebEncodersSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.WebEncoders" Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
     <LatestPackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="$(MicrosoftIdentityModelClientsActiveDirectoryPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Internal.AspNetCore.H2Spec.All" Version="$(MicrosoftInternalAspNetCoreH2SpecAllPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
     <LatestPackageReference Include="Microsoft.NETCore.Windows.ApiSets" Version="$(MicrosoftNETCoreWindowsApiSetsPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
     <LatestPackageReference Include="System.Buffers" Version="$(SystemBuffersPackageVersion)" />
     <LatestPackageReference Include="System.Data.SqlClient" Version="$(SystemDataSqlClientPackageVersion)" />
     <LatestPackageReference Include="System.Diagnostics.DiagnosticSource" Version="$(SystemDiagnosticsDiagnosticSourcePackageVersion)" />

+ 3 - 0
eng/ProjectReferences.props

@@ -26,9 +26,12 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Features" ProjectPath="$(RepositoryRoot)src\Http\Http.Features\src\Microsoft.AspNetCore.Http.Features.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http" ProjectPath="$(RepositoryRoot)src\Http\Http\src\Microsoft.AspNetCore.Http.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Owin" ProjectPath="$(RepositoryRoot)src\Http\Owin\src\Microsoft.AspNetCore.Owin.csproj" />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Routing.Abstractions" ProjectPath="$(RepositoryRoot)src\Http\Routing.Abstractions\src\Microsoft.AspNetCore.Routing.Abstractions.csproj" />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Routing" ProjectPath="$(RepositoryRoot)src\Http\Routing\src\Microsoft.AspNetCore.Routing.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.WebUtilities" ProjectPath="$(RepositoryRoot)src\Http\WebUtilities\src\Microsoft.AspNetCore.WebUtilities.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Html.Abstractions" ProjectPath="$(RepositoryRoot)src\Html\Abstractions\src\Microsoft.AspNetCore.Html.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Connections.Abstractions" ProjectPath="$(RepositoryRoot)src\Servers\Connections.Abstractions\src\Microsoft.AspNetCore.Connections.Abstractions.csproj" />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.HttpSys" ProjectPath="$(RepositoryRoot)src\Servers\HttpSys\src\Microsoft.AspNetCore.Server.HttpSys.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Core" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\Core\src\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj" />
     <ProjectReferenceProvider Include="PlatformBenchmarks" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\perf\PlatformBenchmarks\PlatformBenchmarks.csproj" />

+ 0 - 2
eng/dependencies.temp.props

@@ -6,7 +6,5 @@ This is required to provide dependencies for samples and tests.
   <ItemGroup>
     <LatestPackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="3.0.0-preview-18571-0010" />
     <LatestPackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="3.0.0-preview-18571-0010" />
-    <LatestPackageReference Include="Microsoft.AspNetCore.Routing.Abstractions" Version="3.0.0-preview-18571-0010" />
-    <LatestPackageReference Include="Microsoft.AspNetCore.Routing" Version="3.0.0-preview-18571-0010" />
   </ItemGroup>
 </Project>

+ 4 - 0
eng/targets/CSharp.Common.props

@@ -11,4 +11,8 @@
     <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
   </ItemGroup>
 
+  <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' ">
+    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="$(MicrosoftNETFrameworkReferenceAssembliesPackageVersion)" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>

+ 1 - 0
eng/targets/ResolveReferences.targets

@@ -34,6 +34,7 @@
     <_ImplicitPackageReference Include="@(PackageReference->WithMetadataValue('IsImplicitlyDefined', 'true'))" />
     <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference)" />
     <_ExplicitPackageReference Remove="Internal.AspNetCore.Sdk" />
+    <_ExplicitPackageReference Remove="Microsoft.NETFramework.ReferenceAssemblies" />
 
     <UnusedProjectReferenceProvider Include="@(ProjectReferenceProvider)" Exclude="@(Reference)" />
 

+ 1 - 1
global.json

@@ -3,6 +3,6 @@
         "version": "3.0.100-preview-009750"
     },
     "msbuild-sdks": {
-        "Internal.AspNetCore.Sdk": "3.0.0-build-20181120.4"
+        "Internal.AspNetCore.Sdk": "3.0.0-build-20181206.3"
     }
 }

+ 2 - 2
korebuild-lock.txt

@@ -1,2 +1,2 @@
-version:3.0.0-build-20181120.4
-commithash:84dcc6f0eb5455a3c0305d6d238926defb050889
+version:3.0.0-build-20181206.3
+commithash:96a199c48729398e013355167c21dd61ff0c574c

+ 14 - 0
korebuild.json

@@ -1,10 +1,24 @@
 {
   "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/master/tools/korebuild.schema.json",
   "channel": "master",
+  "msbuildType": "full",
   "toolsets": {
     "nodejs": {
       "minVersion": "8.0",
       "required": true
+    },
+    "visualstudio": {
+      "required": [
+        "Windows"
+      ],
+      "includePrerelease": true,
+      "versionRange": "[15.8, 16.0)",
+      "requiredWorkloads": [
+        "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81",
+        "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
+        "Microsoft.VisualStudio.Component.VC.ATL",
+        "Microsoft.VisualStudio.Component.Windows10SDK.15063.Desktop"
+      ]
     }
   }
 }

+ 0 - 130
scripts/GenerateTags.ps1

@@ -1,130 +0,0 @@
-#!/usr/bin/env pwsh
-
-<#
-.SYNOPSIS
-    Generates a tag on this repo and adds a tag for each submodule that corresponds
-    to the value in version.props
-.PARAMETER Push
-    Push the tag to origin
-.PARAMETER OutFile
-    When specified, generate a .csv with repo names and tags
-.PARAMETER WhatIf
-    Dry run
-#>
-[cmdletbinding(PositionalBinding = $false, SupportsShouldProcess = $true)]
-param(
-    [switch]$Push,
-    [string]$OutFile
-)
-
-$ErrorActionPreference = 'Stop'
-Import-Module -Scope Local -Force "$PSScriptRoot/common.psm1"
-Set-StrictMode -Version 1
-
-function New-GitTag {
-    [cmdletbinding(SupportsShouldProcess = $true)]
-    param(
-        [Parameter(Mandatory = $true)]
-        [string]$Repo,
-        [Parameter(Mandatory = $true)]
-        [string]$Tag
-    )
-
-    Push-Location $Repo
-    try {
-        git show-ref --tags --verify "refs/tags/$Tag" -q
-        $existingTag = $?
-
-        if ($existingTag) {
-            Write-Warning "${Repo}: Tag '$Tag' already exists. Skipped adding tag"
-        }
-        else {
-            if ($PSCmdlet.ShouldProcess($Repo, "Tag $Tag")) {
-                Invoke-Block { & git tag -m "v$Tag" $Tag HEAD }
-                Write-Host -f Magenta "${Repo}: added tag '$Tag'"
-            }
-
-            if ($Push -and $PSCmdlet.ShouldProcess($Repo, "Push tag $Tag to origin")) {
-                Invoke-Block { & git push origin refs/tags/$Tag }
-            }
-        }
-    }
-    finally {
-        Pop-Location
-    }
-}
-
-#
-# Gets the package version by invoking KoreBuild on a repo with a custom target that spits out the package version
-#
-function Get-PackageVersion([string]$repoRoot) {
-    $buildScript = if (-not $IsCoreCLR -or $IsWindows) { 'build.ps1' } else { 'build.sh' }
-    $inspectTarget = "/p:CustomAfterKoreBuildTargets=$PSScriptRoot/GetPackageVersion.targets"
-    Write-Verbose "Running `"$repoRoot/$buildScript`" $inspectTarget /v:m /p:IsFinalBuild=true /t:Noop /t:GetPackageVersion /p:BuildNumber=t000"
-    # Add the /t:Noop target which may be used by the bootstrapper to skip unimportant initialization
-    $output = & "$repoRoot/$buildScript" $inspectTarget /v:m /p:IsFinalBuild=true /t:Noop /t:GetPackageVersion /p:BuildNumber=t000
-    $output | out-string | Write-Verbose
-    if (-not $? -or $LASTEXITCODE -ne 0) {
-        throw "$buildScript failed on $repoRoot. Exit code $LASTEXITCODE"
-    }
-    $packageVersion = $output | where-object { $_ -like '*PackageVersion=*' } | select-object -first 1
-    $packageVersion = $packageVersion -replace 'PackageVersion=', ''
-    $packageVersion = $packageVersion -replace '-final', ''
-    $packageVersion = $packageVersion -replace '-t000', ''
-    if ($packageVersion) { $packageVersion = $packageVersion.Trim() }
-    if (-not $packageVersion) {
-        throw "Could not determine final package version for $repoRoot"
-    }
-    return $packageVersion.Trim()
-}
-
-$repoRoot = Resolve-Path "$PSScriptRoot/../"
-
-Write-Warning "Make sure you have run ``git submodule update`` first to pin the submodules to the correct commit"
-if (-not $PSCmdlet.ShouldContinue("Continue?", "This will apply tags to all submodules")) {
-    Write-Host "Exiting"
-    exit 1
-}
-
-
-$repoTag = Get-PackageVersion $repoRoot
-New-GitTag $repoRoot $repoTag -WhatIf:$WhatIfPreference
-
-$tags = @([pscustomobject] @{
-        repo   = $(git config remote.origin.url)
-        tag    = $repoTag
-        commit = $(git rev-parse HEAD)
-    })
-
-Get-Submodules $repoRoot | ForEach-Object {
-    $modPath = $_.path
-    $module = $_.module
-    if (-not (Test-Path (Join-Path $_.path 'version.props'))) {
-        Write-Warning "$module does not have a version.props file. Skipping"
-        return
-    }
-
-    try {
-        $tag = Get-PackageVersion $_.path
-        if ($tag -ne $repoTag) {
-            Write-Warning "${module}: version ($tag) does not match repo ($repoTag)"
-        }
-        $tags += [pscustomobject] @{
-            repo   = $_.remote
-            tag    = $tag
-            commit = $_.commit
-        }
-    }
-    catch {
-        Write-Warning "${module}: Could not automatically determine tag for $modPath. Skipping"
-        return
-    }
-
-    New-GitTag $_.path $tag -WhatIf:$WhatIfPreference
-}
-
-$tags | Format-Table
-
-if ($OutFile) {
-    $tags | Select-Object -Property * | Export-Csv -Path $OutFile -WhatIf:$false -NoTypeInformation
-}

+ 0 - 5
scripts/GetPackageVersion.targets

@@ -1,5 +0,0 @@
-<Project>
-  <Target Name="GetPackageVersion">
-    <Message Importance="high" Text="PackageVersion=$(PackageVersion)" />
-  </Target>
-</Project>

+ 0 - 23
scripts/ListRepoVersions.ps1

@@ -1,23 +0,0 @@
-#!/usr/bin/env pwsh
-
-<#
-.SYNOPSIS
-    Lists the version of all submodules and this repo
-.PARAMETER Shipping
-    Only list repos that are shipping
-#>
-[cmdletbinding(SupportsShouldProcess = $true)]
-param(
-    [switch]$Shipping = $false
-)
-
-Set-StrictMode -Version 2
-$ErrorActionPreference = 'Stop'
-
-Import-Module -Scope Local -Force "$PSScriptRoot/common.psm1"
-
-Assert-Git
-
-$RepoRoot = Resolve-Path "$PSScriptRoot/../"
-
-Get-Submodules $RepoRoot -Shipping:$Shipping | Format-Table -Property 'module','versionPrefix'

+ 0 - 111
scripts/PatchVersionPrefix.ps1

@@ -1,111 +0,0 @@
-#!/usr/bin/env pwsh -c
-
-<#
-.SYNOPSIS
-    Updates the version.props file in repos to a newer patch version
-.PARAMETER Repos
-    A list of the repositories that should be patched
-.PARAMETER Mode
-    Version bump options: Major, Minor, Patch
-.PARAMETER VersionSuffix
-    The version suffix to use
-#>
-[cmdletbinding(SupportsShouldProcess = $true)]
-param(
-    [Parameter(Mandatory = $true)]
-    [string[]]$Repos,
-    [Parameter(Mandatory = $true)]
-    [ValidateSet('Major', 'Minor', 'Patch')]
-    [string]$Mode,
-    [string]$VersionSuffix = $null,
-    [switch]$NoCommit
-)
-
-$ErrorActionPreference = 'Stop'
-
-Import-Module -Scope Local -Force "$PSScriptRoot/common.psm1"
-
-function SetVersionSuffix([System.Xml.XmlNode]$node) {
-    if (-not $node) {
-        return
-    }
-    $node.InnerText = $VersionSuffix
-    return "Setting $($node.Name) to $VersionSuffix"
-}
-
-function BumpVersion([System.Xml.XmlNode]$node) {
-    if (-not $node) {
-        return
-    }
-    [version] $version = $node.InnerText
-
-    $experimental = $version.Major -eq 0
-
-    switch ($mode) {
-        { ($_ -ne 'Patch') -and $experimental} {
-            $node.InnerText = "{0}.{1}.{2}" -f $version.Major, ($version.Minor + 1), 0
-        }
-        { ($_ -eq 'Major') -and -not $experimental } {
-            $node.InnerText = "{0}.{1}.{2}" -f ($version.Major + 1), 0, 0
-        }
-        { ($_ -eq 'Minor') -and -not $experimental } {
-            $node.InnerText = "{0}.{1}.{2}" -f $version.Major, ($version.Minor + 1), 0
-        }
-        'Patch' {
-            $node.InnerText = "{0}.{1}.{2}" -f $version.Major, $version.Minor, ($version.Build + 1)
-        }
-        default {
-            throw "Could not figure out how to apply patch policy $mode"
-        }
-    }
-    return "Bumping version from $version to $($node.InnerText)"
-}
-
-foreach ($repo in $Repos) {
-    $repoPath = "$PSScriptRoot/../modules/$repo"
-    Push-Location $repoPath
-    try
-    {
-        $path = "$repoPath/version.props"
-        Write-Host -ForegroundColor Magenta "Updating $repo"
-        if (-not (Test-Path $path)) {
-            Write-Warning "$path does not exist"
-            continue
-        }
-        $path = Resolve-Path $path
-        Write-Verbose "$path"
-        [xml] $xml = LoadXml $path
-
-        $suffix = $xml.SelectSingleNode('/Project/PropertyGroup/VersionSuffix')
-        if (-not $suffix) {
-            write-error "$path does not have VersionSuffix"
-        }
-
-        if ($VersionSuffix) {
-            SetVersionSuffix $xml.SelectSingleNode('/Project/PropertyGroup/VersionSuffix') | write-host
-            SetVersionSuffix $xml.SelectSingleNode('/Project/PropertyGroup/ExperimentalProjectVersionSuffix') | write-host
-            SetVersionSuffix $xml.SelectSingleNode('/Project/PropertyGroup/ExperimentalVersionSuffix') | write-host
-        }
-
-        $versionPrefix = $xml.SelectSingleNode('/Project/PropertyGroup/VersionPrefix')
-        $epxVersionPrefix = $xml.SelectSingleNode('/Project/PropertyGroup/ExperimentalProjectVersionPrefix')
-        $exVersionPrefix = $xml.SelectSingleNode('/Project/PropertyGroup/ExperimentalVersionPrefix')
-        BumpVersion $epxVersionPrefix | write-host
-        BumpVersion $exVersionPrefix | write-host
-        $message = BumpVersion $versionPrefix
-        Write-Host $message
-
-        if ($PSCmdlet.ShouldProcess("Update $path")) {
-            SaveXml $xml $path
-            if (-not $NoCommit) {
-                Invoke-Block { & git add $path }
-                Invoke-Block { & git commit -m $message }
-            }
-        }
-    }
-    finally
-    {
-        Pop-Location
-    }
-}
-

+ 0 - 66
scripts/TagRepos.ps1

@@ -1,66 +0,0 @@
-#!/usr/bin/env pwsh
-
-<#
-.SYNOPSIS
-    Tags each repo according to VersionPrefix in version.props of that repo
-.PARAMETER Push
-    Push all updated tags
-.PARAMETER ForceUpdateTag
-    This will call git tag --force
-#>
-[cmdletbinding(SupportsShouldProcess = $true)]
-param(
-    [switch]$Push = $false,
-    [switch]$ForceUpdateTag = $false
-)
-
-Set-StrictMode -Version 2
-$ErrorActionPreference = 'Stop'
-
-Import-Module -Scope Local -Force "$PSScriptRoot/common.psm1"
-
-Assert-Git
-
-$RepoRoot = Resolve-Path "$PSScriptRoot/../"
-
-Get-Submodules $RepoRoot -Shipping | % {
-    Push-Location $_.path | Out-Null
-    try {
-
-        if (-not $_.versionPrefix) {
-            Write-Warning "Could not determine tag version for $(_.path)"
-        }
-        else {
-            $tag = $_.versionPrefix
-            Write-Host "$($_.module) => $tag"
-
-            $gitTagArgs = @()
-            if ($ForceUpdateTag) {
-                $gitTagArgs += '--force'
-            }
-
-            Invoke-Block { & git tag @gitTagArgs $tag }
-
-            if ($Push) {
-                $gitPushArgs = @()
-                if ($WhatIfPreference) {
-                    $gitPushArgs += '--dry-run'
-                }
-                Invoke-Block { & git push @gitPushArgs origin "refs/tags/${tag}"  }
-            }
-
-            if ($WhatIfPreference) {
-                Invoke-Block { & git tag -d $tag } | Out-Null
-            }
-        }
-    }
-    catch {
-        Write-Host -ForegroundColor Red "Could not update $_"
-        throw
-    }
-    finally {
-        Pop-Location
-    }
-}
-
-

+ 0 - 134
scripts/UpdateDependenciesCoreFx.ps1

@@ -1,134 +0,0 @@
-
-[CmdletBinding()]
-param(
-    [switch]$NoCommit,
-    [string]$GithubEmail,
-    [string]$GithubUsername,
-    [string]$GithubToken
-)
-# This script only works against master at the moment because only master prod-con builds allow you to access their results before the entire chain is finished.
-
-$ErrorActionPreference = 'Stop'
-Import-Module -Scope Local -Force "$PSScriptRoot/common.psm1"
-Set-StrictMode -Version 1
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
-
-$githubRaw = "https://raw.githubusercontent.com"
-$versionsRepo = "dotnet/versions"
-$versionsBranch = "master"
-
-$coreSetupRepo = "dotnet/core-setup"
-$coreFxRepo = "dotnet/corefx"
-
-$coreSetupVersions = "$githubRaw/$versionsRepo/$versionsBranch/build-info/$coreSetupRepo/master/Latest_Packages.txt"
-
-$tempDir = "$PSScriptRoot/../obj"
-
-mkdir -Path $tempDir -ErrorAction Ignore
-
-$localCoreSetupVersions = "$tempDir/coresetup.packages"
-Write-Host "Downloading $coreSetupVersions to $localCoreSetupVersions"
-Invoke-WebRequest -OutFile $localCoreSetupVersions -Uri $coreSetupVersions
-
-$msNetCoreAppPackageVersion = $null
-$msNetCoreAppPackageName = "Microsoft.NETCore.App"
-
-Set-GitHubInfo $GithubToken $GithubUsername $GithubEmail
-
-$variables = @{}
-
-foreach ($line in Get-Content $localCoreSetupVersions) {
-    if ($line.StartsWith("$msNetCoreAppPackageName ")) {
-        $msNetCoreAppPackageVersion = $line.Trim("$msNetCoreAppPackageName ")
-    }
-    $parts = $line.Split(' ')
-    $packageName = $parts[0]
-
-    $varName = "$packageName" + "PackageVersion"
-    $varName = $varName.Replace('.', '')
-
-    $packageVersion = $parts[1]
-    if ($variables[$varName]) {
-        if ($variables[$varName].Where( {$_ -eq $packageVersion}, 'First').Count -eq 0) {
-            $variables[$varName] += $packageVersion
-        }
-    }
-    else {
-        $variables[$varName] = @($packageVersion)
-    }
-}
-
-if (!$msNetCoreAppPackageVersion) {
-    throw "$msNetCoreAppPackageName was not in $coreSetupVersions"
-}
-
-$coreAppDownloadLink = "https://dotnet.myget.org/F/dotnet-core/api/v2/package/$msNetCoreAppPackageName/$msNetCoreAppPackageVersion"
-$netCoreAppNupkg = "$tempDir/microsoft.netcore.app.zip"
-Invoke-WebRequest -OutFile $netCoreAppNupkg -Uri $coreAppDownloadLink
-$expandedNetCoreApp = "$tempDir/microsoft.netcore.app/"
-Expand-Archive -Path $netCoreAppNupkg -DestinationPath $expandedNetCoreApp -Force
-$versionsTxt = "$expandedNetCoreApp/$msNetCoreAppPackageName.versions.txt"
-
-$versionsCoreFxCommit = $null
-foreach ($line in Get-Content $versionsTxt) {
-    if ($line.StartsWith("dotnet/versions/corefx")) {
-        $versionsCoreFxCommit = $line.Split(' ')[1]
-        break
-    }
-}
-
-if (!$versionsCoreFxCommit) {
-    Throw "no 'dotnet/versions/corefx' in versions.txt of Microsoft.NETCore.App"
-}
-
-$coreFxVersionsUrl = "$githubRaw/$versionsRepo/$versionsCoreFxCommit/build-info/$coreFxRepo/$versionsBranch/Latest_Packages.txt"
-$localCoreFxVersions = "$tempDir/$corefx.packages"
-Invoke-WebRequest -OutFile $localCoreFxVersions -Uri $coreFxVersionsUrl
-
-foreach ($line in Get-Content $localCoreFxVersions) {
-    $parts = $line.Split(' ')
-
-    $packageName = $parts[0]
-
-    $varName = "$packageName" + "PackageVersion"
-    $varName = $varName.Replace('.', '')
-    $packageVersion = $parts[1]
-    if ($variables[$varName]) {
-        if ($variables[$varName].Where( {$_ -eq $packageVersion}, 'First').Count -eq 0) {
-            $variables[$varName] += $packageVersion
-        }
-    }
-    else {
-        $variables[$varName] = @($packageVersion)
-    }
-}
-
-$depsPath = Resolve-Path "$PSScriptRoot/../build/dependencies.props"
-Write-Host "Loading deps from $depsPath"
-[xml] $dependencies = LoadXml $depsPath
-
-if (-not $NoCommit) {
-    $baseBranch = "master"
-    Invoke-Block { & git fetch origin }
-
-    $currentBranch = Invoke-Block { & git rev-parse --abbrev-ref HEAD }
-    $destinationBranch = "upgrade-netcore-deps"
-
-    Invoke-Block { & git checkout -tb $destinationBranch "origin/$baseBranch" }
-}
-
-try {
-    $updatedVars = UpdateVersions $variables $dependencies $depsPath
-    if (-not $NoCommit) {
-        $body = CommitUpdatedVersions $updatedVars $dependencies $depsPath "Upgrade to .NET Core $msNetCoreAppPackageVersion"
-
-        if ($body) {
-            CreatePR "aspnet" $GithubUsername $baseBranch $destinationBranch $body $GithubToken
-        }
-    }
-}
-finally {
-    if (-not $NoCommit) {
-        Invoke-Block { & git checkout $currentBranch }
-    }
-}

+ 0 - 148
scripts/UpdateRepos.ps1

@@ -1,148 +0,0 @@
-#!/usr/bin/env pwsh
-
-<#
-.SYNOPSIS
-    Updates each submodule this repo builds to new dependencies.props.
-.PARAMETER Source
-    The NuGet package source to find the lineup on.
-.PARAMETER LineupID
-    The ID of the Lineup to determine which versions to use.
-.PARAMETER LineupVersion
-    The version of the Lineup to be used.
-.PARAMETER NoPush
-    Make commits without pusing.
-.PARAMETER GitAuthorName
-    The author name to use in the commit message. (Optional)
-.PARAMETER GitAuthorEmail
-    The author email to use in the commit message. (Optional)
-.PARAMETER Force
-    Specified this to push commits without prompting.
-.PARAMETER GitCommitArgs
-    Any remaining arguments are passed as arguments to 'git commit' actions in each repo.
-#>
-[cmdletbinding(SupportsShouldProcess = $true)]
-param(
-    [Parameter(Mandatory = $true)]
-    [string]$Source,
-    [Parameter(Mandatory = $true)]
-    [string]$LineupID,
-    [Parameter(Mandatory = $true)]
-    [string]$LineupVersion,
-    [switch]$NoPush,
-    [string]$GitAuthorName = $null,
-    [string]$GitAuthorEmail = $null,
-    [switch]$Force,
-    [string[]]$GitCommitArgs = @()
-)
-
-$ErrorActionPreference = 'Stop'
-Set-StrictMode -Version 2
-
-Import-Module "$PSScriptRoot/common.psm1" -Scope Local -Force
-
-$RepoRoot = Resolve-Path "$PSScriptRoot\.."
-$ModuleDirectory = Join-Path $RepoRoot "modules"
-
-$gitConfigArgs = @()
-if ($GitAuthorName) {
-    $gitConfigArgs += '-c', "user.name=$GitAuthorName"
-}
-
-if ($GitAuthorEmail) {
-    $gitConfigArgs += '-c', "user.email=$GitAuthorEmail"
-}
-
-Push-Location $ModuleDirectory
-try {
-
-    $build_errors = @()
-    $submodules = Get-Submodules $RepoRoot
-    foreach ($submodule in $submodules) {
-        Push-Location $submodule.path
-        try {
-            Invoke-Block { & git fetch }
-            Invoke-Block { & git checkout origin/$($submodule.branch) }
-            $depsFile = Join-Path (Join-Path $($submodule.path) "build") "dependencies.props"
-
-            if (!(Test-Path $depsFile)) {
-                Write-Warning "No build\dependencies.props file exists for '$($submodule.module)'."
-                continue
-            }
-
-            $koreBuildLock = "korebuild-lock.txt"
-
-            $repoKoreBuildLock = (Join-Path $RepoRoot $koreBuildLock)
-            $submoduleKoreBuildLock = (Join-Path $submodule.path $koreBuildLock)
-
-            Copy-Item $repoKoreBuildLock $submoduleKoreBuildLock -Force
-
-            Write-Verbose "About to update dependencies.props for $($submodule.module)"
-            & .\run.ps1 upgrade deps --source $Source --id $LineupID --version $LineupVersion --deps-file $depsFile
-
-            Invoke-Block { & git @gitConfigArgs add $depsFile $koreBuildLock }
-
-            # If there were any changes test and push.
-            & git diff --cached --quiet ./
-            if ($LASTEXITCODE -ne 0) {
-                Invoke-Block { & git @gitConfigArgs commit --quiet -m "Update dependencies.props`n`n[auto-updated: dependencies]" @GitCommitArgs }
-
-                # Prepare this submodule for push
-                $sshUrl = "[email protected]:aspnet/$($submodule.module)"
-                Invoke-Block { & git remote set-url --push origin $sshUrl }
-
-                # Test the submodule
-                try {
-                    Invoke-Block { & .\run.ps1 default-build /p:SkipTests=true }
-                }
-                catch {
-                    Write-Warning "Error in $($submodule.module): $_"
-                    $build_errors += @{
-                        Repo    = $submodule.module
-                        Message = $_
-                    }
-                    continue
-                }
-
-                # Push the changes
-                if (-not $NoPush -and ($Force -or ($PSCmdlet.ShouldContinue("Pushing updates to repos.", 'Push the changes to these repos?')))) {
-                    try {
-                        $newBranch = "maestro/$($submodule.branch)"
-                        Invoke-Block { & git @gitConfigArgs push origin HEAD:refs/heads/$newBranch}
-                    }
-                    catch {
-                        Write-Warning "Error in pushing $($newBranch): $_"
-                        $build_errors += @{
-                            Repo    = $submodule.module
-                            Message = $_
-                        }
-                        continue
-                    }
-                }
-            }
-            else {
-                Write-Host "No changes in $($submodule.module)"
-            }
-        }
-        catch {
-            Write-Warning "Error in $($submodule.module): $_"
-            $build_errors += @{
-                Repo    = $submodule.module
-                Message = $_
-            }
-        }
-        finally {
-            Pop-Location
-        }
-    }
-
-    if ($build_errors.Count -gt 0 ) {
-        Write-Warning "The following repos failed:"
-        foreach ($error in $build_errors) {
-            Write-Warning "   - $($error.Repo)"
-        }
-        throw "Failed to build"
-    }
-}
-finally {
-    Pop-Location
-}

+ 0 - 2
scripts/requirements.txt

@@ -1,2 +0,0 @@
-PyYAML==3.12
-termcolor==1.1.0

+ 0 - 100
scripts/update_travis_appveyor_yml.py

@@ -1,100 +0,0 @@
-#!/usr/bin/env python3
-
-import collections
-import glob
-import yaml
-from os import path
-from termcolor import colored, cprint
-from yaml.constructor import Constructor
-
-def dump_format(dump, tag, mapping, flow_style=None):
-    """
-    Better output formatting for YAML dictionaries
-    """
-    value = []
-    node = yaml.MappingNode(tag, value, flow_style=flow_style)
-    if dump.alias_key is not None:
-        dump.represented_objects[dump.alias_key] = node
-    best_style = True
-    if hasattr(mapping, 'items'):
-        mapping = mapping.items()
-    for item_key, item_value in mapping:
-        node_key = dump.represent_data(item_key)
-        node_value = dump.represent_data(item_value)
-        if not (isinstance(node_key, yaml.ScalarNode) and not node_key.style):
-            best_style = False
-        if not (isinstance(node_value, yaml.ScalarNode) and not node_value.style):
-            best_style = False
-        value.append((node_key, node_value))
-    if flow_style is None:
-        if dump.default_flow_style is not None:
-            node.flow_style = dump.default_flow_style
-        else:
-            node.flow_style = best_style
-    return node
-
-
-def add_bool_as_scalar(self, node):
-    """
-    Don't auto-parse boolean values
-    """
-    if node.value == 'true' or node.value == 'false' :
-        return self.construct_yaml_bool(node)
-    return self.construct_scalar(node)
-
-_mapping_tag = yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG
-
-def dict_representer(dumper, data):
-    return dumper.represent_mapping(_mapping_tag, data.iteritems())
-
-
-def dict_constructor(loader, node):
-    return collections.OrderedDict(loader.construct_pairs(node))
-
-def update(pattern, updater):
-    print('\n\n\n')
-    cprint(pattern, 'magenta')
-
-    for f in glob.glob(path.join(repo_root, "modules", "*", pattern)):
-        yml = path.join(repo_root, f)
-
-        if not path.exists(yml):
-            cprint("File does not exist: {}".format(yml), 'red')
-            continue
-
-        print("Updating {}".format(yml))
-        document = yaml.load(open(yml, 'r'))
-        document = updater(document)
-        yml_file = open(yml, 'w')
-        yml_file.write(yaml.safe_dump(document, default_flow_style=False, indent=2))
-        yml_file.close()
-
-#
-# Config yaml parser
-#
-
-# Do not reorder keys in yaml file
-yaml.add_representer(collections.OrderedDict, dict_representer)
-yaml.add_constructor(_mapping_tag, dict_constructor)
-# Pretty print dictionaries
-yaml.SafeDumper.add_representer(collections.OrderedDict,
-                                lambda dumper, value: dump_format(dumper, u'tag:yaml.org,2002:map', value))
-# Don't parse booleans - treat them as scalars
-yaml.Loader.add_constructor(u'tag:yaml.org,2002:bool', add_bool_as_scalar)
-yaml.SafeLoader.add_constructor(u'tag:yaml.org,2002:bool', add_bool_as_scalar)
-
-#
-# Main
-#
-
-repo_root = path.dirname(path.dirname(path.abspath(__file__)))
-
-def transform_yaml_doc(document):
-    if not 'branches' in document:
-        document['branches'] = {}
-    document['branches']['only'] = [
-        'master', '/^release\/.*$/', '/^(.*\/)?ci-.*$/']
-    return document
-
-update(".travis.yml", transform_yaml_doc)
-update(".appveyor.yml", transform_yaml_doc)

+ 0 - 6
src/AADIntegration/build/repo.props

@@ -1,12 +1,6 @@
 <Project>
   <Import Project="dependencies.props" />
 
-  <PropertyGroup>
-    <!-- These properties are use by the automation that updates dependencies.props -->
-    <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
-    <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
-  </PropertyGroup>
-
   <ItemGroup>
     <DotNetCoreRuntime Include="$(MicrosoftNETCoreAppPackageVersion)" />
   </ItemGroup>

+ 0 - 5
src/Antiforgery/build/repo.props

@@ -1,11 +1,6 @@
 <Project>
   <Import Project="dependencies.props" />
 
-  <PropertyGroup>
-    <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
-    <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
-  </PropertyGroup>
-
   <ItemGroup>
     <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp20PackageVersion)" />
     <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp21PackageVersion)" />

+ 0 - 6
src/AuthSamples/build/repo.props

@@ -1,12 +1,6 @@
 <Project>
   <Import Project="dependencies.props" />
 
-  <PropertyGroup>
-    <!-- These properties are use by the automation that updates dependencies.props -->
-    <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
-    <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
-  </PropertyGroup>
-
   <ItemGroup>
     <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp20PackageVersion)" />
     <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp30PackageVersion)" />

+ 0 - 4
src/AzureIntegration/build/repo.props

@@ -3,10 +3,6 @@
 
   <PropertyGroup>
     <FunctionalTestsProject>$(RepositoryRoot)test\Microsoft.AspNetCore.AzureAppServices.FunctionalTests\Microsoft.AspNetCore.AzureAppServices.FunctionalTests.csproj</FunctionalTestsProject>
-
-    <!-- These properties are use by the automation that updates dependencies.props -->
-    <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
-    <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
   </PropertyGroup>
 
   <ItemGroup>

+ 0 - 6
src/CORS/build/repo.props

@@ -1,12 +1,6 @@
 <Project>
   <Import Project="dependencies.props" />
 
-  <PropertyGroup>
-    <!-- These properties are use by the automation that updates dependencies.props -->
-    <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
-    <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
-  </PropertyGroup>
-
   <ItemGroup>
     <DotNetCoreRuntime Include="$(MicrosoftNETCoreAppPackageVersion)" />
   </ItemGroup>

+ 9 - 4
src/CORS/test/FunctionalTests/package-lock.json

@@ -1668,7 +1668,8 @@
         "ansi-regex": {
           "version": "2.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "aproba": {
           "version": "1.2.0",
@@ -2083,7 +2084,8 @@
         "safe-buffer": {
           "version": "5.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "safer-buffer": {
           "version": "2.1.2",
@@ -2139,6 +2141,7 @@
           "version": "3.0.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "ansi-regex": "^2.0.0"
           }
@@ -2182,12 +2185,14 @@
         "wrappy": {
           "version": "1.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "yallist": {
           "version": "3.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },

+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/IOutboundParameterTransformer.cs → src/Http/Routing.Abstractions/src/IOutboundParameterTransformer.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/IParameterPolicy.cs → src/Http/Routing.Abstractions/src/IParameterPolicy.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/IRouteConstraint.cs → src/Http/Routing.Abstractions/src/IRouteConstraint.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/IRouteHandler.cs → src/Http/Routing.Abstractions/src/IRouteHandler.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/IRouter.cs → src/Http/Routing.Abstractions/src/IRouter.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/IRoutingFeature.cs → src/Http/Routing.Abstractions/src/IRoutingFeature.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/LinkGenerator.cs → src/Http/Routing.Abstractions/src/LinkGenerator.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/LinkOptions.cs → src/Http/Routing.Abstractions/src/LinkOptions.cs


+ 2 - 2
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/Microsoft.AspNetCore.Routing.Abstractions.csproj → src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj

@@ -12,7 +12,7 @@ Microsoft.AspNetCore.Routing.RouteData</Description>
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.PropertyHelper.Sources" Version="$(MicrosoftExtensionsPropertyHelperSourcesPackageVersion)" PrivateAssets="All" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.Extensions.PropertyHelper.Sources" PrivateAssets="All" />
   </ItemGroup>
 </Project>

+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/Properties/AssemblyInfo.cs → src/Http/Routing.Abstractions/src/Properties/AssemblyInfo.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/RouteContext.cs → src/Http/Routing.Abstractions/src/RouteContext.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/RouteData.cs → src/Http/Routing.Abstractions/src/RouteData.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/RouteDirection.cs → src/Http/Routing.Abstractions/src/RouteDirection.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/RoutingHttpContextExtensions.cs → src/Http/Routing.Abstractions/src/RoutingHttpContextExtensions.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/VirtualPathContext.cs → src/Http/Routing.Abstractions/src/VirtualPathContext.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/VirtualPathData.cs → src/Http/Routing.Abstractions/src/VirtualPathData.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing.Abstractions/baseline.netcore.json → src/Http/Routing.Abstractions/src/baseline.netcore.json


+ 11 - 0
src/Http/Routing.Abstractions/test/Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests.csproj

@@ -0,0 +1,11 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.0</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Routing.Abstractions" />
+  </ItemGroup>
+
+</Project>

+ 0 - 0
src/Routing/test/Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests/RouteDataTest.cs → src/Http/Routing.Abstractions/test/RouteDataTest.cs


+ 0 - 0
src/Routing/test/Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests/VirtualPathDataTests.cs → src/Http/Routing.Abstractions/test/VirtualPathDataTests.cs


+ 185 - 0
src/Http/Routing.sln

@@ -0,0 +1,185 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26124.0
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Routing", "Routing", "{240298B6-6729-4844-9B30-B8BC0CD12772}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Routing.Performance", "Routing\perf\Microsoft.AspNetCore.Routing.Performance.csproj", "{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Routing", "Routing\src\Microsoft.AspNetCore.Routing.csproj", "{A69248B5-2ACE-4B52-B0B0-63AD54D52543}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{8B2D195B-4997-4CCE-9846-4A848A6F258D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Routing.FunctionalTests", "Routing\test\FunctionalTests\Microsoft.AspNetCore.Routing.FunctionalTests.csproj", "{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Routing.Tests", "Routing\test\UnitTests\Microsoft.AspNetCore.Routing.Tests.csproj", "{3F9CEBB1-A50D-4869-B555-81E572E62D18}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Routing.Abstractions", "Routing.Abstractions", "{485B8E11-FC7C-464F-8CB2-A164DAB30D58}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Routing.Abstractions", "Routing.Abstractions\src\Microsoft.AspNetCore.Routing.Abstractions.csproj", "{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests", "Routing.Abstractions\test\Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests.csproj", "{32C5C558-E104-4DC4-9311-890697DE8D65}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{EDF2E5EF-EAEC-4B51-8473-857531557DAE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Benchmarks", "Routing\test\testassets\Benchmarks\Benchmarks.csproj", "{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoutingWebSite", "Routing\test\testassets\RoutingWebSite\RoutingWebSite.csproj", "{3A05A5F5-78AD-440F-9795-A8432718CB63}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{6E739429-4F29-4694-93D8-8F7F42C9C6DC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Swaggatherer", "Routing\tools\Swaggatherer\Swaggatherer.csproj", "{A1B3C84D-206C-439D-8821-416D935CFCB5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoutingSandbox", "Routing\test\testassets\RoutingSandbox\RoutingSandbox.csproj", "{4F51F949-DCC3-433E-981E-0F84E7CA9D61}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Debug|x64.Build.0 = Debug|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Debug|x86.Build.0 = Debug|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Release|x64.ActiveCfg = Release|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Release|x64.Build.0 = Release|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Release|x86.ActiveCfg = Release|Any CPU
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F}.Release|x86.Build.0 = Release|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Debug|x64.Build.0 = Debug|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Debug|x86.Build.0 = Debug|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Release|x64.ActiveCfg = Release|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Release|x64.Build.0 = Release|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Release|x86.ActiveCfg = Release|Any CPU
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543}.Release|x86.Build.0 = Release|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Debug|x64.Build.0 = Debug|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Debug|x86.Build.0 = Debug|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Release|x64.ActiveCfg = Release|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Release|x64.Build.0 = Release|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Release|x86.ActiveCfg = Release|Any CPU
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22}.Release|x86.Build.0 = Release|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Debug|x64.Build.0 = Debug|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Debug|x86.Build.0 = Debug|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Release|x64.ActiveCfg = Release|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Release|x64.Build.0 = Release|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Release|x86.ActiveCfg = Release|Any CPU
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18}.Release|x86.Build.0 = Release|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Debug|x64.Build.0 = Debug|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Debug|x86.Build.0 = Debug|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Release|x64.ActiveCfg = Release|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Release|x64.Build.0 = Release|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Release|x86.ActiveCfg = Release|Any CPU
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0}.Release|x86.Build.0 = Release|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Debug|x64.Build.0 = Debug|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Debug|x86.Build.0 = Debug|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Release|Any CPU.Build.0 = Release|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Release|x64.ActiveCfg = Release|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Release|x64.Build.0 = Release|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Release|x86.ActiveCfg = Release|Any CPU
+		{32C5C558-E104-4DC4-9311-890697DE8D65}.Release|x86.Build.0 = Release|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Debug|x64.Build.0 = Debug|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Debug|x86.Build.0 = Debug|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Release|x64.ActiveCfg = Release|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Release|x64.Build.0 = Release|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Release|x86.ActiveCfg = Release|Any CPU
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2}.Release|x86.Build.0 = Release|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Debug|x64.Build.0 = Debug|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Debug|x86.Build.0 = Debug|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Release|x64.ActiveCfg = Release|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Release|x64.Build.0 = Release|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Release|x86.ActiveCfg = Release|Any CPU
+		{3A05A5F5-78AD-440F-9795-A8432718CB63}.Release|x86.Build.0 = Release|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Debug|x64.Build.0 = Debug|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Debug|x86.Build.0 = Debug|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Release|x64.ActiveCfg = Release|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Release|x64.Build.0 = Release|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Release|x86.ActiveCfg = Release|Any CPU
+		{A1B3C84D-206C-439D-8821-416D935CFCB5}.Release|x86.Build.0 = Release|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Debug|x64.Build.0 = Debug|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Debug|x86.Build.0 = Debug|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Release|x64.ActiveCfg = Release|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Release|x64.Build.0 = Release|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Release|x86.ActiveCfg = Release|Any CPU
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61}.Release|x86.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{D9A5185A-1697-4B6B-B845-C13AE6DA6D3F} = {240298B6-6729-4844-9B30-B8BC0CD12772}
+		{A69248B5-2ACE-4B52-B0B0-63AD54D52543} = {240298B6-6729-4844-9B30-B8BC0CD12772}
+		{8B2D195B-4997-4CCE-9846-4A848A6F258D} = {240298B6-6729-4844-9B30-B8BC0CD12772}
+		{5BD1EBCE-E05E-41FC-A1A8-BF36FA096F22} = {8B2D195B-4997-4CCE-9846-4A848A6F258D}
+		{3F9CEBB1-A50D-4869-B555-81E572E62D18} = {8B2D195B-4997-4CCE-9846-4A848A6F258D}
+		{C9C9FAB5-0A0D-4334-9A7D-C83C38EB29B0} = {485B8E11-FC7C-464F-8CB2-A164DAB30D58}
+		{32C5C558-E104-4DC4-9311-890697DE8D65} = {485B8E11-FC7C-464F-8CB2-A164DAB30D58}
+		{EDF2E5EF-EAEC-4B51-8473-857531557DAE} = {8B2D195B-4997-4CCE-9846-4A848A6F258D}
+		{490C00C6-4B63-4E1B-95AB-EDEB7532D4B2} = {EDF2E5EF-EAEC-4B51-8473-857531557DAE}
+		{3A05A5F5-78AD-440F-9795-A8432718CB63} = {EDF2E5EF-EAEC-4B51-8473-857531557DAE}
+		{6E739429-4F29-4694-93D8-8F7F42C9C6DC} = {240298B6-6729-4844-9B30-B8BC0CD12772}
+		{A1B3C84D-206C-439D-8821-416D935CFCB5} = {6E739429-4F29-4694-93D8-8F7F42C9C6DC}
+		{4F51F949-DCC3-433E-981E-0F84E7CA9D61} = {EDF2E5EF-EAEC-4B51-8473-857531557DAE}
+	EndGlobalSection
+EndGlobal

+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/EndpointMetadataCollectionBenchmark.cs → src/Http/Routing/perf/EndpointMetadataCollectionBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/EndpointRoutingBenchmarkBase.cs → src/Http/Routing/perf/EndpointRoutingBenchmarkBase.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/LinkGeneration/LinkGenerationGithubBenchmark.cs → src/Http/Routing/perf/LinkGeneration/LinkGenerationGithubBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/LinkGeneration/LinkGenerationGithubBenchmark.generated.cs → src/Http/Routing/perf/LinkGeneration/LinkGenerationGithubBenchmark.generated.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/LinkGeneration/SingleRouteRouteValuesAddressSchemeBenchmark.cs → src/Http/Routing/perf/LinkGeneration/SingleRouteRouteValuesAddressSchemeBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs → src/Http/Routing/perf/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/LinkGeneration/SingleRouteWithNoParametersBenchmark.cs → src/Http/Routing/perf/LinkGeneration/SingleRouteWithNoParametersBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/LinkGeneration/SingleRouteWithParametersBenchmark.cs → src/Http/Routing/perf/LinkGeneration/SingleRouteWithParametersBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/FastPathTokenizerBenchmarkBase.cs → src/Http/Routing/perf/Matching/FastPathTokenizerBenchmarkBase.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/FastPathTokenizerEmptyBenchmark.cs → src/Http/Routing/perf/Matching/FastPathTokenizerEmptyBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/FastPathTokenizerLargeBenchmark.cs → src/Http/Routing/perf/Matching/FastPathTokenizerLargeBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/FastPathTokenizerPlaintextBenchmark.cs → src/Http/Routing/perf/Matching/FastPathTokenizerPlaintextBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/FastPathTokenizerSmallBenchmark.cs → src/Http/Routing/perf/Matching/FastPathTokenizerSmallBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/JumpTableMultipleEntryBenchmark.cs → src/Http/Routing/perf/Matching/JumpTableMultipleEntryBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/JumpTableSingleEntryBenchmark.cs → src/Http/Routing/perf/Matching/JumpTableSingleEntryBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/JumpTableZeroEntryBenchmark.cs → src/Http/Routing/perf/Matching/JumpTableZeroEntryBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherAzureBenchmark.cs → src/Http/Routing/perf/Matching/MatcherAzureBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherAzureBenchmarkBase.generated.cs → src/Http/Routing/perf/Matching/MatcherAzureBenchmarkBase.generated.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherBuilderAzureBenchmark.cs → src/Http/Routing/perf/Matching/MatcherBuilderAzureBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherBuilderGithubBenchmark.cs → src/Http/Routing/perf/Matching/MatcherBuilderGithubBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherBuilderMultipleEntryBenchmark.cs → src/Http/Routing/perf/Matching/MatcherBuilderMultipleEntryBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherGithubBenchmark.cs → src/Http/Routing/perf/Matching/MatcherGithubBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherGithubBenchmarkBase.generated.cs → src/Http/Routing/perf/Matching/MatcherGithubBenchmarkBase.generated.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/MatcherSingleEntryBenchmark.cs → src/Http/Routing/perf/Matching/MatcherSingleEntryBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/RouteEndpointAzureBenchmark.cs → src/Http/Routing/perf/Matching/RouteEndpointAzureBenchmark.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/TrivialMatcher.cs → src/Http/Routing/perf/Matching/TrivialMatcher.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Matching/TrivialMatcherBuilder.cs → src/Http/Routing/perf/Matching/TrivialMatcherBuilder.cs


+ 47 - 0
src/Http/Routing/perf/Microsoft.AspNetCore.Routing.Performance.csproj

@@ -0,0 +1,47 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.0</TargetFramework>
+    <OutputType>Exe</OutputType>
+    <ServerGarbageCollection>true</ServerGarbageCollection>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <IsPackable>false</IsPackable>
+    <RootNamespace>Microsoft.AspNetCore.Routing</RootNamespace>
+  </PropertyGroup>
+
+  <!--
+    Some sources are shared with the unit test so we can benchmark some 'test only' implementations
+    for perf comparisons.
+  -->
+  <ItemGroup>
+    <Compile Include="..\test\UnitTests\Matching\BarebonesMatcher.cs">
+      <Link>Matching\BarebonesMatcher.cs</Link>
+    </Compile>
+    <Compile Include="..\test\UnitTests\Matching\BarebonesMatcherBuilder.cs">
+      <Link>Matching\BarebonesMatcherBuilder.cs</Link>
+    </Compile>
+    <Compile Include="..\test\UnitTests\Matching\RouteMatcher.cs">
+      <Link>Matching\RouteMatcher.cs</Link>
+    </Compile>
+    <Compile Include="..\test\UnitTests\Matching\RouteMatcherBuilder.cs">
+      <Link>Matching\RouteMatcherBuilder.cs</Link>
+    </Compile>
+    <Compile Include="..\test\UnitTests\Matching\TreeRouterMatcher.cs">
+      <Link>Matching\TreeRouterMatcher.cs</Link>
+    </Compile>
+    <Compile Include="..\test\UnitTests\Matching\TreeRouterMatcherBuilder.cs">
+      <Link>Matching\TreeRouterMatcherBuilder.cs</Link>
+    </Compile>
+    <Compile Include="..\test\UnitTests\TestObjects\TestServiceProvider.cs" Link="Matching\TestServiceProvider.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="BenchmarkDotNet" />
+    <Reference Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" PrivateAssets="All" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+  </ItemGroup>
+
+</Project>

+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/Properties/AssemblyInfo.cs → src/Http/Routing/perf/Properties/AssemblyInfo.cs


+ 0 - 0
src/Routing/benchmarks/Microsoft.AspNetCore.Routing.Performance/readme.md → src/Http/Routing/perf/readme.md


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Builder/EndpointRouteBuilderExtensions.cs → src/Http/Routing/src/Builder/EndpointRouteBuilderExtensions.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Builder/EndpointRoutingApplicationBuilderExtensions.cs → src/Http/Routing/src/Builder/EndpointRoutingApplicationBuilderExtensions.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Builder/RoutingBuilderExtensions.cs → src/Http/Routing/src/Builder/RoutingBuilderExtensions.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/CompositeEndpointDataSource.cs → src/Http/Routing/src/CompositeEndpointDataSource.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/ConfigureRouteOptions.cs → src/Http/Routing/src/ConfigureRouteOptions.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Constraints/AlphaRouteConstraint.cs → src/Http/Routing/src/Constraints/AlphaRouteConstraint.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Constraints/BoolRouteConstraint.cs → src/Http/Routing/src/Constraints/BoolRouteConstraint.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Constraints/CompositeRouteConstraint.cs → src/Http/Routing/src/Constraints/CompositeRouteConstraint.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Constraints/DateTimeRouteConstraint.cs → src/Http/Routing/src/Constraints/DateTimeRouteConstraint.cs


+ 0 - 0
src/Routing/src/Microsoft.AspNetCore.Routing/Constraints/DecimalRouteConstraint.cs → src/Http/Routing/src/Constraints/DecimalRouteConstraint.cs


Some files were not shown because too many files changed in this diff