Fixup the effect of cascading versions (#1187)

The PR #1175 was incomplete. This fixes the cascading effect of patching to 2.1.1

Changes:
 - add CheckRepoGraph (ported directly from the release/2.0 branch)
 - Update submodules
This commit is contained in:
Nate McMaster 2018-05-30 10:58:10 -07:00 committed by GitHub
parent 3c72da941f
commit faf600ce71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 296 additions and 76 deletions

View File

@ -23,9 +23,11 @@
<PackageArtifact Include="dotnet-aspnet-codegenerator" Category="ship" />
<PackageArtifact Include="dotnet-ef" Category="ship" />
<PackageArtifact Include="Internal.AspNetCore.Universe.Lineup" Category="noship" PackageType="Lineup" />
<PackageArtifact Include="Microsoft.AspNet.Identity.AspNetCoreCompat" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.All" Category="ship" LZMA="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Analyzers" Category="shipoob" />
<PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" LZMA="true" />
<PackageArtifact Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" AllMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" LZMA="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" LZMA="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Cookies" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -40,12 +42,33 @@
<PackageArtifact Include="Microsoft.AspNetCore.Authentication" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authorization.Policy" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authorization" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" AllMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.AzureAppServicesIntegration" AllMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.ChunkingCookieManager.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Connections.Abstractions" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.CookiePolicy" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Abstractions" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Elm" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Identity.Service" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections.Client" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections.Common" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<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.UI" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Abstractions" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Analyzers.Experimental" Analyzer="true" Category="shipoob" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Analyzers" Analyzer="true" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -66,6 +89,10 @@
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.ViewFeatures" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.WebApiCompatShim" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.NodeServices.Sockets" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.NodeServices" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Proxy" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.RangeHelper.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Design" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Language" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Runtime" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -85,6 +112,25 @@
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Redis" AllMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SpaServices.Extensions" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SpaServices" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.StaticFiles" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.AzureAlert" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.BitBucket" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.Dropbox" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.DynamicsCRM" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.GitHub" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.Kudu" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.MailChimp" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.Pusher" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.Salesforce" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.Slack" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.Stripe" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.Trello" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers.WordPress" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebHooks.Receivers" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebSockets" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.CodeAnalysis.Razor.Workspaces" Category="shipoob" />
<PackageArtifact Include="Microsoft.CodeAnalysis.Razor" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.CodeAnalysis.Remote.Razor" Category="shipoob" />
@ -106,6 +152,11 @@
<PackageArtifact Include="Microsoft.EntityFrameworkCore.SqlServer" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Tools" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.ApplicationModelDetection" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Identity.Core" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Identity.Stores" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<PackageArtifact Include="Microsoft.NET.Sdk.Razor" Category="ship" />
<PackageArtifact Include="Microsoft.Owin.Security.Interop" Category="ship" />
<PackageArtifact Include="Microsoft.VisualStudio.Editor.Razor" Category="shipoob" />
@ -119,6 +170,7 @@
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" LZMA="true" Category="ship" />
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration" LZMA="true" Category="ship" />
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" LZMA="true" Category="ship" />
<PackageArtifact Include="Microsoft.Web.Xdt.Extensions" Category="shipoob" />
<PackageArtifact Include="RazorPageGenerator" Category="noship" />
</ItemGroup>
</Project>

View File

@ -164,16 +164,11 @@
<ExternalDependency Include="dotnet-sql-cache" Version="2.1.0" Category="ship" />
<ExternalDependency Include="dotnet-user-secrets" Version="2.1.0" Category="ship" />
<ExternalDependency Include="dotnet-watch" Version="2.1.0" Category="ship" />
<ExternalDependency Include="Microsoft.AspNet.Identity.AspNetCoreCompat" Version="0.4.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Analyzers" Version="0.1.0" Category="shipoob" />
<ExternalDependency Include="Microsoft.AspNetCore.Antiforgery" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Version="2.1.0" AllMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.AspNetCoreModule" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.AspNetCoreModuleV1" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Authentication.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Authentication.Core" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="2.1.0" AllMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="2.1.0" AllMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Buffering" Version="0.4.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Certificates.Generation.Sources" Version="2.1.0" Category="noship" />
@ -188,12 +183,6 @@
<ExternalDependency Include="Microsoft.AspNetCore.DataProtection.SystemWeb" Version="2.1.0" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.DataProtection" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" Version="2.1.0" Category="shipoob" />
<ExternalDependency Include="Microsoft.AspNetCore.Diagnostics.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Diagnostics.Elm" Version="0.4.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Diagnostics.Identity.Service" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Diagnostics" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.HostFiltering" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -208,27 +197,10 @@
<ExternalDependency Include="Microsoft.AspNetCore.HttpOverrides" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.HttpSys.Sources" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service.Abstractions" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service.AzureKeyVault" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service.Core" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service.EntityFrameworkCore" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service.IntegratedWebClient" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service.Mvc" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service.Specification.Tests" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Service" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.Specification.Tests" Version="2.1.0" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity.UI" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Identity" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.JsonPatch" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Localization.Routing" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Localization" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.MiddlewareAnalysis" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.NodeServices.Sockets" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.NodeServices" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Owin" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Proxy" Version="0.3.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.RangeHelper.Sources" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.ResponseCaching" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.ResponseCompression" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -241,32 +213,12 @@
<ExternalDependency Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="0.5.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.Session" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.SpaServices" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.TestHost" Version="2.1.0" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.Testing" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.AzureAlert" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.BitBucket" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.Dropbox" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.DynamicsCRM" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.GitHub" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.Kudu" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.MailChimp" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.Pusher" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.Salesforce" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.Slack" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.Stripe" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.Trello" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers.WordPress" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebHooks.Receivers" Version="1.0.0-preview3-final" Category="noship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebSockets" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore.WebUtilities" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.AspNetCore" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Data.Sqlite.Core" Version="2.1.0" AllMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Data.Sqlite" Version="2.1.0" AllMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.ActivatorUtilities.Sources" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.Extensions.ApplicationModelDetection" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.Extensions.Buffers.Sources" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.Extensions.Buffers.Testing.Sources" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.Extensions.Caching.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -292,9 +244,7 @@
<ExternalDependency Include="Microsoft.Extensions.DependencyInjection.Specification.Tests" Version="2.1.0" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.DependencyInjection" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.DiagnosticAdapter" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="2.1.0" Category="noship" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Composite" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Physical" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -304,8 +254,6 @@
<ExternalDependency Include="Microsoft.Extensions.Hosting" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Http.Polly" Version="2.1.0" AllMetapackage="false" AppMetapackage="false" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Http" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Identity.Core" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Identity.Stores" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Localization.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Localization" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
@ -337,7 +285,6 @@
<ExternalDependency Include="Microsoft.Extensions.WebEncoders" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Net.Http.Headers" Version="2.1.0" AllMetapackage="true" AppMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.1.0" AllMetapackage="true" Category="ship" />
<ExternalDependency Include="Microsoft.Web.Xdt.Extensions" Version="2.1.0" Category="shipoob" />
</ItemGroup>
</Project>

View File

@ -164,6 +164,12 @@
<Error Text="Undeclared package artifacts. Add these to artifacts.props:%0A - @(_UndeclaredPackageArtifact, '%0A - ')"
Condition=" @(_UndeclaredPackageArtifact->Count()) != 0 " />
<RepoTasks.CheckRepoGraph Condition=" ! $([MSBuild]::IsOSUnixLike())"
Solutions="@(Solution)"
Artifacts="@(ArtifactInfo);@(ShippedArtifactInfo)"
Repositories="@(Repository);@(ShippedRepository)"
Properties="Configuration=$(Configuration);BuildNumber=$(BuildNumber);DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcePropsPath)" />
<!-- Skipped to workaround #1014. The order is hardcoded in buildorder.props -->
<RepoTasks.AnalyzeBuildGraph Condition=" ! $([MSBuild]::IsOSUnixLike())"
Solutions="@(Solution)"

View File

@ -6,21 +6,30 @@
</ItemDefinitionGroup>
<ItemGroup>
<Repository Include="AADIntegration" />
<Repository Include="AuthSamples" />
<Repository Include="AzureIntegration" />
<Repository Include="Diagnostics" />
<Repository Include="EntityFrameworkCore" />
<Repository Include="Identity" />
<Repository Include="JavaScriptServices" />
<Repository Include="KestrelHttpServer" />
<Repository Include="MetaPackages" />
<Repository Include="MusicStore" />
<Repository Include="Mvc" />
<Repository Include="MvcPrecompilation" />
<Repository Include="Proxy" />
<Repository Include="Razor" />
<Repository Include="Scaffolding" />
<Repository Include="Security" />
<Repository Include="SignalR" />
<Repository Include="WebHooks" />
<Repository Include="WebSockets" />
<Repository Include="StaticFiles" />
</ItemGroup>
<ItemGroup>
<ShippedRepository Include="AADIntegration" />
<ShippedRepository Include="Antiforgery" />
<ShippedRepository Include="AuthSamples" />
<ShippedRepository Include="AzureIntegration" />
<ShippedRepository Include="BasicMiddleware" />
<ShippedRepository Include="BrowserLink" />
<ShippedRepository Include="Caching" />
@ -29,7 +38,6 @@
<ShippedRepository Include="CORS" />
<ShippedRepository Include="DataProtection" />
<ShippedRepository Include="DependencyInjection" />
<ShippedRepository Include="Diagnostics" />
<ShippedRepository Include="DotNetTools" />
<ShippedRepository Include="EventNotification" />
<ShippedRepository Include="FileSystem" />
@ -38,24 +46,16 @@
<ShippedRepository Include="HttpAbstractions" />
<ShippedRepository Include="HttpClientFactory" />
<ShippedRepository Include="HttpSysServer" />
<ShippedRepository Include="Identity" />
<ShippedRepository Include="IISIntegration" />
<ShippedRepository Include="JavaScriptServices" />
<ShippedRepository Include="JsonPatch" />
<ShippedRepository Include="Localization" />
<ShippedRepository Include="Logging" />
<ShippedRepository Include="MetaPackages" />
<ShippedRepository Include="Microsoft.Data.Sqlite" />
<ShippedRepository Include="MusicStore" />
<ShippedRepository Include="Options" />
<ShippedRepository Include="Proxy" />
<ShippedRepository Include="ResponseCaching" />
<ShippedRepository Include="Routing" />
<ShippedRepository Include="ServerTests" />
<ShippedRepository Include="Session" />
<ShippedRepository Include="StaticFiles" />
<ShippedRepository Include="Testing" />
<ShippedRepository Include="WebHooks" />
<ShippedRepository Include="WebSockets" />
</ItemGroup>
</Project>

View File

@ -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;
}
}
}
}

