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

VMR product validation tooling #3819

Open
mmitche opened this issue Jan 3, 2024 · 6 comments · Fixed by dotnet/installer#19222
Open

VMR product validation tooling #3819

mmitche opened this issue Jan 3, 2024 · 6 comments · Fixed by dotnet/installer#19222
Labels
area-unified-build Epic Groups multiple user stories. Can be grouped under a theme. up-for-grabs

Comments

@mmitche
Copy link
Member

mmitche commented Jan 3, 2024

In order to productize the vertical build, we will need tooling to determine whether the outputs produced are what we expect. This generally means that shipping artifacts have the same file structures, are signed in the same ways, have expected version numbers, etc.

Develop tooling to help out with this verification.

Several questions need to be answered as part of this work:

  • What kinds of assets (nugets, MSIs, rpms, debs, ...) are necessary to compare to get reasonable coverage
  • What comparisons should be done (file names, metadata, etc.)?
  • How will be the final tooling executed? (manually, automated runs in a pipeline)

T-Shirt Size: Medium

@mmitche mmitche converted this from a draft issue Jan 3, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added area-infra Source-build infrastructure and reporting untriaged labels Jan 3, 2024
@MichaelSimons MichaelSimons added area-unified-build and removed area-infra Source-build infrastructure and reporting untriaged labels Jan 9, 2024
@mmitche mmitche added the Epic Groups multiple user stories. Can be grouped under a theme. label Jan 11, 2024
@mmitche mmitche moved this to Ready in .NET Unified Build Jan 11, 2024
@mmitche mmitche changed the title Tooling to compare VMR and normal official build outputs VMR build output validation Jan 11, 2024
@jtschuster
Copy link
Member

To validate the file structure, I'm planning to start by making an msbuild task (probably in arcade?) to compare nuget packages and find the diffs in file structure, file contents, and nuget metadata (versions, anything else important). From there we can maybe set up something to download the baseline packages from the official build feeds and compare all the outputs. We'll need another way to validate we are producing all the right packages, though. @mmitche do you see any issues with that or know if that's duplicating any work?

@mmitche
Copy link
Member Author

mmitche commented Jan 26, 2024

That sounds about right to me. If integrating into an msbuild process is a pain, a simple console app (arcade seems like a good place for it) is also a good option.

@tkapin
Copy link
Member

tkapin commented Jan 29, 2024

I've updated the description with a few questions that need to get answered as part of this effort. Also, @MichaelSimons mentioned some existing source-build tooling that might be leveraged as part of this effort.

For the record, I think the overall work necessary to develop tooling that would give us necessary confidence in the supported (asset type, platform) matrix will be higher than M (2 weeks).

@tkapin tkapin changed the title VMR build output validation VMR build output validation tooling Jan 29, 2024
@tkapin tkapin changed the title VMR build output validation tooling VMR product validation tooling Jan 29, 2024
@MichaelSimons
Copy link
Member

Also, @MichaelSimons mentioned some existing source-build tooling that might be leveraged as part of this effort.

This is in reference to the following source-build smoke test - https://github.com/dotnet/dotnet/blob/main/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs

The problem on the source-build side is that infrastructure is needed to flag differences between the source built and microsoft products. Differences can be intentional like the source built version doesn't contain windows specific components while other times a diff may be the result of a product bug like a new component was added for the microsoft build but source-build was overlooked. Once a difference is sign-off on, meaning it is an known expected difference, the infrastructure should no longer flag that difference.

@jtschuster
Copy link
Member

I spoke with @agocke about nuget package validation and we came to the conclusion that it's simpler and more important to compare the final output tarball/zip of the installer/VMR builds to validate the VMR builds. I'll focus on that before returning to individual package validation.

@mthalman
Copy link
Member

mthalman commented May 2, 2024

Reopening this. It was mistakenly closed from dotnet/installer#19222 which only contributes to this issue but not completely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-unified-build Epic Groups multiple user stories. Can be grouped under a theme. up-for-grabs
Projects
Status: Backlog
Status: Ready
Development

Successfully merging a pull request may close this issue.

5 participants