diff options
37 files changed, 998 insertions, 336 deletions
@@ -23,6 +23,9 @@ The base url where build tools can be downloaded. Overrides the value from the c .PARAMETER Update Updates KoreBuild to the latest version even if a lock file is present. +.PARAMETER Reinstall +Re-installs KoreBuild + .PARAMETER ConfigFile The path to the configuration file that stores values. Defaults to version.props. @@ -57,6 +60,7 @@ param( [string]$ToolsSource, [Alias('u')] [switch]$Update, + [switch]$Reinstall, [string]$ConfigFile = $null, [Parameter(ValueFromRemainingArguments = $true)] [string[]]$MSBuildArgs @@ -84,6 +88,10 @@ function Get-KoreBuild { $version = $version.TrimStart('version:').Trim() $korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version) + if ($Reinstall -and (Test-Path $korebuildPath)) { + Remove-Item -Force -Recurse $korebuildPath + } + if (!(Test-Path $korebuildPath)) { Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version" New-Item -ItemType Directory -Path $korebuildPath | Out-Null @@ -103,11 +111,11 @@ function Get-KoreBuild { } } catch { - remove-item -Recurse -Force $korebuildPath -ErrorAction Ignore + Remove-Item -Recurse -Force $korebuildPath -ErrorAction Ignore throw } finally { - remove-item $tmpfile -ErrorAction Ignore + Remove-Item $tmpfile -ErrorAction Ignore } } @@ -15,6 +15,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" config_file="$DIR/korebuild.json" verbose=false update=false +reinstall=false repo_path="$DIR" channel='' tools_source='' @@ -36,6 +37,7 @@ __usage() { echo " --path <PATH> The directory to build. Defaults to the directory containing the script." echo " -s|--tools-source <URL> The base url where build tools can be downloaded. Overrides the value from the config file." echo " -u|--update Update to the latest KoreBuild even if the lock file is present." + echo " --reinstall Reinstall KoreBuild." echo "" echo "Description:" echo " This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be." @@ -60,6 +62,10 @@ get_korebuild() { version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version" + if [ "$reinstall" = true ] && [ -d "$korebuild_path" ]; then + rm -rf "$korebuild_path" + fi + { if [ ! -d "$korebuild_path" ]; then mkdir -p "$korebuild_path" @@ -164,6 +170,9 @@ while [[ $# -gt 0 ]]; do -u|--update|-Update) update=true ;; + --reinstall|-[Rr]einstall) + reinstall=true + ;; --verbose|-Verbose) verbose=true ;; diff --git a/build/PackageArchive.targets b/build/PackageArchive.targets index 7688976518..b938f13938 100644 --- a/build/PackageArchive.targets +++ b/build/PackageArchive.targets @@ -34,6 +34,11 @@ <!-- Copy the archive template --> <Copy SourceFiles="$(_TemplatesDirectory)Archive\Archive.csproj" DestinationFiles="$(_WorkRoot)Archive.csproj" /> + <!-- Add .All metapacakge to PackageArtifact for LZMA generation --> + <ItemGroup> + <PackageArtifact Include="Microsoft.AspNetCore.All" LZMA="true" /> + </ItemGroup> + <!-- Copy the archive template --> <RepoTasks.AddArchiveReferences ReferencePackagePath="$(_WorkRoot)Archive.csproj" @@ -66,7 +71,7 @@ <MSBuild Projects="$(_WorkRoot)Archive.csproj" Targets="Restore" - Properties="RestorePackagesPath=$(FallbackStagingDir);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp20PackageVersion);DotNetRestoreSourcePropsPath=$(GeneratedFallbackRestoreSourcesPropsPath);AspNetUniverseBuildOffline=true" /> + Properties="RestorePackagesPath=$(FallbackStagingDir);RuntimeFrameworkVersion=$(LZMAMicrosoftNETCoreApp20PackageVersion);DotNetRestoreSourcePropsPath=$(GeneratedFallbackRestoreSourcesPropsPath);AspNetUniverseBuildOffline=true" /> <!-- Create the archive --> <Exec Command="$(ArchiverPath) -a $(FallbackOutputPath) $(FallbackStagingDir)" /> diff --git a/build/RepositoryBuild.targets b/build/RepositoryBuild.targets index 9c5cd93425..e46c3a157b 100644 --- a/build/RepositoryBuild.targets +++ b/build/RepositoryBuild.targets @@ -43,10 +43,11 @@ <!-- If there are duplicate properties, the properties which are defined later in the order would override the earlier ones --> <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)</RepositoryBuildArguments> <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath)</RepositoryBuildArguments> - <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:BuildNumber=$(BuildNumber) /p:Configuration=$(Configuration)</RepositoryBuildArguments> + <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:BuildNumber=$(BuildNumber)</RepositoryBuildArguments> + <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:Configuration=$(Configuration)</RepositoryBuildArguments> <RepositoryBuildArguments>$(RepositoryBuildArguments) /noconsolelogger '/l:RepoTasks.FlowLogger,$(MSBuildThisFileDirectory)tasks\bin\publish\RepoTasks.dll;Summary;FlowId=$(RepositoryToBuild)'</RepositoryBuildArguments> - <BuildArguments>$(_RepositoryBuildTargets) $(RepositoryBuildArguments)</BuildArguments> + <BuildArguments>/t:CleanArtifacts $(_RepositoryBuildTargets) $(RepositoryBuildArguments)</BuildArguments> <RepositoryArtifactsRoot>$(BuildRepositoryRoot)artifacts</RepositoryArtifactsRoot> <RepositoryArtifactsBuildDirectory>$(RepositoryArtifactsRoot)\build\</RepositoryArtifactsBuildDirectory> <RepositoryArtifactsMSBuildDirectory>$(RepositoryArtifactsRoot)\msbuild\</RepositoryArtifactsMSBuildDirectory> diff --git a/build/RuntimeStore.targets b/build/RuntimeStore.targets index c369b30a0a..5fc3b44466 100644 --- a/build/RuntimeStore.targets +++ b/build/RuntimeStore.targets @@ -28,11 +28,17 @@ </PropertyGroup> <ItemGroup> <AllMetapackageFiles Include="$(_AllMetapackageDirectory)**\*" /> + <ManifestFiles Include="$(ArtifactsDir)*.xml" /> </ItemGroup> <Copy SourceFiles="@(AllMetapackageFiles)" DestinationFolder="$(MetapackageWorkDirectory)\%(RecursiveDir)" /> <Copy SourceFiles="$(_SrcDirectory)Directory.Build.props" DestinationFolder="$(_WorkRoot)" /> + <!-- Create a consolidated manifest and place in metapackage --> + <RepoTasks.ConsolidateManifests + Manifests="@(ManifestFiles)" + ManifestDestination="$(MetapackageWorkDirectory)build\aspnetcore-store-$(PackageVersion).xml"/> + <!-- Add references to project --> <RepoTasks.AddMetapackageReferences ReferencePackagePath="$(MetapackageWorkDirectory)Microsoft.AspNetCore.All.csproj" @@ -43,12 +49,12 @@ <!-- Set _Target=Restore so the project will be re-evaluated to include Internal.AspNetCore.Sdk MSBuild properties on the next step. --> <MSBuild Projects="$(MetapackageWorkDirectory)Microsoft.AspNetCore.All.csproj" Targets="Restore" - Properties="Configuration=$(Configuration);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);AspNetUniverseBuildOffline=true;_Target=Restore" /> + Properties="Configuration=$(Configuration);BuildNumber=$(BuildNumber);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);AspNetUniverseBuildOffline=true;_Target=Restore" /> <!-- Pack --> <MSBuild Projects="$(MetapackageWorkDirectory)Microsoft.AspNetCore.All.csproj" Targets="Pack" - Properties="Configuration=$(Configuration);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);AspNetUniverseBuildOffline=true" /> + Properties="Configuration=$(Configuration);BuildNumber=$(BuildNumber);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);AspNetUniverseBuildOffline=true" /> <!-- Copy to output directory --> <ItemGroup> @@ -142,18 +148,52 @@ Properties="$(_ComposeStoreProps)" /> </Target> + <Target Name="_BuildHostingDeps" > + <PropertyGroup> + <HostingStartupWorkDir>$(_WorkRoot)HostingStartup\</HostingStartupWorkDir> + <_HostingStartupProps>DepsOutputPath=$(_DepsOutputDirectory)</_HostingStartupProps> + <_HostingStartupProps>$(_HostingStartupProps);DotNetRestoreSourcesPropsPath=$(GeneratedRestoreSourcesPropsPath)</_HostingStartupProps> + <_HostingStartupProps>$(_HostingStartupProps);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp20PackageVersion)</_HostingStartupProps> + <_HostingStartupProps>$(_HostingStartupProps);HostingStartupPackageName=$(HostingStartupPackageName)</_HostingStartupProps> + <_HostingStartupProps>$(_HostingStartupProps);HostingStartupPackageVersion=$(HostingStartupPackageVersion)</_HostingStartupProps> + </PropertyGroup> + + <ItemGroup> + <HostingStartupFiles Include="$(_TemplatesDirectory)HostingStartup\**\*" /> + </ItemGroup> + + <!-- Clear working directory --> + <RemoveDir Directories="$(HostingStartupWorkDir)bin" /> + <RemoveDir Directories="$(HostingStartupWorkDir)obj" /> + + <!-- Copy build assets --> + <Copy SourceFiles="@(HostingStartupFiles)" DestinationFolder="$(HostingStartupWorkDir)\%(RecursiveDir)" /> + + <!--- Workaround for https://github.com/dotnet/sdk/issues/1779 --> + <MSBuild Projects="$(HostingStartupWorkDir)HostingStartup.csproj" + Targets="Restore" + Properties="$(_HostingStartupProps);_SolutionTarget=Restore" /> + + <!--- MSBuild caches things if you run inproc so have to use Exec --> + <MSBuild Projects="$(HostingStartupWorkDir)HostingStartup.csproj" + Targets="Publish;CollectDeps" + Properties="$(_HostingStartupProps)" /> + </Target> + <Target Name="BuildHostingDeps" DependsOnTargets="ResolveRepoInfo"> + <!-- Generate RS.Reference project --> <RepoTasks.ResolveHostingStartupPackages BuildArtifacts="@(ArtifactInfo)" - PackageArtifacts="@(PackageArtifact)"> + PackageArtifacts="@(PackageArtifact)" + ExternalDependencies="@(ExternalDependency)"> <Output TaskParameter="HostingStartupArtifacts" ItemName="HostingStartupArtifacts" /> </RepoTasks.ResolveHostingStartupPackages> - <!--- MSBuild caches things if you run inproc so have to use Exec --> - <MSBuild Projects="$(_TemplatesDirectory)HostingStartup/HostingStartup.csproj" - Targets="Restore;Rebuild;CollectDeps" - Properties="DepsOutputPath=$(_DepsOutputDirectory);HostingStartupPackageName=%(HostingStartupArtifacts.PackageId);HostingStartupPackageVersion=%(HostingStartupArtifacts.Version);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp20PackageVersion)" /> + <MSBuild + Projects="$(MSBuildProjectFullPath)" + Targets="_BuildHostingDeps" + Properties="HostingStartupPackageName=%(HostingStartupArtifacts.PackageId);HostingStartupPackageVersion=%(HostingStartupArtifacts.Version)" /> <ItemGroup> <DepsFiles Include="$(_DepsOutputDirectory)**\*.deps.json" /> @@ -207,6 +247,7 @@ <!-- Trim packages guaranteed to be in the runtime but isn't included in our runtime store --> <ItemGroup> <PackagesToTrim Include="runtime.win-arm64.runtime.native.system.data.sqlclient.sni" /> + <ExistingStoreManifests Include="$(_ExistingManifestsDirectory)*.xml" /> </ItemGroup> <MSBuild Projects="$(_WorkRoot)RS.Manifest\RS.Manifest.csproj" @@ -216,26 +257,11 @@ </MSBuild> <RepoTasks.CreateCommonManifest DestinationFilePath="$(ArtifactsDir)$(CommonManifestFileName)" PackageDefinitions="@(_PackageDefinitions)" Packages="@(PackagesToTrim)"/> - </Target> - - <Target Name="AddManifestsToMetapackage"> - <ItemGroup> - <MetaPackageNupkg Include="$(_DependencyBuildDirectory)Microsoft.AspNetCore.All.*.nupkg" /> - <ManifestFiles Include="$(ArtifactsDir)*.xml"/> - </ItemGroup> - - <RemoveDir Directories="$(_WorkRoot)" /> - <UnzipArchive File="%(MetaPackageNupkg.FullPath)" Destination="$(_WorkRoot)" /> - <!-- Create a consolidated manifest and place in metapackage --> - <RepoTasks.ConsolidateManifests - Manifests="@(ManifestFiles)" - ManifestDestination="$(_WorkRoot)\build\aspnetcore-store-$(PackageVersion).xml"/> - - <ItemGroup> - <ArchiveFiles Include="$(_WorkRoot)**\*" /> - </ItemGroup> - - <ZipArchive File="$(ArtifactsDir)%(MetaPackageNupkg.FileName)%(MetaPackageNupkg.Extension)" SourceFiles="@(ArchiveFiles)" WorkingDirectory="$(_WorkRoot)" Overwrite="true" /> + <!-- Trim built manifest with existing manifests --> + <RepoTasks.ComposeNewStore + ExistingManifests="@(ExistingStoreManifests)" + NewManifests="$(ArtifactsDir)$(CommonManifestFileName)" + ManifestDestination="$(ArtifactsDir)$(CommonManifestFileName)"/> </Target> </Project> diff --git a/build/RuntimeStoreInstaller.targets b/build/RuntimeStoreInstaller.targets index 33fc33992f..c55fb09c65 100644 --- a/build/RuntimeStoreInstaller.targets +++ b/build/RuntimeStoreInstaller.targets @@ -20,12 +20,12 @@ <PublicCoreFeedPrefix>https://dotnetcli.blob.core.windows.net/dotnet</PublicCoreFeedPrefix> <CoreFeedPrefix Condition="'$(KOREBUILD_DOTNET_FEED_UNCACHED)'!=''">$(KOREBUILD_DOTNET_FEED_UNCACHED)</CoreFeedPrefix> - <CoreFeedPrefix>$(PublicCoreFeedPrefix)</CoreFeedPrefix> + <CoreFeedPrefix Condition="'$(CoreFeedPrefix)'==''">$(PublicCoreFeedPrefix)</CoreFeedPrefix> - <RuntimeStore200LinkPrefix>$(PublicCoreFeedPrefix)/aspnetcore/store/2.0.0-26452/Build.RS.</RuntimeStore200LinkPrefix> + <RuntimeStore20LinkPrefix>$(PublicCoreFeedPrefix)/aspnetcore/store/2.0.3-125/Build.RS.</RuntimeStore20LinkPrefix> <RuntimeTargzLink>$(CoreFeedPrefix)/Runtime/$(MicrosoftNETCoreApp20PackageVersion)/dotnet-runtime-$(MicrosoftNETCoreApp20PackageVersion)-linux-x64.tar.gz</RuntimeTargzLink> - <TimestampRSArchive>$(_TimestampRSSource)aspnetcore-store-2.0.3-rtm-125-linux-x64.tar.gz</TimestampRSArchive> - <TimestampFreeRSArchivePrefix>$(_TimestampFreeRSSource)aspnetcore-store-2.0.3-</TimestampFreeRSArchivePrefix> + <TimestampRSArchive>$(_TimestampRSSource)aspnetcore-store-$(PackageVersion)-linux-x64.tar.gz</TimestampRSArchive> + <TimestampFreeRSArchivePrefix>$(_TimestampFreeRSSource)aspnetcore-store-$(PackageVersionNoTimestamp)-</TimestampFreeRSArchivePrefix> <TimestampFreeLinuxRSArchive>$(TimestampFreeRSArchivePrefix)linux-x64.tar.gz</TimestampFreeLinuxRSArchive> </PropertyGroup> @@ -47,7 +47,7 @@ <Error Text="Non-timestamp linux archive not found. Expected it to exist in $(TimestampFreeLinuxRSArchive)." Condition="!Exists('$(TimestampFreeLinuxRSArchive)')" /> - <!-- <Error + <Error Text="Non-timestamp osx archive not found. Expected it to exist in $(TimestampFreeRSArchivePrefix)osx-x64.tar.gz." Condition="!Exists('$(TimestampFreeRSArchivePrefix)osx-x64.tar.gz')" /> <Error @@ -55,7 +55,7 @@ Condition="!Exists('$(TimestampFreeRSArchivePrefix)win7-x64.zip')" /> <Error Text="Non-timestamp winx86 archive not found. Expected it to exist in $(TimestampFreeRSArchivePrefix)win7-x86.zip." - Condition="!Exists('$(TimestampFreeRSArchivePrefix)win7-x86.zip')" /> --> + Condition="!Exists('$(TimestampFreeRSArchivePrefix)win7-x86.zip')" /> </Target> <Target Name="_EnsureInstallerDirectory" > @@ -71,8 +71,8 @@ MSBuild doesn't to the substitution correctly because the string contains %, so we'll let bash do it instead. --> - <Exec Command="curl --fail -sSL "$(RuntimeTargzLink)" -o $(_InstallerSource)dotnet-runtime-$(MicrosoftNETCoreApp20PackageVersion)-linux-x64.tar.gz" /> - <Exec Command="curl --fail -sSL "$(RuntimeStore200LinkPrefix)linux.tar.gz" -o $(_InstallerSource)Build.RS.linux.tar.gz" /> + <Exec Command="curl --fail -sSL "$(RuntimeTargzLink)$KOREBUILD_DOTNET_FEED_CREDENTIAL" -o $(_InstallerSource)dotnet-runtime-$(MicrosoftNETCoreApp20PackageVersion)-linux-x64.tar.gz" /> + <Exec Command="curl --fail -sSL "$(RuntimeStore20LinkPrefix)linux.tar.gz" -o $(_InstallerSource)Build.RS.linux.tar.gz" /> </Target> <Target Name="_GenerateTargz"> @@ -140,9 +140,9 @@ </Target> <Target Name="_DownloadAdditionalRSZips" DependsOnTargets="_EnsureInstallerDirectory;_DownloadInstallers"> - <Exec Command="curl --fail -sSL "$(RuntimeStore200LinkPrefix)osx.tar.gz" -o $(_InstallerSource)Build.RS.osx.tar.gz" /> - <Exec Command="curl --fail -sSL "$(RuntimeStore200LinkPrefix)winx64.zip" -o $(_InstallerSource)Build.RS.winx64.zip" /> - <Exec Command="curl --fail -sSL "$(RuntimeStore200LinkPrefix)winx86.zip" -o $(_InstallerSource)Build.RS.winx86.zip" /> + <Exec Command="curl --fail -sSL "$(RuntimeStore20LinkPrefix)osx.tar.gz" -o $(_InstallerSource)Build.RS.osx.tar.gz" /> + <Exec Command="curl --fail -sSL "$(RuntimeStore20LinkPrefix)winx64.zip" -o $(_InstallerSource)Build.RS.winx64.zip" /> + <Exec Command="curl --fail -sSL "$(RuntimeStore20LinkPrefix)winx86.zip" -o $(_InstallerSource)Build.RS.winx86.zip" /> </Target> <Target Name="GenerateCumulativeArchives" DependsOnTargets="_EnsureInstallerPrerequisites;_DownloadAdditionalRSZips"> @@ -304,17 +304,17 @@ <RHStoreDirectories Include="$(RHInstallerInstallRoot)store" /> <GenericStoreDirectories Include="$(GenericInstallerInstallRoot)additionalDeps" /> <GenericStoreDirectories Include="$(GenericInstallerInstallRoot)store" /> - <RSDependencies Include="$(RSInstallerName)-2.0.0"> - <Version>2.0.0</Version> + <RSDependencies Include="$(RSInstallerName)-$(RuntimeStoreInstallerDependencyVersion)"> + <Version>$(RuntimeStoreInstallerDependencyVersion)</Version> </RSDependencies> - <HostingDependencies Include="$(RSInstallerName)-2.0.3-rtm-125"> - <Version>2.0.3-rtm-125</Version> + <HostingDependencies Include="$(RSInstallerName)-$(PackageVersion)"> + <Version>$(PackageVersion)</Version> </HostingDependencies> <HostingDependencies Include="dotnet-runtime-$(MicrosoftNETCoreApp20PackageVersion)"> <Version>$(MicrosoftNETCoreApp20PackageVersion)</Version> </HostingDependencies> - <TimestampFreeHostingDependencies Include="$(RSInstallerName)-2.0.3"> - <Version>2.0.3</Version> + <TimestampFreeHostingDependencies Include="$(RSInstallerName)-$(PackageVersionNoTimestamp)"> + <Version>$(PackageVersionNoTimestamp)</Version> </TimestampFreeHostingDependencies> <TimestampFreeHostingDependencies Include="dotnet-runtime-$(MicrosoftNETCoreApp20PackageVersion)"> <Version>$(MicrosoftNETCoreApp20PackageVersion)</Version> @@ -368,18 +368,18 @@ </PropertyGroup> <!-- General Timestamp runtime store --> - <!-- <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(TimestampRSArguments)" /> --> + <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(TimestampRSArguments)" /> <!-- General Timestamp free runtime store --> - <!-- <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(TimestampFreeRSArguments)" /> --> + <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(TimestampFreeRSArguments)" /> <!-- General Timestamp hosting bundle --> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(TimestampHostingArguments)" /> <!-- General Timestamp free hosting bundle --> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(TimestampFreeHostingArguments)" /> <!-- RH Timestamp runtime store --> - <!-- <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(RHTimestampRSArguments)" /> --> + <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(RHTimestampRSArguments)" /> <!-- RH Timestamp free runtime store --> - <!-- <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(RHTimestampFreeRSArguments)" /> --> + <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(RHTimestampFreeRSArguments)" /> <!-- RH Timestamp hosting bundle --> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateRpm" Properties="$(RHTimestampHostingArguments)" /> <!-- RH Timestamp free hosting bundle --> @@ -409,7 +409,7 @@ <ItemGroup> <DebConfigItems Include="DOTNET_VERSION" Replacement="$(DotnetVersion)" /> <DebConfigItems Include="DEB_VERSION" Replacement="$(DebVersion)" /> - <DebConfigItems Include="STORE_VERSION" Replacement="$(StoreVersion)" /> + <DebConfigItems Include="RS_DEP_VERSION" Replacement="$(RsDepVersion)" /> </ItemGroup> <!-- Update versions --> @@ -462,22 +462,22 @@ <!-- Build Docker Image --> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_BuildDockerImage" Properties="Image=$(Image)" /> - <!-- <MSBuild + <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDeb" - Properties="$(CommonRSArguments);RSArchive=$(TimestampRSArchive);DebVersion=$(Version)" /> + Properties="$(CommonRSArguments);RSArchive=$(TimestampRSArchive);DebVersion=$(Version);RsDepVersion=$(RuntimeStoreInstallerDependencyVersion)" /> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDeb" - Properties="$(CommonRSArguments);RSArchive=$(TimestampFreeLinuxRSArchive);DebVersion=$(PackageVersionNoTimestamp)" /> --> + Properties="$(CommonRSArguments);RSArchive=$(TimestampFreeLinuxRSArchive);DebVersion=$(PackageVersionNoTimestamp);RsDepVersion=$(RuntimeStoreInstallerDependencyVersion)" /> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDeb" - Properties="$(CommonHostingArguments);DebVersion=$(Version);StoreVersion=2.0.3-rtm-125" /> + Properties="$(CommonHostingArguments);DebVersion=$(Version)" /> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDeb" - Properties="$(CommonHostingArguments);DebVersion=$(PackageVersionNoTimestamp);StoreVersion=2.0.3" /> + Properties="$(CommonHostingArguments);DebVersion=$(PackageVersionNoTimestamp)" /> <!-- Remove Docker Image to save disk space --> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_RemoveDockerImage" Properties="Image=$(Image)" /> @@ -491,7 +491,6 @@ <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDebOnPlatform" Properties="$(CommonArguments);Image=debian.8" /> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDebOnPlatform" Properties="$(CommonArguments);Image=ubuntu.14.04" /> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDebOnPlatform" Properties="$(CommonArguments);Image=ubuntu.16.04" /> - <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateDebOnPlatform" Properties="$(CommonArguments);Image=ubuntu.16.10" /> </Target> <Target Name="RunDebTool"> diff --git a/build/Templating.targets b/build/Templating.targets index d7592be916..24dc7eef78 100644 --- a/build/Templating.targets +++ b/build/Templating.targets @@ -11,6 +11,7 @@ DotNetRestoreSourcesPropsPath=$(GeneratedRestoreSourcesPropsPath); BuildNumber=$(BuildNumber); Configuration=$(Configuration); + SkipBillOfMaterials=true; </TemplateProjCommmonProperties> <TemplateProjProperties> $(TemplateProjCommmonProperties); @@ -26,7 +27,7 @@ <!-- Produce regular, timestamped templates for pre-release builds --> <MSBuild Projects="$(MSBuildProjectFullPath)" - Targets="Restore;Compile;Package" + Targets="CleanArtifacts;Restore;Compile;Package" Properties="$(TemplateProjProperties)" /> <ItemGroup> @@ -55,7 +56,7 @@ <!-- Rebuild the templates without restoring. (The non-timestamped packages don't exist yet.) --> <MSBuild Projects="$(MSBuildProjectFullPath)" - Targets="Prepare;Compile;Package" + Targets="CleanArtifacts;Prepare;Compile;Package" Properties="$(TemplateProjNoTimestampProperties);NoRestore=true" /> <ItemGroup> diff --git a/build/artifacts.props b/build/artifacts.props index 0564ae2f0b..f52c802dbe 100644 --- a/build/artifacts.props +++ b/build/artifacts.props @@ -10,67 +10,6 @@ </ItemDefinitionGroup> <ItemGroup> - <PackageArtifact Include="Microsoft.AspNet.Identity.AspNetCoreCompat" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.All" Category="ship" LZMA="true" /> - <PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Category="ship" Metapackage="true" RuntimeStore="true" HostingStartup="true" /> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Cookies" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Core" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Facebook" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Google" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.JwtBearer" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.OAuth" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Twitter" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authentication" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authorization.Policy" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Authorization" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Category="ship" Metapackage="true" RuntimeStore="true" HostingStartup="true" /> - <PackageArtifact Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Category="ship" /> - <PackageArtifact Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Buffering" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Certificates.Configuration.Sources" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.ChunkingCookieManager.Sources" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.CookiePolicy" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Cors" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Cryptography.Internal" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.AzureStorage" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Extensions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Redis" Category="ship" /> - <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.SystemWeb" Category="ship" /> - <PackageArtifact Include="Microsoft.AspNetCore.DataProtection" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Elm" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Identity.Service" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Hosting.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Hosting.WindowsServices" Category="ship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Hosting" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Http.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Http.Extensions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Http.Features" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Http" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.HttpOverrides" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.Abstractions" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.AzureKeyVault" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.Core" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.EntityFrameworkCore" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.IntegratedWebClient" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.Mvc" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.Specification.Tests" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Service" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity.Specification.Tests" Category="ship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Identity" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Localization.Routing" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Localization" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Core" Category="ship" Metapackage="true" RuntimeStore="true"/> @@ -79,7 +18,6 @@ <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Localization" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.RazorPages" Category="ship" Metapackage="true" RuntimeStore="true"/> @@ -90,65 +28,11 @@ <PackageArtifact Include="Microsoft.AspNetCore.Mvc" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.NodeServices.Sockets" Category="noship" /> <PackageArtifact Include="Microsoft.AspNetCore.NodeServices" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Owin" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Proxy" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.RangeHelper.Sources" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Razor.Language" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Razor.Runtime" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Razor.TagHelpers.Testing.Sources" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Razor" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.ResponseCompression" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Rewrite" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Routing.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Routing.DecisionTree.Sources" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Routing" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Server.HttpSys" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Server.IISIntegration" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Server.IntegrationTesting" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Core" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Https" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" Category="noship" /> - <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.Session" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.SpaServices" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.AspNetCore.SpaTemplates" Category="ship" /> - <PackageArtifact Include="Microsoft.AspNetCore.StaticFiles" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.TestHost" Category="ship" /> - <PackageArtifact Include="Microsoft.AspNetCore.WebSockets" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore.WebUtilities" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.AspNetCore" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.CodeAnalysis.Razor.Workspaces" Category="shipoob" /> - <PackageArtifact Include="Microsoft.CodeAnalysis.Razor" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.CodeAnalysis.Remote.Razor" Category="shipoob" /> - <PackageArtifact Include="Microsoft.DotNet.Web.Client.ItemTemplates" Category="shipoob" /> <PackageArtifact Include="Microsoft.DotNet.Web.ItemTemplates" Category="shipoob" /> <PackageArtifact Include="Microsoft.DotNet.Web.ProjectTemplates.2.0" Category="shipoob" /> <PackageArtifact Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Category="shipoob" /> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Design" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.InMemory" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Relational.Design.Specification.Tests" Category="ship" /> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Category="ship" /> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Relational" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Specification.Tests" Category="ship" /> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.SqlServer" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Category="ship" LZMATools="true" /> - <PackageArtifact Include="Microsoft.EntityFrameworkCore.Tools" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.EntityFrameworkCore" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.Extensions.Hosting.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.Extensions.Identity.Core" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.Extensions.Identity.Stores" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.Extensions.Localization.Abstractions" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.Extensions.Localization" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.Net.Http.Headers" Category="ship" Metapackage="true" RuntimeStore="true"/> - <PackageArtifact Include="Microsoft.Owin.Security.Interop" Category="ship" /> - <PackageArtifact Include="Microsoft.VisualStudio.LanguageServices.Razor" Category="shipoob" /> - <PackageArtifact Include="Microsoft.VisualStudio.Web.BrowserLink" Category="ship" Metapackage="true" RuntimeStore="true"/> <PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Contracts" Category="ship" /> <PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Core" Category="ship" /> <PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Category="ship" LZMA="true" /> @@ -158,7 +42,5 @@ <PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Category="ship" /> <PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration" Category="ship" /> <PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Category="ship" /> - <PackageArtifact Include="Microsoft.Web.Xdt.Extensions" Category="shipoob" /> - <PackageArtifact Include="RazorPageGenerator" Category="noship" /> </ItemGroup> </Project> diff --git a/build/dependencies.props b/build/dependencies.props index d262b69550..3ba89f2c4d 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -25,57 +25,71 @@ </ExternalDependency> </ItemDefinitionGroup> + <PropertyGroup> + <MicrosoftNETCoreApp10PackageVersion>1.0.8</MicrosoftNETCoreApp10PackageVersion> + <MicrosoftNETCoreApp11PackageVersion>1.1.5</MicrosoftNETCoreApp11PackageVersion> + <LZMAMicrosoftNETCoreApp20PackageVersion>2.0.0</LZMAMicrosoftNETCoreApp20PackageVersion> + <MicrosoftNETCoreApp20PackageVersion>2.0.5</MicrosoftNETCoreApp20PackageVersion> + </PropertyGroup> + <!-- .NET Core feed --> <PropertyGroup> <DotNetCoreFeed>https://dotnet.myget.org/F/dotnet-core/api/v3/index.json</DotNetCoreFeed> - <CoreSetupPackageVersion>2.0.2-servicing-25728-02</CoreSetupPackageVersion> - <MicrosoftNETCorePlatformsPackageVersion>2.0.0</MicrosoftNETCorePlatformsPackageVersion> - <MicrosoftNETCoreApp20PackageVersion>$(CoreSetupPackageVersion)</MicrosoftNETCoreApp20PackageVersion> </PropertyGroup> <ItemGroup> - <ExternalDependency Include="System.Memory" Version="4.4.0-preview3-25519-03" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="Microsoft.NETCore.Platforms" Version="$(MicrosoftNETCorePlatformsPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="Microsoft.DotNet.PlatformAbstractions" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="Microsoft.Extensions.DependencyModel" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="Microsoft.NETCore.App" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" > + <ExternalDependency Include="System.Memory" Version="4.4.0-preview3-25519-03" Source="$(DotNetCoreFeed)" Mirror="false" Private="true" /> + </ItemGroup> + + <!-- .NET Core patch feed --> + <PropertyGroup> + <DotNetCorePatchFeed Condition="'$(DotNetCorePatchFeed)' == ''">https://dotnet.myget.org/F/dotnet-core/api/v3/index.json</DotNetCorePatchFeed> + </PropertyGroup> + + <ItemGroup> + <ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true"> + <NoWarn>KRB2004</NoWarn> <VariableName>RuntimeFrameworkVersion</VariableName> <TargetFramework>netcoreapp2.0</TargetFramework> </ExternalDependency> - <ExternalDependency Include="Microsoft.NETCore.DotNetAppHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="Microsoft.NETCore.DotNetHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="Microsoft.NETCore.DotNetHostPolicy" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="Microsoft.NETCore.DotNetHostResolver" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.App" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetAppHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.App" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetAppHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.App" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetAppHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.App" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetAppHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.App" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetAppHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.App" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetAppHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetHost" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> - <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" Version="$(CoreSetupPackageVersion)" Source="$(DotNetCoreFeed)" Mirror="true" /> + <ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)"> + <NoWarn>KRB2004</NoWarn> + <VariableName>MicrosoftNETCoreApp20PackageVersion</VariableName> + </ExternalDependency> + <ExternalDependency Include="Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="Microsoft.NETCore.DotNetHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="Microsoft.NETCore.DotNetHostPolicy" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.rhel.6-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x64.Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetHost" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> + <ExternalDependency Include="runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreApp20PackageVersion)" Source="$(DotNetCorePatchFeed)" Mirror="true" /> </ItemGroup> <!-- ASP.NET Core Tools feed --> @@ -130,7 +144,7 @@ <!-- ASP.NET Core Tools feed --> <PropertyGroup> <AspNetCoreToolsFeed>https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json</AspNetCoreToolsFeed> - <InternalAspNetCoreSdkPackageVersion>2.0.2-rc1-16007</InternalAspNetCoreSdkPackageVersion> + <InternalAspNetCoreSdkPackageVersion>$(KoreBuildVersion)</InternalAspNetCoreSdkPackageVersion> </PropertyGroup> <ItemGroup> @@ -153,6 +167,33 @@ </PropertyGroup> <ItemGroup> + <ExternalDependency Include="Microsoft.NETCore.Platforms" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.DotNet.PlatformAbstractions" Version="2.0.3" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.Extensions.DependencyModel" Version="2.0.3" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp10PackageVersion)" Source="$(DefaultNuGetFeed)"> + <NoWarn>KRB2004</NoWarn> + <VariableName>RuntimeFrameworkVersion</VariableName> + <TargetFramework>netcoreapp1.0</TargetFramework> + </ExternalDependency> + <ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp10PackageVersion)" Source="$(DefaultNuGetFeed)"> + <NoWarn>KRB2004</NoWarn> + <VariableName>MicrosoftNETCoreApp10PackageVersion</VariableName> + </ExternalDependency> + <ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp11PackageVersion)" Source="$(DefaultNuGetFeed)"> + <NoWarn>KRB2004</NoWarn> + <VariableName>RuntimeFrameworkVersion</VariableName> + <TargetFramework>netcoreapp1.1</TargetFramework> + </ExternalDependency> + <ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp11PackageVersion)" Source="$(DefaultNuGetFeed)"> + <NoWarn>KRB2004</NoWarn> + <VariableName>MicrosoftNETCoreApp11PackageVersion</VariableName> + </ExternalDependency> + <!-- This should remain hard-coded to 2.0.0. DotNetCliTool packages should use the 2.0.0 package so ensure maximum compatibility with most CLI installations. --> + <ExternalDependency Include="Microsoft.NETCore.App" Version="2.0.0" Source="$(DefaultNuGetFeed)"> + <NoWarn>KRB2004</NoWarn> + <VariableName>DotNetCliTool_MicrosoftNETCoreApp20PackageVersion</VariableName> + <TargetFramework>netcoreapp2.0</TargetFramework> + </ExternalDependency> <ExternalDependency Include="Libuv" Version="1.10.0" Source="$(DefaultNuGetFeed)" /> <ExternalDependency Include="BenchmarkDotNet" Version="0.10.3" Source="$(DefaultNuGetFeed)" Private="true"/> <ExternalDependency Include="EntityFramework" Version="6.1.3" Source="$(DefaultNuGetFeed)" Private="true" /> @@ -250,7 +291,7 @@ <ExternalDependency Include="System.Reflection.Metadata" Version="1.5.0" Source="$(DefaultNuGetFeed)"/> <ExternalDependency Include="System.Runtime.CompilerServices.Unsafe" Version="4.4.0" Source="$(DefaultNuGetFeed)"/> <ExternalDependency Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" Source="$(DefaultNuGetFeed)" /> - <ExternalDependency Include="System.Security.Cryptography.Xml" Version="4.4.0" Source="$(DefaultNuGetFeed)"/> + <ExternalDependency Include="System.Security.Cryptography.Xml" Version="4.4.0" Source="$(DefaultNuGetFeed)" /> <ExternalDependency Include="System.Security.Principal.Windows" Version="4.4.0" Source="$(DefaultNuGetFeed)" /> <ExternalDependency Include="System.Text.Encodings.Web" Version="4.4.0" Source="$(DefaultNuGetFeed)" /> <ExternalDependency Include="System.Threading.Tasks.Dataflow" Version="4.8.0" Source="$(DefaultNuGetFeed)"/> @@ -290,6 +331,115 @@ not building again in this patch. --> <!-- Shipped dependencies from previous builds --> + + <!-- 2.0.1 --> + <ItemGroup> + <ExternalDependency Include="Microsoft.AspNetCore.Antiforgery" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true" HostingStartup="true" /> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.Core" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.Facebook" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.Google" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.OAuth" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication.Twitter" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authentication" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authorization.Policy" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Authorization" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true" HostingStartup="true" /> + <ExternalDependency Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.CookiePolicy" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Cors" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Cryptography.Internal" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.DataProtection.Extensions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.DataProtection.Redis" Version="0.3.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.AspNetCore.DataProtection.SystemWeb" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.AspNetCore.DataProtection" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Diagnostics.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Diagnostics" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Hosting.WindowsServices" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.AspNetCore.Hosting" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Http.Extensions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Http.Features" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Http" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.HttpOverrides" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Identity.Specification.Tests" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.AspNetCore.Identity" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Localization.Routing" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Localization" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.MiddlewareAnalysis" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Owin" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Razor.Language" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Razor.Runtime" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Razor" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.ResponseCaching" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.ResponseCompression" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Rewrite" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Routing.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Routing" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Server.HttpSys" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Server.Kestrel.Core" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.Session" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.TestHost" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.AspNetCore.WebSockets" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore.WebUtilities" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.AspNetCore" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.CodeAnalysis.Razor" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Relational.Design.Specification.Tests" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Relational" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Specification.Tests" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" Source="$(DefaultNuGetFeed)" LZMATools="true" /> + <ExternalDependency Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.EntityFrameworkCore" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.Extensions.Identity.Core" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.Extensions.Identity.Stores" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.Extensions.Localization.Abstractions" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.Extensions.Localization" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.Net.Http.Headers" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + <ExternalDependency Include="Microsoft.Owin.Security.Interop" Version="2.0.1" Source="$(DefaultNuGetFeed)" /> + <ExternalDependency Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.1" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> + </ItemGroup> + +<!-- Shipoob packages from the previous build --> +<!-- +<PackageArtifact Include="Microsoft.CodeAnalysis.Razor.Workspaces" Category="shipoob" /> +<PackageArtifact Include="Microsoft.CodeAnalysis.Remote.Razor" Category="shipoob" /> +<PackageArtifact Include="Microsoft.DotNet.Web.Client.ItemTemplates" Category="shipoob" /> +<PackageArtifact Include="Microsoft.DotNet.Web.ItemTemplates" Category="shipoob" /> +<PackageArtifact Include="Microsoft.DotNet.Web.ProjectTemplates.2.0" Category="shipoob" /> +<PackageArtifact Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Category="shipoob" /> +<PackageArtifact Include="Microsoft.VisualStudio.LanguageServices.Razor" Category="shipoob" /> +<PackageArtifact Include="Microsoft.Web.Xdt.Extensions" Category="shipoob" /> + --> + + <!-- 2.0.0 --> <ItemGroup> <ExternalDependency Include="Microsoft.AspNetCore.Html.Abstractions" Version="2.0.0" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> <ExternalDependency Include="Microsoft.AspNetCore.JsonPatch" Version="2.0.0" Source="$(DefaultNuGetFeed)" Metapackage="true" RuntimeStore="true"/> @@ -338,9 +488,24 @@ not building again in this patch. <!-- Non-shipped dependencies from previous builds --> <PropertyGroup> - <AspNetCoreMasterFeed>https://dotnet.myget.org/F/aspnetcore-master/api/v3/index.json</AspNetCoreMasterFeed> + <AspNetCoreOct2017Patch>https://dotnet.myget.org/F/aspnet-2-0-2-october2017-patch-public/api/v3/index.json</AspNetCoreOct2017Patch> </PropertyGroup> + <!-- 2.0.1 --> + <ItemGroup> + <ExternalDependency Include="Microsoft.AspNetCore.Certificates.Configuration.Sources" Version="2.0.1-rtm-207" Source="$(AspNetCoreOct2017Patch)" Private="true" Mirror="true" /> + <ExternalDependency Include="Microsoft.AspNetCore.ChunkingCookieManager.Sources" Version="2.0.1-rtm-207" Source="$(AspNetCoreOct2017Patch)" Private="true" Mirror="true" /> + <ExternalDependency Include="Microsoft.AspNetCore.RangeHelper.Sources" Version="2.0.1-rtm-207" Source="$(AspNetCoreOct2017Patch)" Private="true" Mirror="true" /> + <ExternalDependency Include="Microsoft.AspNetCore.Razor.TagHelpers.Testing.Sources" Version="2.0.1-rtm-207" Source="$(AspNetCoreOct2017Patch)" Private="true" Mirror="true" /> + <ExternalDependency Include="Microsoft.AspNetCore.Routing.DecisionTree.Sources" Version="2.0.1-rtm-207" Source="$(AspNetCoreOct2017Patch)" Private="true" Mirror="true" /> + <ExternalDependency Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="0.4.1-rtm-207" Source="$(AspNetCoreOct2017Patch)" Private="true" Mirror="true" /> + <ExternalDependency Include="RazorPageGenerator" Version="2.0.1-rtm-207" Source="$(AspNetCoreOct2017Patch)" Private="true" Mirror="true" /> + </ItemGroup> + + <PropertyGroup> + <AspNetCoreMasterFeed>https://dotnet.myget.org/F/aspnetcore-master/api/v3/index.json</AspNetCoreMasterFeed> + </PropertyGroup> + <!-- 2.0.0 --> <ItemGroup> <ExternalDependency Include="Microsoft.AspNetCore.Testing" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" /> <ExternalDependency Include="Microsoft.Extensions.ActivatorUtilities.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" /> diff --git a/build/repo.props b/build/repo.props index 180925e696..2e60df02b8 100644 --- a/build/repo.props +++ b/build/repo.props @@ -2,6 +2,8 @@ <PropertyGroup> <!-- This repo does not have solutions to build --> <DisableDefaultTargets>true</DisableDefaultTargets> + <!-- Skip BOM generation --> + <SkipBillOfMaterials>true</SkipBillOfMaterials> </PropertyGroup> <Import Project="artifacts.props" /> diff --git a/build/repo.targets b/build/repo.targets index c4042084bc..788f91ad93 100644 --- a/build/repo.targets +++ b/build/repo.targets @@ -20,11 +20,11 @@ <GeneratedPackageVersionPropsPath>$(IntermediateDir)dependencies.props</GeneratedPackageVersionPropsPath> <GeneratedRestoreSourcesPropsPath>$(IntermediateDir)sources.props</GeneratedRestoreSourcesPropsPath> - <PrepareDependsOn>$(PrepareDependsOn);PrepareOutputPath</PrepareDependsOn> + <PrepareDependsOn>$(PrepareDependsOn);VerifyPackageArtifactConfig;PrepareOutputPath</PrepareDependsOn> <CleanDependsOn>$(CleanDependsOn);CleanArtifacts;CleanUniverseArtifacts</CleanDependsOn> <RestoreDependsOn>$(RestoreDependsOn);RestoreExternalDependencies</RestoreDependsOn> <CompileDependsOn>$(CompileDependsOn);BuildRepositories</CompileDependsOn> - <PackageDependsOn>$(PackageDependsOn);BuildAllMetapackage;BuildTemplates;SplitPackages</PackageDependsOn> + <PackageDependsOn>$(PackageDependsOn);BuildTemplates;SplitPackages</PackageDependsOn> <VerifyDependsOn>$(VerifyDependsOn);VerifyCoherentVersions</VerifyDependsOn> </PropertyGroup> @@ -107,10 +107,18 @@ </MSBuild> <MSBuild Projects="$(MSBuildProjectFullPath)" + Targets="GetArtifactInfo" + Properties="RepositoryRoot=$(TemplatingProjectRoot);Configuration=$(Configuration);BuildNumber=$(BuildNumber)" + ContinueOnError="WarnAndContinue"> + <Output TaskParameter="TargetOutputs" ItemName="ArtifactInfo" /> + </MSBuild> + + <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="ResolveSolutions" Properties="RepositoryRoot=%(Repository.RootPath);Configuration=$(Configuration);BuildNumber=$(BuildNumber)" ContinueOnError="WarnAndContinue"> - <Output TaskParameter="TargetOutputs" ItemName="Solution" /> + <Output TaskParameter="TargetOutputs" ItemName="Solution" Condition="'%(Repository.Build)' == 'true'" /> + <Output TaskParameter="TargetOutputs" ItemName="_NoBuildSolution" Condition="'%(Repository.Build)' != 'true'" /> </MSBuild> <!-- @@ -127,19 +135,35 @@ Targets="ResolveSolutions" Properties="RepositoryRoot=%(ShippedRepository.RootPath);Configuration=$(Configuration);BuildNumber=$(BuildNumber)" ContinueOnError="WarnAndContinue"> - <Output TaskParameter="TargetOutputs" ItemName="_NoBuildSolution" /> + <Output TaskParameter="TargetOutputs" ItemName="_ShippedSolution" /> </MSBuild> <ItemGroup> <Solution Update="@(Solution)" Build="true" /> + <_ShippedSolution Update="@(_ShippedSolution)" Build="false" Shipped="true" /> <_NoBuildSolution Update="@(_NoBuildSolution)" Build="false" /> - <Solution Include="@(_NoBuildSolution)" /> + <Solution Include="@(_NoBuildSolution);@(_ShippedSolution)" /> </ItemGroup> <Error Text="No solutions were found in '$(SubmoduleRoot)'" Condition="@(Solution->Count()) == 0" /> </Target> <Target Name="ComputeGraph" DependsOnTargets="ResolveRepoInfo;GeneratePropsFiles"> + + <ItemGroup> + <_UndeclaredPackageArtifact Include="%(ArtifactInfo.PackageId)" Condition="'%(ArtifactInfo.ArtifactType)' == 'NuGetPackage'" /> + <_UndeclaredPackageArtifact Remove="@(PackageArtifact)" /> + </ItemGroup> + + <Error Text="Undeclared package artifacts. Add these to artifacts.props:%0A - @(_UndeclaredPackageArtifact, '%0A - ')" + Condition=" @(_UndeclaredPackageArtifact->Count()) != 0 " /> + + <RepoTasks.CheckRepoGraph + Solutions="@(Solution)" + Artifacts="@(ArtifactInfo);@(ShippedArtifactInfo)" + Repositories="@(Repository);@(ShippedRepository)" + Properties="Configuration=$(Configuration);BuildNumber=$(BuildNumber);DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)" /> + <RepoTasks.AnalyzeBuildGraph Solutions="@(Solution)" Artifacts="@(ArtifactInfo)" @@ -164,6 +188,20 @@ Overwrite="true" /> </Target> + <Target Name="VerifyPackageArtifactConfig"> + <Error Text="Invalid configuration of %(PackageArtifact.Identity). PackageArtifact must have the 'Category' metadata." + Condition="'%(PackageArtifact.Category)' == '' " /> + + <Error Text="Invalid configuration of %(PackageArtifact.Identity). Packages marked as Metapackage='true' must be Category='ship'." + Condition="'%(PackageArtifact.Category)' != 'ship' AND '%(PackageArtifact.Metapackage)' == 'true' " /> + + <Error Text="Invalid configuration of %(PackageArtifact.Identity). Packages marked as LZMA='true' must be Category='ship'." + Condition="'%(PackageArtifact.Category)' != 'ship' AND '%(PackageArtifact.LZMA)' == 'true' " /> + + <Error Text="Invalid configuration of %(PackageArtifact.Identity). Packages marked as LZMATools='true' must be Category='ship'." + Condition="'%(PackageArtifact.Category)' != 'ship' AND '%(PackageArtifact.LZMATools)' == 'true' " /> + </Target> + <Target Name="VerifyCoherentVersions" DependsOnTargets="ResolveRepoInfo"> <ItemGroup> <ShippingPackageFiles Include="$(ArtifactsDir)ship\*.nupkg" /> diff --git a/build/submodules.props b/build/submodules.props index fb0ebcca81..6c6e81fe60 100644 --- a/build/submodules.props +++ b/build/submodules.props @@ -1,53 +1,59 @@ <Project> + <ItemDefinitionGroup> + <Repository> + <Build>true</Build> + </Repository> + </ItemDefinitionGroup> + <ItemGroup> <!-- Repos being patched --> - <Repository Include="Antiforgery" /> - <Repository Include="AzureIntegration" /> - <Repository Include="BasicMiddleware" /> - <Repository Include="BrowserLink" /> - <Repository Include="CORS" /> - <Repository Include="DataProtection" /> - <Repository Include="Diagnostics" /> - <Repository Include="EntityFrameworkCore" /> - <Repository Include="Hosting" /> - <Repository Include="HttpAbstractions" /> - <Repository Include="HttpSysServer" /> - <Repository Include="Identity" /> - <Repository Include="IISIntegration" /> <Repository Include="JavaScriptServices" /> - <Repository Include="KestrelHttpServer" /> - <Repository Include="Localization" /> - <Repository Include="MetaPackages" /> <Repository Include="Mvc" /> <Repository Include="MvcPrecompilation" /> - <Repository Include="Proxy" /> - <Repository Include="Razor" /> - <Repository Include="ResponseCaching" /> - <Repository Include="Routing" /> <Repository Include="Scaffolding" /> - <Repository Include="Security" /> - <Repository Include="ServerTests" /> - <Repository Include="Session" /> - <Repository Include="StaticFiles" /> - <Repository Include="WebSockets" /> <!-- Repos not building this patch. Build tools will *verify* that these repos will be unaffected by the patch update and do not need updating. --> + <ShippedRepository Include="Antiforgery" /> + <ShippedRepository Include="AzureIntegration" /> + <ShippedRepository Include="BasicMiddleware" /> + <ShippedRepository Include="BrowserLink" /> <ShippedRepository Include="Caching" /> <ShippedRepository Include="Common" /> <ShippedRepository Include="Configuration" /> + <ShippedRepository Include="CORS" /> + <ShippedRepository Include="DataProtection" /> <ShippedRepository Include="DependencyInjection" /> + <ShippedRepository Include="Diagnostics" /> <ShippedRepository Include="DotNetTools" /> + <ShippedRepository Include="EntityFrameworkCore" /> <ShippedRepository Include="EventNotification" /> <ShippedRepository Include="FileSystem" /> + <ShippedRepository Include="Hosting" /> <ShippedRepository Include="HtmlAbstractions" /> + <ShippedRepository Include="HttpAbstractions" /> + <ShippedRepository Include="HttpSysServer" /> + <ShippedRepository Include="Identity" /> + <ShippedRepository Include="IISIntegration" /> <ShippedRepository Include="JsonPatch" /> + <ShippedRepository Include="KestrelHttpServer" /> + <ShippedRepository Include="Localization" /> <ShippedRepository Include="Logging" /> + <ShippedRepository Include="MetaPackages" /> <ShippedRepository Include="Microsoft.Data.Sqlite" /> <ShippedRepository Include="Options" /> + <ShippedRepository Include="Proxy" /> + <ShippedRepository Include="Razor" /> + <ShippedRepository Include="ResponseCaching" /> + <ShippedRepository Include="Routing" /> + <ShippedRepository Include="Security" /> + <ShippedRepository Include="ServerTests" /> + <ShippedRepository Include="Session" /> + <ShippedRepository Include="StaticFiles" /> <ShippedRepository Include="Testing" /> + <ShippedRepository Include="WebSockets" /> </ItemGroup> </Project> diff --git a/build/tasks/AnalyzeBuildGraph.cs b/build/tasks/AnalyzeBuildGraph.cs index 94710b1aa3..550bca775f 100644 --- a/build/tasks/AnalyzeBuildGraph.cs +++ b/build/tasks/AnalyzeBuildGraph.cs @@ -59,9 +59,12 @@ namespace RepoTasks var factory = new SolutionInfoFactory(Log, BuildEngine5); var props = MSBuildListSplitter.GetNamedProperties(Properties); - Log.LogMessage(MessageImportance.High, $"Beginning cross-repo analysis on {Solutions.Length} solutions. Hang tight..."); + if (!props.TryGetValue("Configuration", out var defaultConfig)) + { + defaultConfig = "Debug"; + } - var solutions = factory.Create(Solutions, props, _cts.Token); + var solutions = factory.Create(Solutions, props, defaultConfig, _cts.Token); Log.LogMessage($"Found {solutions.Count} and {solutions.Sum(p => p.Projects.Count)} projects"); if (_cts.IsCancellationRequested) @@ -137,7 +140,7 @@ namespace RepoTasks continue; } - if (!solution.ShouldBuild) + if (!solution.ShouldBuild && solution.Shipped) { reposThatShouldPatch.Add(Path.GetFileName(Path.GetDirectoryName(solution.FullPath))); } diff --git a/build/tasks/CheckRepoGraph.cs b/build/tasks/CheckRepoGraph.cs new file mode 100644 index 0000000000..5502d7316c --- /dev/null +++ b/build/tasks/CheckRepoGraph.cs @@ -0,0 +1,214 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.IO; +using System.Text; +using System.Threading; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; +using NuGet.Frameworks; +using NuGet.Packaging.Core; +using NuGet.Versioning; +using RepoTools.BuildGraph; +using RepoTasks.ProjectModel; +using RepoTasks.Utilities; + +namespace RepoTasks +{ + public class CheckRepoGraph : Task, ICancelableTask + { + private readonly CancellationTokenSource _cts = new CancellationTokenSource(); + + [Required] + public ITaskItem[] Solutions { get; set; } + + [Required] + public ITaskItem[] Artifacts { get; set; } + + [Required] + public ITaskItem[] Repositories { get; set; } + + [Required] + public string Properties { get; set; } + + public void Cancel() + { + _cts.Cancel(); + } + + public override bool Execute() + { + var packageArtifacts = Artifacts.Select(ArtifactInfo.Parse) + .OfType<ArtifactInfo.Package>() + .Where(p => !p.IsSymbolsArtifact) + .ToDictionary(p => p.PackageInfo.Id, p => p, StringComparer.OrdinalIgnoreCase); + + var factory = new SolutionInfoFactory(Log, BuildEngine5); + var props = MSBuildListSplitter.GetNamedProperties(Properties); + + if (!props.TryGetValue("Configuration", out var defaultConfig)) + { + defaultConfig = "Debug"; + } + + var solutions = factory.Create(Solutions, props, defaultConfig, _cts.Token).OrderBy(f => f.Directory).ToList(); + Log.LogMessage($"Found {solutions.Count} and {solutions.Sum(p => p.Projects.Count)} projects"); + + if (_cts.IsCancellationRequested) + { + return false; + } + + var repoGraph = new AdjacencyMatrix(solutions.Count); + var packageToProjectMap = new Dictionary<PackageIdentity, ProjectInfo>(); + + for (var i = 0; i < solutions.Count; i++) + { + var sln = repoGraph[i] = solutions[i]; + + foreach (var proj in sln.Projects) + { + if (!proj.IsPackable + || proj.FullPath.Contains("samples") + || proj.FullPath.Contains("tools/Microsoft.VisualStudio.Web.CodeGeneration.Design")) + { + continue; + } + + var id = new PackageIdentity(proj.PackageId, new NuGetVersion(proj.PackageVersion)); + + if (packageToProjectMap.TryGetValue(id, out var otherProj)) + { + Log.LogError($"Both {proj.FullPath} and {otherProj.FullPath} produce {id}"); + continue; + } + + packageToProjectMap.Add(id, proj); + } + + var sharedSrc = Path.Combine(sln.Directory, "shared"); + if (Directory.Exists(sharedSrc)) + { + foreach (var dir in Directory.GetDirectories(sharedSrc, "*.Sources")) + { + var id = GetDirectoryName(dir); + var artifactInfo = packageArtifacts[id]; + var sharedSrcProj = new ProjectInfo(dir, + Array.Empty<ProjectFrameworkInfo>(), + Array.Empty<DotNetCliReferenceInfo>(), + true, + artifactInfo.PackageInfo.Id, + artifactInfo.PackageInfo.Version.ToNormalizedString()); + sharedSrcProj.SolutionInfo = sln; + var identity = new PackageIdentity(artifactInfo.PackageInfo.Id, artifactInfo.PackageInfo.Version); + packageToProjectMap.Add(identity, sharedSrcProj); + } + } + } + + if (Log.HasLoggedErrors) + { + return false; + } + + for (var i = 0; i < solutions.Count; i++) + { + var src = repoGraph[i]; + + foreach (var proj in src.Projects) + { + if (!proj.IsPackable + || proj.FullPath.Contains("samples")) + { + continue; + } + + foreach (var dep in proj.Frameworks.SelectMany(f => f.Dependencies.Values)) + { + if (packageToProjectMap.TryGetValue(new PackageIdentity(dep.Id, new NuGetVersion(dep.Version)), out var target)) + { + var j = repoGraph.FindIndex(target.SolutionInfo); + repoGraph.SetLink(i, j); + } + } + + foreach (var toolDep in proj.Tools) + { + if (packageToProjectMap.TryGetValue(new PackageIdentity(toolDep.Id, new NuGetVersion(toolDep.Version)), out var target)) + { + var j = repoGraph.FindIndex(target.SolutionInfo); + repoGraph.SetLink(i, j); + } + } + } + } + + var repos = Repositories.ToDictionary(i => i.ItemSpec, i => i, StringComparer.OrdinalIgnoreCase); + + for (var i = 0; i < repoGraph.Count; i++) + { + var src = repoGraph[i]; + var repoName = GetDirectoryName(src.Directory); + var repo = repos[repoName]; + + for (var j = 0; j < repoGraph.Count; j++) + { + if (j == i) continue; + if (repoGraph.HasLink(i, j)) + { + var target = repoGraph[j]; + var targetRepoName = GetDirectoryName(target.Directory); + var targetRepo = repos[targetRepoName]; + + if (src.Shipped && !target.Shipped) + { + Log.LogError($"{repoName} cannot depend on {targetRepoName}. Repos marked as 'Shipped' cannot depend on repos that are rebuilding. Update the configuration in submodule.props."); + } + } + } + } + + return !Log.HasLoggedErrors; + } + + private static string GetDirectoryName(string path) + => Path.GetFileName(path.TrimEnd(new[] { '\\', '/' })); + + private class AdjacencyMatrix + { + private readonly bool[,] _matrix; + private readonly SolutionInfo[] _items; + + public AdjacencyMatrix(int size) + { + _matrix = new bool[size, size]; + _items = new SolutionInfo[size]; + Count = size; + } + + public SolutionInfo this[int idx] + { + get => _items[idx]; + set => _items[idx] = value; + } + + public int FindIndex(SolutionInfo item) + { + return Array.FindIndex(_items, t => t.Equals(item)); + } + + public int Count { get; } + + public bool HasLink(int source, int target) => _matrix[source, target]; + + public void SetLink(int source, int target) + { + _matrix[source, target] = true; + } + } + } +} diff --git a/build/tasks/ComposeNewStore.cs b/build/tasks/ComposeNewStore.cs index 90f601e0a2..2ad23089d2 100644 --- a/build/tasks/ComposeNewStore.cs +++ b/build/tasks/ComposeNewStore.cs @@ -17,19 +17,15 @@ namespace RepoTasks [Required] public ITaskItem[] NewManifests { get; set; } - [Required] public ITaskItem[] RuntimeStoreFiles { get; set; } - [Required] public ITaskItem[] RuntimeStoreSymbolFiles { get; set; } [Required] public string ManifestDestination { get; set; } - [Required] public string StoreDestination { get; set; } - [Required] public string SymbolsDestination { get; set; } public override bool Execute() @@ -58,45 +54,51 @@ namespace RepoTasks } } - // Insert new runtime store files - foreach (var storeFile in RuntimeStoreFiles) + if (RuntimeStoreFiles != null) { - // format: {bitness}}/{tfm}}/{id}/{version}}/... - var recursiveDir = storeFile.GetMetadata("RecursiveDir"); - var components = recursiveDir.Split(Path.DirectorySeparatorChar); - var id = components[2]; - var version = components[3]; - - if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version)) + // Insert new runtime store files + foreach (var storeFile in RuntimeStoreFiles) { - var destinationDir = Path.Combine(StoreDestination, recursiveDir); - if (!Directory.Exists(Path.Combine(StoreDestination, recursiveDir))) + // format: {bitness}}/{tfm}}/{id}/{version}}/... + var recursiveDir = storeFile.GetMetadata("RecursiveDir"); + var components = recursiveDir.Split(Path.DirectorySeparatorChar); + var id = components[2]; + var version = components[3]; + + if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version)) { - Directory.CreateDirectory(destinationDir); - } + var destinationDir = Path.Combine(StoreDestination, recursiveDir); + if (!Directory.Exists(Path.Combine(StoreDestination, recursiveDir))) + { + Directory.CreateDirectory(destinationDir); + } - File.Copy(storeFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{storeFile.GetMetadata("Filename")}{storeFile.GetMetadata("Extension")}"), overwrite: true); + File.Copy(storeFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{storeFile.GetMetadata("Filename")}{storeFile.GetMetadata("Extension")}"), overwrite: true); + } } } - // Insert new runtime store files - foreach (var symbolFile in RuntimeStoreSymbolFiles) + if (RuntimeStoreSymbolFiles != null) { - // format: {bitness}}/{tfm}}/{id}/{version}}/... - var recursiveDir = symbolFile.GetMetadata("RecursiveDir"); - var components = recursiveDir.Split(Path.DirectorySeparatorChar); - var id = components[2]; - var version = components[3]; - - if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version)) + // Insert new runtime store symbol files + foreach (var symbolFile in RuntimeStoreSymbolFiles) { - var destinationDir = Path.Combine(SymbolsDestination, recursiveDir); - if (!Directory.Exists(Path.Combine(SymbolsDestination, recursiveDir))) + // format: {bitness}}/{tfm}}/{id}/{version}}/... + var recursiveDir = symbolFile.GetMetadata("RecursiveDir"); + var components = recursiveDir.Split(Path.DirectorySeparatorChar); + var id = components[2]; + var version = components[3]; + + if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version)) { - Directory.CreateDirectory(destinationDir); - } + var destinationDir = Path.Combine(SymbolsDestination, recursiveDir); + if (!Directory.Exists(Path.Combine(SymbolsDestination, recursiveDir))) + { + Directory.CreateDirectory(destinationDir); + } - File.Copy(symbolFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{symbolFile.GetMetadata("Filename")}{symbolFile.GetMetadata("Extension")}"), overwrite: true); + File.Copy(symbolFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{symbolFile.GetMetadata("Filename")}{symbolFile.GetMetadata("Extension")}"), overwrite: true); + } } } diff --git a/build/tasks/ProjectModel/ProjectInfo.cs b/build/tasks/ProjectModel/ProjectInfo.cs index 1dd4339185..9aed38898b 100644 --- a/build/tasks/ProjectModel/ProjectInfo.cs +++ b/build/tasks/ProjectModel/ProjectInfo.cs @@ -10,7 +10,6 @@ namespace RepoTasks.ProjectModel internal class ProjectInfo { public ProjectInfo(string fullPath, - string projectExtensionsPath, IReadOnlyList<ProjectFrameworkInfo> frameworks, IReadOnlyList<DotNetCliReferenceInfo> tools, bool isPackable, @@ -28,7 +27,6 @@ namespace RepoTasks.ProjectModel FullPath = fullPath; FileName = Path.GetFileName(fullPath); Directory = Path.GetDirectoryName(FullPath); - ProjectExtensionsPath = projectExtensionsPath ?? Path.Combine(Directory, "obj"); IsPackable = isPackable; PackageId = packageId; PackageVersion = packageVersion; @@ -36,7 +34,6 @@ namespace RepoTasks.ProjectModel public string FullPath { get; } public string FileName { get; } - public string ProjectExtensionsPath { get; } public string Directory { get; } public string PackageId { get; } public string PackageVersion { get; } @@ -44,5 +41,6 @@ namespace RepoTasks.ProjectModel public IReadOnlyList<ProjectFrameworkInfo> Frameworks { get; } public IReadOnlyList<DotNetCliReferenceInfo> Tools { get; } + public SolutionInfo SolutionInfo { get; internal set; } } } diff --git a/build/tasks/ProjectModel/ProjectInfoFactory.cs b/build/tasks/ProjectModel/ProjectInfoFactory.cs index 5c739f1784..78d5adc5fd 100644 --- a/build/tasks/ProjectModel/ProjectInfoFactory.cs +++ b/build/tasks/ProjectModel/ProjectInfoFactory.cs @@ -27,7 +27,6 @@ namespace RepoTasks.ProjectModel { var project = GetProject(path, projectCollection); var instance = project.CreateProjectInstance(ProjectInstanceSettings.ImmutableWithFastItemLookup); - var projExtPath = instance.GetPropertyValue("MSBuildProjectExtensionsPath"); var targetFrameworks = instance.GetPropertyValue("TargetFrameworks"); var targetFramework = instance.GetPropertyValue("TargetFramework"); @@ -59,11 +58,17 @@ namespace RepoTasks.ProjectModel var tools = GetTools(instance).ToArray(); bool.TryParse(instance.GetPropertyValue("IsPackable"), out var isPackable); + + if (isPackable) + { + // the default packable setting is disabled for projects referencing this package. + isPackable = !frameworks.SelectMany(f => f.Dependencies.Keys).Any(d => d.Equals("Microsoft.NET.Test.Sdk", StringComparison.OrdinalIgnoreCase)); + } + var packageId = instance.GetPropertyValue("PackageId"); var packageVersion = instance.GetPropertyValue("PackageVersion"); return new ProjectInfo(path, - projExtPath, frameworks, tools, isPackable, @@ -88,6 +93,8 @@ namespace RepoTasks.ProjectModel var globalProps = new Dictionary<string, string>() { ["DesignTimeBuild"] = "true", + // Isolate the project from post-restore side effects + ["ExcludeRestorePackageImports"] = "true", }; var project = new Project(xml, diff --git a/build/tasks/ProjectModel/SolutionInfo.cs b/build/tasks/ProjectModel/SolutionInfo.cs index 5fe51132db..dce2f0bdd3 100644 --- a/build/tasks/ProjectModel/SolutionInfo.cs +++ b/build/tasks/ProjectModel/SolutionInfo.cs @@ -3,12 +3,13 @@ using System; using System.Collections.Generic; +using System.IO; namespace RepoTasks.ProjectModel { internal class SolutionInfo { - public SolutionInfo(string fullPath, string configName, IReadOnlyList<ProjectInfo> projects, bool shouldBuild) + public SolutionInfo(string fullPath, string configName, IReadOnlyList<ProjectInfo> projects, bool shouldBuild, bool shipped) { if (string.IsNullOrEmpty(fullPath)) { @@ -20,15 +21,24 @@ namespace RepoTasks.ProjectModel throw new ArgumentException(nameof(configName)); } + Directory = Path.GetDirectoryName(fullPath); FullPath = fullPath; ConfigName = configName; Projects = projects ?? throw new ArgumentNullException(nameof(projects)); ShouldBuild = shouldBuild; + Shipped = shipped; + + foreach (var proj in Projects) + { + proj.SolutionInfo = this; + } } + public string Directory { get; } public string FullPath { get; } public string ConfigName { get; } public IReadOnlyList<ProjectInfo> Projects { get; } public bool ShouldBuild { get; } + public bool Shipped { get; } } } diff --git a/build/tasks/ProjectModel/SolutionInfoFactory.cs b/build/tasks/ProjectModel/SolutionInfoFactory.cs index 9ea368cc0a..c24475f7c2 100644 --- a/build/tasks/ProjectModel/SolutionInfoFactory.cs +++ b/build/tasks/ProjectModel/SolutionInfoFactory.cs @@ -27,7 +27,7 @@ namespace RepoTasks.ProjectModel _buildEngine = buildEngine; } - public IReadOnlyList<SolutionInfo> Create(IEnumerable<ITaskItem> solutionItems, IDictionary<string, string> properties, CancellationToken ct) + public IReadOnlyList<SolutionInfo> Create(IEnumerable<ITaskItem> solutionItems, IDictionary<string, string> properties, string defaultConfig, CancellationToken ct) { var timer = Stopwatch.StartNew(); @@ -49,7 +49,7 @@ namespace RepoTasks.ProjectModel if (solutionProps.TryGetValue("Configuration", out var configName)) { - solutionProps["Configuration"] = configName = "Debug"; + solutionProps["Configuration"] = configName = defaultConfig; } var key = $"SlnInfo:{solutionFile}:{configName}"; @@ -85,12 +85,14 @@ namespace RepoTasks.ProjectModel } bool.TryParse(solution.GetMetadata("Build"), out var shouldBuild); + bool.TryParse(solution.GetMetadata("Shipped"), out var shipped); var solutionInfo = new SolutionInfo( solutionFile, configName, projects.ToArray(), - shouldBuild); + shouldBuild, + shipped); _buildEngine.RegisterTaskObject(key, solutionInfo, RegisteredTaskObjectLifetime.Build, allowEarlyCollection: true); diff --git a/build/tasks/RepoTasks.tasks b/build/tasks/RepoTasks.tasks index 5410effb57..569b766901 100644 --- a/build/tasks/RepoTasks.tasks +++ b/build/tasks/RepoTasks.tasks @@ -4,6 +4,7 @@ </PropertyGroup> <UsingTask TaskName="RepoTasks.AnalyzeBuildGraph" AssemblyFile="$(_RepoTaskAssembly)" /> + <UsingTask TaskName="RepoTasks.CheckRepoGraph" AssemblyFile="$(_RepoTaskAssembly)" /> <UsingTask TaskName="RepoTasks.CopyPackagesToSplitFolders" AssemblyFile="$(_RepoTaskAssembly)" /> <UsingTask TaskName="RepoTasks.DownloadNuGetPackages" AssemblyFile="$(_RepoTaskAssembly)" /> <UsingTask TaskName="RepoTasks.GeneratePackageVersionPropsFile" AssemblyFile="$(_RepoTaskAssembly)" /> diff --git a/build/tasks/ResolveHostingStartupPackages.cs b/build/tasks/ResolveHostingStartupPackages.cs index 8bfc27399c..5a97097db4 100644 --- a/build/tasks/ResolveHostingStartupPackages.cs +++ b/build/tasks/ResolveHostingStartupPackages.cs @@ -15,6 +15,9 @@ namespace RepoTasks [Required] public ITaskItem[] PackageArtifacts { get; set; } + [Required] + public ITaskItem[] ExternalDependencies { get; set; } + [Output] public ITaskItem[] HostingStartupArtifacts { get; set; } @@ -22,7 +25,18 @@ namespace RepoTasks { // Parse input var hostingStartupArtifacts = PackageArtifacts.Where(p => p.GetMetadata("HostingStartup") == "true"); - HostingStartupArtifacts = BuildArtifacts.Where(p => hostingStartupArtifacts.Any(h => h.GetMetadata("Identity") == p.GetMetadata("PackageId"))).ToArray(); + var externalHostingStartupArtifacts = ExternalDependencies.Where(p => p.GetMetadata("HostingStartup") == "true"); + + var hostingStartups = BuildArtifacts.Where(p => hostingStartupArtifacts.Any(h => h.GetMetadata("Identity") == p.GetMetadata("PackageId"))); + + foreach (var externalHostingStartup in externalHostingStartupArtifacts) + { + // The parameters PackageId and Version are required for output. For external dependencies, the identity is the pacakge id. + externalHostingStartup.SetMetadata("PackageId", externalHostingStartup.GetMetadata("Identity")); + hostingStartups = hostingStartups.Append(externalHostingStartup); + } + + HostingStartupArtifacts = hostingStartups.ToArray(); return true; } diff --git a/build/tools/packaging/hosting_debian_config.json b/build/tools/packaging/hosting_debian_config.json index 8159b4e25f..92c825e901 100644 --- a/build/tools/packaging/hosting_debian_config.json +++ b/build/tools/packaging/hosting_debian_config.json @@ -30,6 +30,6 @@ "debian_dependencies": { "dotnet-runtime-DOTNET_VERSION": {}, - "aspnetcore-store-STORE_VERSION": {} + "aspnetcore-store-DEB_VERSION": {} } }
\ No newline at end of file diff --git a/build/tools/packaging/store_debian_config.json b/build/tools/packaging/store_debian_config.json index 70dffe42a9..880cba3a38 100644 --- a/build/tools/packaging/store_debian_config.json +++ b/build/tools/packaging/store_debian_config.json @@ -29,6 +29,6 @@ }, "debian_dependencies": { - "aspnetcore-store-2.0.0": {} + "aspnetcore-store-RS_DEP_VERSION": {} } }
\ No newline at end of file diff --git a/build/tools/templates/HostingStartup/HostingStartup.csproj b/build/tools/templates/HostingStartup/HostingStartup.csproj index dbb96336d5..12cdf93eb1 100644 --- a/build/tools/templates/HostingStartup/HostingStartup.csproj +++ b/build/tools/templates/HostingStartup/HostingStartup.csproj @@ -1,8 +1,19 @@ <Project Sdk="Microsoft.NET.Sdk"> + <Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''"/> + <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> <OutputType>Exe</OutputType> + <RestoreSources>$(DotNetRestoreSources)</RestoreSources> + <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true' AND '$(AspNetUniverseBuildOffline)' != 'true' "> + $(RestoreSources); + https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json; + </RestoreSources> + <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true'"> + $(RestoreSources); + https://api.nuget.org/v3/index.json; + </RestoreSources> </PropertyGroup> <ItemGroup> @@ -15,6 +26,6 @@ <DestinationDepsFile>$(DepsOutputPath)\$(HostingStartupPackageName)\shared\Microsoft.NETCore.App\$(DepsRuntimeFrameworkVersion)\$(HostingStartupPackageName).deps.json</DestinationDepsFile> </PropertyGroup> - <Copy SourceFiles="$(ProjectDepsFilePath)" DestinationFiles="$(DestinationDepsFile)" /> + <Copy SourceFiles="$(PublishDepsFilePath)" DestinationFiles="$(DestinationDepsFile)" /> </Target> </Project> diff --git a/korebuild-lock.txt b/korebuild-lock.txt index 6471fca0b4..1e32745c4f 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.0.2-rc1-16007 -commithash:bccf097cd0fceb185b7bf6aa8981191304cea9a7 +version:2.0.3-rtm-10005 +commithash:767fa0dcd1cca6b0a722b7b6a3919f698fbd1325 diff --git a/korebuild.json b/korebuild.json index 6bbc5eeb9c..6ac34cd945 100644 --- a/korebuild.json +++ b/korebuild.json @@ -1,4 +1,4 @@ { - "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/rel/2.0.2/tools/korebuild.schema.json", - "channel": "rel/2.0.2" + "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.0.0/tools/korebuild.schema.json", + "channel": "release/2.0.0" } diff --git a/modules/HttpSysServer b/modules/HttpSysServer -Subproject 88862aeb6831567d182e406ecffb646bc327d44 +Subproject 1b5ba87bbb80d798bebdf73711a09a846205c19 diff --git a/modules/Identity b/modules/Identity -Subproject 8c47b90677c0f544844151418ba94f24d9f2a09 +Subproject becf1df9c5a3b908e28ec3c1272b072d8801e3d diff --git a/modules/JavaScriptServices b/modules/JavaScriptServices -Subproject 64389a9bbeda7378c80b4c302700ddcb78d4f0a +Subproject d5a664e4817a395cbafec942387162b5afeba7b diff --git a/modules/Mvc b/modules/Mvc -Subproject f8789f5d5c4d5869490a05b8f7250b6151f1673 +Subproject 67f48064ced9ac9c2917d369ffc7d1866d03c84 diff --git a/modules/MvcPrecompilation b/modules/MvcPrecompilation -Subproject bc58d8495a431d3de606afc52c2987d1ebf1e6a +Subproject f510e7034000e346f6771197d30aaf791ce2bf4 diff --git a/modules/Scaffolding b/modules/Scaffolding -Subproject 26822d4c876ee6203014eaf6df398c874c4535e +Subproject 069ca2612999a49e2b19099f21d8196f422c82d diff --git a/modules/Templating b/modules/Templating -Subproject 18feba377f4d420a591c8320ca9170160f32060 +Subproject e3674db32e34f4b43671e978eb9902b3b11fb21 diff --git a/scripts/PatchVersionPrefix.ps1 b/scripts/PatchVersionPrefix.ps1 new file mode 100644 index 0000000000..17303de53a --- /dev/null +++ b/scripts/PatchVersionPrefix.ps1 @@ -0,0 +1,66 @@ +<# +.SYNOPSIS + Updates the version.props file in repos to a newer patch version +.PARAMETER Repos + A list of the repositories that should be patched +#> +[CmdletBinding()] +param( + [Parameter(Mandatory = $true)] + [string[]]$Repos +) + +$ErrorActionPreference = 'Stop' + +function SaveXml($xml, [string]$path) { + Write-Verbose "Saving to $path" + $ErrorActionPreference = 'stop' + + $settings = New-Object System.XML.XmlWriterSettings + $settings.OmitXmlDeclaration = $true + $settings.Encoding = New-Object System.Text.UTF8Encoding( $true ) + $writer = [System.XML.XMLTextWriter]::Create($path, $settings) + $xml.Save($writer) + $writer.Close() +} + +function LoadXml([string]$path) { + Write-Verbose "Reading to $path" + + $ErrorActionPreference = 'stop' + $obj = new-object xml + $obj.PreserveWhitespace = $true + $obj.Load($path) + return $obj +} + +function BumpPatch([System.Xml.XmlNode]$node) { + if (-not $node) { + return + } + [version] $version = $node.InnerText + $node.InnerText = "{0}.{1}.{2}" -f $version.Major, $version.Minor, ($version.Build + 1) +} + +foreach ($repo in $Repos) { + $path = "$PSScriptRoot/../modules/$repo/version.props" + 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" + } + + $versionPrefix = $xml.SelectSingleNode('/Project/PropertyGroup/VersionPrefix') + $epxVersionPrefix = $xml.SelectSingleNode('/Project/PropertyGroup/ExperimentalProjectVersionPrefix') + BumpPatch $epxVersionPrefix + BumpPatch $versionPrefix + SaveXml $xml $path +} + diff --git a/scripts/UpdateBuildTools.ps1 b/scripts/UpdateBuildTools.ps1 new file mode 100644 index 0000000000..6f2e4ad3c5 --- /dev/null +++ b/scripts/UpdateBuildTools.ps1 @@ -0,0 +1,96 @@ +#!/usr/bin/env pwsh + +<# +.SYNOPSIS + Updates the build tools version and generates a commit message with the list of changes +.PARAMETER RepoRoot + The directory containing the repo +.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 GitCommitArgs + Additional arguments to pass into git-commit +.PARAMETER NoCommit + Make changes without executing git-commit +.PARAMETER Force + Specified this to make a commit with any changes +#> +[cmdletbinding(SupportsShouldProcess = $true)] +param( + [string]$RepoRoot, + [string]$GitAuthorName = $null, + [string]$GitAuthorEmail = $null, + [string[]]$GitCommitArgs = @(), + [switch]$NoCommit, + [switch]$Force +) + +$ErrorActionPreference = 'Stop' +Set-StrictMode -Version 2 + +if (-not $RepoRoot) { + $RepoRoot = Resolve-Path "$PSScriptRoot\.." +} + +Import-Module "$PSScriptRoot/common.psm1" -Scope Local -Force + +function Get-KoreBuildVersion { + $lockFile = "$RepoRoot/korebuild-lock.txt" + if (!(Test-Path $lockFile)) { + return '' + } + $version = Get-Content $lockFile | Where-Object { $_ -like 'version:*' } | Select-Object -first 1 + if (!$version) { + Write-Error "Failed to parse version from $lockFile. Expected a line that begins with 'version:'" + } + $version = $version.TrimStart('version:').Trim() + return $version +} + +Push-Location $RepoRoot +try { + Assert-Git + + $oldVersion = Get-KoreBuildVersion + + # Executes a command that no-ops. The only thing we really need is the updated version of korebuild-lock.txt + & "$RepoRoot/build.ps1" -Update '-t:Noop' | Out-Null + + $newVersion = Get-KoreBuildVersion + + if ($oldVersion -eq $newVersion) { + Write-Host -ForegroundColor Magenta 'No changes to build tools' + exit 0 + } + + Invoke-Block { git add "$RepoRoot/korebuild-lock.txt" } + Invoke-Block { git add "$RepoRoot/build/dependencies.props" } + + $shortMessage = "Updating BuildTools from $oldVersion to $newVersion" + # add this to the commit message to make it possible to filter commit triggers based on message + $message = "$shortMessage`n`n[auto-updated: buildtools]" + + if (-not $NoCommit -and ($Force -or ($PSCmdlet.ShouldContinue($shortMessage, 'Create a new commit with these changes?')))) { + + $gitConfigArgs = @() + if ($GitAuthorName) { + $gitConfigArgs += '-c', "user.name=$GitAuthorName" + } + + if ($GitAuthorEmail) { + $gitConfigArgs += '-c', "user.email=$GitAuthorEmail" + } + + Invoke-Block { git @gitConfigArgs commit -m $message @GitCommitArgs } + } + else { + # If composing this script with others, return the message that would have been used + return @{ + message = $message + } + } +} +finally { + Pop-Location +} diff --git a/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.3.xml b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.3.xml new file mode 100644 index 0000000000..da9ec336b4 --- /dev/null +++ b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.3.xml @@ -0,0 +1,98 @@ +<StoreArtifacts> + <Package Id="runtime.win-arm64.runtime.native.system.data.sqlclient.sni" Version="4.4.0" /> + <Package Id="microsoft.aspnetcore" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.antiforgery" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.applicationinsights.hostingstartup" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.cookies" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.core" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.facebook" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.google" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.jwtbearer" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.microsoftaccount" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.oauth" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.openidconnect" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authentication.twitter" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authorization" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.authorization.policy" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.azureappservices.hostingstartup" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.azureappservicesintegration" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.cookiepolicy" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.cors" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.cryptography.internal" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.cryptography.keyderivation" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.dataprotection" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.dataprotection.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.dataprotection.azurestorage" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.dataprotection.extensions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.diagnostics" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.diagnostics.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.diagnostics.entityframeworkcore" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.hosting" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.hosting.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.hosting.server.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.http" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.http.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.http.extensions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.http.features" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.httpoverrides" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.identity" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.identity.entityframeworkcore" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.localization" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.localization.routing" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.middlewareanalysis" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.apiexplorer" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.core" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.cors" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.dataannotations" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.formatters.json" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.formatters.xml" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.localization" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.razor" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.razor.extensions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.razorpages" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.taghelpers" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.mvc.viewfeatures" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.nodeservices" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.owin" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.razor" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.razor.language" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.razor.runtime" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.responsecaching" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.responsecaching.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.responsecompression" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.rewrite" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.routing" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.routing.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.server.httpsys" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.server.iisintegration" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.server.kestrel" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.server.kestrel.core" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.server.kestrel.https" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.server.kestrel.transport.abstractions" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.server.kestrel.transport.libuv" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.session" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.spaservices" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.staticfiles" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.websockets" Version="2.0.1" /> + <Package Id="microsoft.aspnetcore.webutilities" Version="2.0.1" /> + <Package Id="microsoft.codeanalysis.razor" Version="2.0.1" /> + <Package Id="microsoft.dotnet.platformabstractions" Version="2.0.3" /> + <Package Id="microsoft.entityframeworkcore" Version="2.0.1" /> + <Package Id="microsoft.entityframeworkcore.design" Version="2.0.1" /> + <Package Id="microsoft.entityframeworkcore.inmemory" Version="2.0.1" /> + <Package Id="microsoft.entityframeworkcore.relational" Version="2.0.1" /> + <Package Id="microsoft.entityframeworkcore.sqlite.core" Version="2.0.1" /> + <Package Id="microsoft.entityframeworkcore.sqlserver" Version="2.0.1" /> + <Package Id="microsoft.extensions.dependencymodel" Version="2.0.3" /> + <Package Id="microsoft.extensions.hosting.abstractions" Version="2.0.1" /> + <Package Id="microsoft.extensions.identity.core" Version="2.0.1" /> + <Package Id="microsoft.extensions.identity.stores" Version="2.0.1" /> + <Package Id="microsoft.extensions.localization" Version="2.0.1" /> + <Package Id="microsoft.extensions.localization.abstractions" Version="2.0.1" /> + <Package Id="microsoft.net.http.headers" Version="2.0.1" /> + <Package Id="microsoft.visualstudio.web.browserlink" Version="2.0.1" /> +</StoreArtifacts>
\ No newline at end of file diff --git a/version.props b/version.props index ca922dba5c..1b4a62e7b2 100644 --- a/version.props +++ b/version.props @@ -1,6 +1,7 @@ <Project> <PropertyGroup> - <VersionPrefix>2.0.4</VersionPrefix> + <RuntimeStoreInstallerDependencyVersion>2.0.3</RuntimeStoreInstallerDependencyVersion> + <VersionPrefix>2.0.5</VersionPrefix> <VersionSuffix>rtm</VersionSuffix> <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion> <PackageVersionNoTimestamp Condition="'$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersionNoTimestamp> |