View File

@ -6,6 +6,7 @@
<UsingTask TaskName="RepoTasks.AddArchiveReferences" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.AddMetapackageReferences" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.AnalyzeBuildGraph" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.CheckRepoGraph" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.CheckExpectedPackagesExist" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.CreateLzma" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.GenerateRestoreSourcesPropsFile" AssemblyFile="$(_RepoTaskAssembly)" />

@ -1 +1 @@
Subproject commit 4342e5cae29c45c84e27df28218f27c6cec6cc24
Subproject commit a35250fe3ad8125a4c6fd67feb4055e9470fe558

@ -1 +1 @@
Subproject commit b51db1fc91cfe792e4f1518b728c41a0af4730d3
Subproject commit c710aa8c2663e474c270ec48dd9dc999d38d9a46

@ -1 +1 @@
Subproject commit 98785fb2f5ddb31e298d3f52069adfd233375c65
Subproject commit 977f85f9cc9ca2685389a740bface9e18fcf5bdd

@ -1 +1 @@
Subproject commit 5403ec47ecfe5cbc2c904253fc1cfbd64675eba6
Subproject commit d18de6b00e13f06bae43c621f17e39ed2bec4069

@ -1 +1 @@
Subproject commit 8c84e353922319ff104c35afa2d6baa186aa010f
Subproject commit 436cdb0e967ab5b3e3903bb876bbd3edef844172

@ -1 +1 @@
Subproject commit 4e1b90774367d96595eb5e990510b6ba1300ee4e
Subproject commit 10e735d42002db959e1a769a3362c84ec0ef1c27

@ -1 +1 @@
Subproject commit 90d90c12d61580be1738a78fde0b03c0d25338a0
Subproject commit 8ec1eb26bbf238eac08161a83632a6260f02d234

@ -1 +1 @@
Subproject commit 66573b187dc9a915b7726b93753b2f260b9b4b7a
Subproject commit 5c775c957991cb9e5d20c9cf3c67d56dc92d80ba

@ -1 +1 @@
Subproject commit 5815691af6d8c6f0841a14575609e09f5d0e35c8
Subproject commit e554b1e9f9a07dd9af35d55bcd6f7159fc6cf752

@ -1 +1 @@
Subproject commit b3356b90b20e1fdea3c49cef8f4bbbe0b991e731
Subproject commit a1085ed31cebed4d4fa1f10cd662a462a87d41f1