Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[master] Update dependencies from dotnet/efcore #18247

Merged

Conversation

dotnet-maestro[bot]
Copy link
Contributor

@dotnet-maestro dotnet-maestro bot commented Jan 9, 2020

This pull request updates the following dependencies

From https://github.com/dotnet/efcore

  • Subscription: ccafa991-4408-48df-d45d-08d76e1d3434
  • Build: 20200128.1
  • Date Produced: 1/28/2020 10:50 AM
  • Commit: b4ae28206d90fbef35bac82278444913d7666675
  • Branch: refs/heads/master
  • Updates:
    • Microsoft.EntityFrameworkCore.Tools -> 5.0.0-alpha.1.20078.1
    • Microsoft.EntityFrameworkCore.SqlServer -> 5.0.0-alpha.1.20078.1
    • dotnet-ef -> 5.0.0-alpha.1.20078.1
    • Microsoft.EntityFrameworkCore -> 5.0.0-alpha.1.20078.1
    • Microsoft.EntityFrameworkCore.InMemory -> 5.0.0-alpha.1.20078.1
    • Microsoft.EntityFrameworkCore.Relational -> 5.0.0-alpha.1.20078.1
    • Microsoft.EntityFrameworkCore.Sqlite -> 5.0.0-alpha.1.20078.1

Coherency Updates

The following updates ensure that dependencies with a CoherentParentDependency
attribute were produced in a build used as input to the parent dependency's build.
See Dependency Description Format

  • Microsoft.CSharp -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • Microsoft.Win32.Registry -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • Microsoft.Win32.SystemEvents -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.ComponentModel.Annotations -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Diagnostics.EventLog -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Drawing.Common -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.IO.Pipelines -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Net.Http.WinHttpHandler -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Net.WebSockets.WebSocketProtocol -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Reflection.Metadata -> 1.8.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Runtime.CompilerServices.Unsafe -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Security.Cryptography.Cng -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Security.Cryptography.Pkcs -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Security.Cryptography.Xml -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Security.Permissions -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Security.Principal.Windows -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.ServiceProcess.ServiceController -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Text.Encodings.Web -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Text.Json -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Threading.Channels -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • System.Windows.Extensions -> 4.7.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)
  • Microsoft.NETCore.Platforms -> 3.1.0 (parent: Microsoft.NETCore.App.Runtime.win-x64)

…109.3

- Microsoft.EntityFrameworkCore.Tools - 5.0.0-alpha.1.20059.3
- Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-alpha.1.20059.3
- dotnet-ef - 5.0.0-alpha.1.20059.3
- Microsoft.EntityFrameworkCore - 5.0.0-alpha.1.20059.3
- Microsoft.EntityFrameworkCore.InMemory - 5.0.0-alpha.1.20059.3
- Microsoft.EntityFrameworkCore.Relational - 5.0.0-alpha.1.20059.3
- Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-alpha.1.20059.3
@dotnet-maestro dotnet-maestro bot requested a review from dougbu as a code owner January 9, 2020 21:45
@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 9, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: aspnetcore-ci, aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Test: Ubuntu 16.04 x64), aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Test: macOS 10.13), aspnetcore-ci (Build Build: Linux Musl ARM64), aspnetcore-ci (Build Build: Linux ARM64), aspnetcore-ci (Build Build: Linux Musl x64), aspnetcore-ci (Build Build: Linux x64), aspnetcore-ci (Build Build: Linux ARM), aspnetcore-ci (Build Build: Windows ARM), aspnetcore-ci (Build Build: Windows x64/x86), aspnetcore-ci (Build Build: macOS), aspnetcore-ci (Build Code check)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

…109.2

- Microsoft.EntityFrameworkCore.Tools - 5.0.0-alpha.1.20059.2
- Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-alpha.1.20059.2
- dotnet-ef - 5.0.0-alpha.1.20059.2
- Microsoft.EntityFrameworkCore - 5.0.0-alpha.1.20059.2
- Microsoft.EntityFrameworkCore.InMemory - 5.0.0-alpha.1.20059.2
- Microsoft.EntityFrameworkCore.Relational - 5.0.0-alpha.1.20059.2
- Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-alpha.1.20059.2
@halter73
Copy link
Member

halter73 commented Jan 9, 2020

It looks like this is blocked on an update to get the ef tool to roll forward to netcoreapp5.0 like @dougbu suggests in #17947 (comment)

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 10, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: aspnetcore-ci, aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Test: Ubuntu 16.04 x64), aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Test: macOS 10.13), aspnetcore-ci (Build Build: Linux Musl ARM64), aspnetcore-ci (Build Build: Linux ARM64), aspnetcore-ci (Build Build: Linux Musl x64), aspnetcore-ci (Build Build: Linux x64), aspnetcore-ci (Build Build: Linux ARM), aspnetcore-ci (Build Build: Windows ARM), aspnetcore-ci (Build Build: Windows x64/x86), aspnetcore-ci (Build Build: macOS), aspnetcore-ci (Build Code check)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@dougbu
Copy link
Member

