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

.NET 8: Virtual Mono Repo (VMR) Lite #9359

Closed
11 tasks done
mmitche opened this issue May 13, 2022 · 3 comments
Closed
11 tasks done

.NET 8: Virtual Mono Repo (VMR) Lite #9359

mmitche opened this issue May 13, 2022 · 3 comments
Assignees
Labels
area-product-construction Issues owned by the Product Construction team. Used to label epics and untriaged, loose issues. area-unified-build Epic

Comments

@mmitche
Copy link
Member

mmitche commented May 13, 2022

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.

Business objectives

  • We have a clear idea of how the VMR may work (on the input flow and build side)
  • 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
  • VMR for .NET 8 is created and its sources are automatically synchronized
  • VMR is used to release / service source-build for .NET 8 preview 1

Technical objectives

@mmitche
Copy link
Member Author

mmitche commented May 13, 2022

/cc @tkapin @premun @MichaelSimons

@tkapin tkapin added the Epic label Jul 12, 2022
@tkapin tkapin changed the title Unified Build: VMR POC Unified Build: Virtual Mono Repo (VMR) POC Jul 12, 2022
@mmitche mmitche changed the title Unified Build: Virtual Mono Repo (VMR) POC .NET 8: Virtual Mono Repo (VMR) Lite Aug 25, 2022
@mmitche
Copy link
Member Author

mmitche commented Aug 25, 2022

@premun Updated the title to more accurately reflect the work

@mmitche mmitche added the area-product-construction Issues owned by the Product Construction team. Used to label epics and untriaged, loose issues. label Sep 27, 2022
@MilenaHristova MilenaHristova self-assigned this Oct 7, 2022
@premun
Copy link
Member

premun commented Feb 24, 2023

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

@premun premun closed this as completed Feb 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-product-construction Issues owned by the Product Construction team. Used to label epics and untriaged, loose issues. area-unified-build Epic
Projects
None yet
Development

No branches or pull requests

4 participants