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

Consume new strict CPDs in dotnet/installer for 5.0 source-build #1563

Closed
dagood opened this issue Apr 16, 2020 · 5 comments
Closed

Consume new strict CPDs in dotnet/installer for 5.0 source-build #1563

dagood opened this issue Apr 16, 2020 · 5 comments
Assignees
Labels
area-infra Source-build infrastructure and reporting

Comments

@dagood
Copy link
Member

dagood commented Apr 16, 2020

Tracking #1495 (comment):

Had a meeting to discuss this with mmitche and others, and thinking now we'll be able to rely on the CPD strictification of dotnet/arcade#5195 and storing a complete coherent build graph in the dotnet/installer repo. That seems like it will remove the need for special darc clone features (until we want to do speculative builds).

@mmitche plans to get some updated CPD code to me quickly to start validating this.

@dagood
Copy link
Member Author

dagood commented Apr 22, 2020

After getting a WIP copy of darc, I realized the new direction for CPD means source-build is basically using what I already validated to work fine in my prototype (#1466): Version.Details.xml files that give us the graph with --depth 0. So, risk already seems minimal here.

@mmitche is working on the strict coherency feature and applying strict CPDs from the bottom up in 5.0, and gave me a very rough estimate of about a week to have it through to dotnet/installer. We should verify that it ends up working in source-build but, as mentioned, it doesn't seem risky to me and waiting for that seems fine.


While thinking about this, I realized the new strict CPDs are being applied to 3.1 as well, so I think we need to update the source-build eng/Version.Details.xml to work with it. Filed #1569 for that.

@dagood
Copy link
Member Author

dagood commented Jun 22, 2020

Issue tracking propagating strict CPD through the 5.0 branches: dotnet/arcade#5685.

And a few notes after reading this again in the future: the strict CPD feature doesn't require that there's a full CPD graph in dotnet/installer. We may have to add that ourselves while moving our infra to dotnet/installer (which is fine: we have our own CPD graph in dotnet/source-build that the dotnet/installer owners should fix up if needed). Maintaining the graph also doesn't seem to require the strict CPD feature (I may be forgetting a reason), but it makes the process simpler/more reliable.

@dagood
Copy link
Member Author

dagood commented Aug 25, 2020

Issue tracking propagating strict CPD through the 5.0 branches: dotnet/arcade#5685.

We don't need to wait for this: we can try adding the source-build graph into the dotnet/installer release/5.0.1xx Version.Details.xml with CPD attributes and use update-dependencies --coherency-only --strict-coherency to see how it works. Some repos have already been added, but there are some missing like NuGet, MSBuild, Roslyn, SourceLink, and Linker.

(dotnet/extensions shouldn't be necessary anymore at all because it isn't used in the .NET SDK. (Because ASP.NET Core sharedfx and packs no longer use it.))

Then, we can merge the additions, because we will use them in the future for arcade-powered source-build. This gets a significant chunk of uncertainty out of the way.

@dagood
Copy link
Member Author

dagood commented Aug 28, 2020

Issues uncovered while moving the dependencies over:

Non-blocker: strict CPD update not working yet in dotnet/installer master, only release/5.0.1xx. mmitche's working through this.

@dagood
Copy link
Member Author

dagood commented Sep 1, 2020

Merged in dotnet/installer#8377. If there are missing CPDs or repos, I expect we'll add them when adding source-build to the repo, or during prebuilt reduction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-infra Source-build infrastructure and reporting
Projects
None yet
Development

No branches or pull requests

2 participants