arcade icon indicating copy to clipboard operation
arcade copied to clipboard

.NET 8: Virtual Mono Repo (VMR) Lite

Open mmitche opened this issue 3 years ago • 2 comments

This epic is about investigation of how we can effectively build up the Virtual Mono Repo, keep it in sync with the individual repositories, implementing a proof of concept and then productionizing it into a "lite" version of the full VMR.

📄 General Mechanics document - describes the operation of the full VMR.

The ultimate goal of this epic is for us to have an (internal) VMR-lite which could serve the same purpose as the source-build tarball does today. We should eventually be able to discard the tarball and use the VMR only as the source for the source-build and as a place where we can work on the source-build.

What we are thinking is that we utilize the fact that source build already mirrors how a VMR build works. Right now, the SHAs that source-build uses are determined by normal Maestro dependency flow, based on specific entries in dotnet/installer's Version.Details.xml files. We can mirror this process into a git world and assemble the VMR similarly.

VMR-lite requirements

VMR-lite is a first milestone on the way to the full VMR with some limited capabilities compared to the full VMR described in the General Mechanics document:

  • It is read-only meaning no changes done to the VMR will flow back to the individual repos automatically yet.
  • It can be initialized from ground up using any dotnet/installer commit by using the SHAs from its Version.Details.xml.
  • It can update its contents (mirrored individual repos) from one SHA to another by diffing the individual repos and applying this change.
  • We can build the RedHat/Canonical product from it (i.e. it is interchangeable with the tarball) and it does not contain binaries / files with invalid licenses (i.e. ready for a handover to Canonical).
  • We are able to validate its readiness as part of the dotnet/installer PR build.

Technical objectives

  • [x] #10257
  • [ ] #10268
  • [ ] #10258
  • [ ] #10677
  • [ ] #10961

Business Objectives

  • [ ] We have a clear idea of how the VMR may work (on the input flow and build side)
  • [ ] VMR can be used for source-build related work
  • [ ] We know what the success and failure rates of the VMR flow and build are and their types, so we can triage them as ones we should expect in a true Unified Build implementation, and which ones are specific to the POC

mmitche avatar May 13 '22 16:05 mmitche

/cc @tkapin @premun @MichaelSimons

mmitche avatar May 13 '22 16:05 mmitche

@premun Updated the title to more accurately reflect the work

mmitche avatar Aug 25 '22 18:08 mmitche

Closing this epic as Preview 1 was shipped from the VMR and that was the ultimate goal of this epic

premun avatar Feb 24 '23 10:02 premun