dougbu commented Jan 10, 2020

@halter73 @bricelam's fix for that (dotnet/efcore#19515) went in a couple of days ago and was included in this build. The problem now looks like something different, probably missing direct dependencies on packages that efcore is using old versions of.

@JunTaoLuo @wtgodbe didn't we resolve those issues already?

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 10, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Waiting on checks: aspnetcore-ci, aspnetcore-ci (Build Test: Linux Source Build), aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: macOS 10.13), aspnetcore-ci (Build Test: Ubuntu 16.04 x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Build: Linux Musl x64), aspnetcore-ci (Build Build: Linux Musl ARM64), aspnetcore-ci (Build Build: Linux ARM64), aspnetcore-ci (Build Build: Linux ARM), aspnetcore-ci (Build Build: macOS), aspnetcore-ci (Build Build: Windows x64/x86), aspnetcore-ci (Build Build: Linux x64), aspnetcore-ci (Build Build: Windows ARM), aspnetcore-ci (Build Code check)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@halter73 halter73 force-pushed the darc-master-c42c7270-bf2e-4478-a810-819e5aa4cbbe branch from 716dacd to 160af47 Compare January 10, 2020 02:55
@halter73 halter73 force-pushed the darc-master-c42c7270-bf2e-4478-a810-819e5aa4cbbe branch from 160af47 to d427e2a Compare January 10, 2020 02:57
@halter73
Copy link
Member

I'm trying to fix this by reapplying @wtgodbe's workaround to add direct dependencies to a bunch of EF projects.

@wtgodbe do you think the change to ProjectTemplates.Tests.csproj to hard code netcoreapp3.1 for the DotNetEfFullPath is still necessary?

@halter73
Copy link
Member

The following shows the kind of build errors we were seeing before adding the direct dependencies:

CSC : error CS1705: Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' [/home/vsts/work/1/s/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj]
##[error]CSC(0,0): error CS1705: (NETCORE_ENGINEERING_TELEMETRY=Build) Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
EntityFrameworkCoreDataProtectionBuilderExtensionsTests.cs(16,41): error CS1705: Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' [/home/vsts/work/1/s/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj]
##[error]EntityFrameworkCoreDataProtectionBuilderExtensionsTests.cs(16,41): error CS1705: (NETCORE_ENGINEERING_TELEMETRY=Build) Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
EntityFrameworkCoreDataProtectionBuilderExtensionsTests.cs(21,35): error CS1705: Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' [/home/vsts/work/1/s/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj]
##[error]EntityFrameworkCoreDataProtectionBuilderExtensionsTests.cs(21,35): error CS1705: (NETCORE_ENGINEERING_TELEMETRY=Build) Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
DataProtectionEntityFrameworkTests.cs(65,20): error CS1705: Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' [/home/vsts/work/1/s/src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj]
##[error]DataProtectionEntityFrameworkTests.cs(65,20): error CS1705: (NETCORE_ENGINEERING_TELEMETRY=Build) Assembly 'Microsoft.Extensions.DependencyInjection' with identity 'Microsoft.Extensions.DependencyInjection, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' uses 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 10, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: aspnetcore-ci, aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@Pilchie
Copy link
Member

Pilchie commented Jan 10, 2020

I think this is still affected by not having updates from dotnet/runtime. IIRC, the version numbers for coreclr binaries from master were lower than the versions in the 3.1 branch because they updated them later.

@Pilchie Pilchie added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Jan 10, 2020
@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 10, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: aspnetcore-ci, aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@wtgodbe
Copy link
Member

wtgodbe commented Jan 10, 2020

I think this is still affected by not having updates from dotnet/runtime. IIRC, the version numbers for coreclr binaries from master were lower than the versions in the 3.1 branch because they updated them later.

That's correct, we still are blocked until runtime starts flowing.

do you think the change to ProjectTemplates.Tests.csproj to hard code netcoreapp3.1 for the DotNetEfFullPath is still necessary?

Hopefully not, now that EF is using roll-forward.

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 10, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: aspnetcore-ci, aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@dougbu
Copy link
Member

dougbu commented Jan 10, 2020

we still are blocked until runtime starts flowing

@jaredpar thinks this will be resolved sometime today. Issue is tracked in dotnet/runtime#1129 and has risen to the level of their overall CI build health (dotnet/runtime#702). @dagood is on point for dotnet/runtime#1129.

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 10, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: aspnetcore-ci, aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Test: macOS 10.13), aspnetcore-ci (Build Test: Windows Server 2016 x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

…110.1

- Microsoft.EntityFrameworkCore.Tools - 5.0.0-alpha.1.20060.1
- Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-alpha.1.20060.1
- dotnet-ef - 5.0.0-alpha.1.20060.1
- Microsoft.EntityFrameworkCore - 5.0.0-alpha.1.20060.1
- Microsoft.EntityFrameworkCore.InMemory - 5.0.0-alpha.1.20060.1
- Microsoft.EntityFrameworkCore.Relational - 5.0.0-alpha.1.20060.1
- Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-alpha.1.20060.1
…111.1

- Microsoft.EntityFrameworkCore.Tools - 5.0.0-alpha.1.20061.1
- Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-alpha.1.20061.1
- dotnet-ef - 5.0.0-alpha.1.20061.1
- Microsoft.EntityFrameworkCore - 5.0.0-alpha.1.20061.1
- Microsoft.EntityFrameworkCore.InMemory - 5.0.0-alpha.1.20061.1
- Microsoft.EntityFrameworkCore.Relational - 5.0.0-alpha.1.20061.1
- Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-alpha.1.20061.1
…112.1

- Microsoft.EntityFrameworkCore.Tools - 5.0.0-alpha.1.20062.1
- Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-alpha.1.20062.1
- dotnet-ef - 5.0.0-alpha.1.20062.1
- Microsoft.EntityFrameworkCore - 5.0.0-alpha.1.20062.1
- Microsoft.EntityFrameworkCore.InMemory - 5.0.0-alpha.1.20062.1
- Microsoft.EntityFrameworkCore.Relational - 5.0.0-alpha.1.20062.1
- Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-alpha.1.20062.1
@jkotalik
Copy link
Contributor

From what I can tell now, there are still template tests failing from an EF error:

Project new angular --auth Individual --use-local-db failed to run EF migrations.\r\nProcess exited with code -532462766\nStdErr: Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)\r\nFile name: 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'\r\n\nStdOut: \r\nExpected: True\r\nActual: False

@wtgodbe @dougbu should I apply the suggested workaround that @halter73 mentioned about to pin 3.1 for EF?

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 14, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: aspnetcore-ci, aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Test: macOS 10.13), aspnetcore-ci (Build Test: Windows Server 2016 x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@dougbu
Copy link
Member

dougbu commented Jan 29, 2020

The problem here is Maestro++ isn't doing what the CoherentParentDependency attributes tell it to do. There should be no coherency updates i.e. version changes for dotnet/runtime packages in this PR at all. @mmitche @riarenas what do you recommend?

@dotnet-maestro
Copy link
Contributor Author

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies No un-ignored checks.
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@dougbu
Copy link
Member

dougbu commented Jan 29, 2020

Ooops, spoke to soon. This PR needs #18599 to come in first. @pranavkm please focus energy on that PR while on call.

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 29, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies No un-ignored checks.
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@mmitche
Copy link
Member

mmitche commented Jan 29, 2020

The problem here is Maestro++ isn't doing what the CoherentParentDependency attributes tell it to do. There should be no coherency updates i.e. version changes for dotnet/runtime packages in this PR at all. @mmitche @riarenas what do you recommend?

Coherency updates are not tied to a subscription, so there could be coherency updates in a PR even if no dependencies changed that were affected by the subscription. Since we changed the coherency algorithm recently, this could happen.

IMO CPD is a bit of a hack. It has multiple interpretations depending on what you decide you want in any given situation. The good news is that once efcore is removed from the graph and tooling is folded into aspnetcore, you will be able to get rid of of them altogether.

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 29, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Waiting on checks: aspnetcore-ci, aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Build: Windows x64/x86)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@wtgodbe
Copy link
Member

wtgodbe commented Jan 29, 2020

I think we can get rid of the extra references now, and do #17949. I'll try both in this PR.

@dotnet-maestro
Copy link
Contributor Author

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Waiting on checks: aspnetcore-ci, aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Build: Windows x64/x86)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@wtgodbe
Copy link
Member

wtgodbe commented Jan 29, 2020

I removed the extra refs, I'll try removing the NoWarns if phase 1 works

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 29, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Waiting on checks: aspnetcore-ci, aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Build: Windows x64/x86)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@wtgodbe
Copy link
Member

wtgodbe commented Jan 29, 2020

@mmitche would it be better to have the CPD for the runtime dependencies be on an AspNetCore-Tooling package here? That way the EFCore updates into this repo wouldn't mess with any runtime dependencies. We already use an Aspnetcore-tooling dependency as the CPD for Extensions dependencies in this repo

@mmitche
Copy link
Member

mmitche commented Jan 29, 2020

@mmitche would it be better to have the CPD for the runtime dependencies be on an AspNetCore-Tooling package here? That way the EFCore updates into this repo wouldn't mess with any runtime dependencies. We already use an Aspnetcore-tooling dependency as the CPD for Extensions dependencies in this repo

Yeah probably. Isn't EFCore getting removed from the graph soon?

@dotnet-maestro
Copy link
Contributor Author

dotnet-maestro bot commented Jan 29, 2020

Auto-Merge Status

This pull request has been merged because the following merge policies have succeeded.

  • ✔️ Standard Merge Policies Succeeded - Successful checks: aspnetcore-ci, aspnetcore-ci (Build Test: Linux Source Build), aspnetcore-ci (Build Test: Ubuntu 16.04 x64), aspnetcore-ci (Build Tests: Helix x64), aspnetcore-ci (Build Test: Templates - Windows Server 2016 x64), aspnetcore-ci (Build Test: Windows Server 2016 x64), aspnetcore-ci (Build Test: macOS 10.13), aspnetcore-ci (Build Build: Linux Musl x64), aspnetcore-ci (Build Build: Linux Musl ARM64), aspnetcore-ci (Build Build: Linux ARM64), aspnetcore-ci (Build Build: Windows ARM), aspnetcore-ci (Build Build: macOS), aspnetcore-ci (Build Build: Linux x64), aspnetcore-ci (Build Build: Linux ARM), aspnetcore-ci (Build Code check), aspnetcore-ci (Build Build: Windows x64/x86)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@dotnet-maestro dotnet-maestro bot merged commit a1e226f into master Jan 29, 2020
@dotnet-maestro dotnet-maestro bot deleted the darc-master-c42c7270-bf2e-4478-a810-819e5aa4cbbe branch January 29, 2020 21:11
@wtgodbe
Copy link
Member

wtgodbe commented Jan 29, 2020

Isn't EFCore getting removed from the graph soon?

We've been intending to pin the EF dependencies, or just have them be only in versions.props & update them manually - we don't have a concrete plan yet for this, though. I'll put up an issue for it, the actual change will be minimal once we decide what we want to do.

#18667 CC @ajcvickers

@dougbu
Copy link
Member

dougbu commented Jan 29, 2020

We shouldn't have any CPD attributes pointing to EF packages at all. Where do you see something like that @wtgodbe

@wtgodbe
Copy link
Member

wtgodbe commented Jan 29, 2020

The issue is not that we list a CPD attribute pointing to EF, but that Maestro could choose EF as the parent for a CPD attribute on Microsoft.NetCore.App, since EF also depends on that. I believe @mmitche was describing that that was what caused us to downgrade our corefx dependencies to 4.7.0 in this PR. If that's true, listing a CPD on anything that EF depends on, could cause a similar problem (hence #18669 depending on Tooling rather than Extensions)

@dougbu
Copy link
Member

dougbu commented Jan 29, 2020

@wtgodbe please instead change #18669 to depend on a different package from Extensions -- something EF doesn't use. Removing extensions from the graph will restore numerous versioning issues we trounced with CPD.

@wtgodbe
Copy link
Member

wtgodbe commented Jan 29, 2020

That doesn't match up with my understanding of how CPD works- changing the parent of our Runtime dependencies doesn't remove Extensions from the graph, just chains it. Extensions depends on Runtime, Tooling gets runtime from Extensions, AspNetCore gets runtime from tooling. The outcome is the same dependencies, but without the risk of getting something from EFCore. I believe that even CPD-ing something from the same repo as one of EFCore's CPDs could break us (@mmitche could you confirm/deny any of these assumptions?)

@mmitche
Copy link
Member

mmitche commented Jan 30, 2020

It's possible there are additional CPD issues (given that we are tweaking it right now), but basically what it will do is this:

  1. You list a CPD on a dependency,
  2. Maestro finds that dependency's repo+sha in the same version details file and then builds the repository graph for that repo+sha.
  3. Maestro attempts to find the newest version of that dependency within that subgraph.

In the case of #18669, I think what will happen is that it will simply choose the runtime that aspnetcore-tooling has, which will be whatever extensions has, because that's what tooling ties its verisons to: https://github.com/dotnet/aspnetcore-tooling/blob/master/eng/Version.Details.xml#L48

Chaining is actually not strictly necessary. In fact, I'm not entirely sure it's ever actually required. What it does is that it ensures that the head (or maybe it's the tail, I can't remember) of a chain is updated first, then the next item in the chain is updated after, so that may be able to come up with different results in some cases.

The upshot of all of this is that CPD is confusing and open to interpretation depending on what you want, and I think generally indicates a problem with repository boundaries more than anything else.

@dougbu dougbu removed the blocked The work on this issue is blocked due to some dependency label Oct 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants