From 557ce053008c49757ad1dba9aa6ed2f4ed2e6b6c Mon Sep 17 00:00:00 2001 From: Premek Vysoky Date: Mon, 12 Sep 2022 13:45:58 +0200 Subject: [PATCH 1/4] Let VMR CLI handle recursive initialization --- src/VirtualMonoRepo/InitializeVMR.proj | 61 +++++-------------- src/VirtualMonoRepo/Tasks/RemoteFactory.cs | 7 ++- .../Tasks/VirtualMonoRepo_Initialize.cs | 6 +- 3 files changed, 26 insertions(+), 48 deletions(-) diff --git a/src/VirtualMonoRepo/InitializeVMR.proj b/src/VirtualMonoRepo/InitializeVMR.proj index 176498bff770..5270fc9da043 100644 --- a/src/VirtualMonoRepo/InitializeVMR.proj +++ b/src/VirtualMonoRepo/InitializeVMR.proj @@ -35,9 +35,7 @@ InitializeCleanVmr; CopyTarballContent; CommitInitialContent; - SetupSelfGithubInfo; InitializeRepoAndDependentsRecursive; - CommitGitInfoFiles; CopyTextOnlyPackages; CommitTextOnlyPackages"> @@ -60,57 +58,30 @@ - - $(SourceBuildRepoName)/ - $(VmrSourceDir)$(SourceDir) - $(IndividualRepoSourceDir)eng/ - $(IndividualRepoSourceEngDir)Version.Details.xml + $([System.IO.Path]::GetFileName("$(RepoRoot.TrimEnd('/').TrimEnd('\\'))")) + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + - - diff --git a/src/VirtualMonoRepo/Tasks/RemoteFactory.cs b/src/VirtualMonoRepo/Tasks/RemoteFactory.cs index cde8faadd5ea..848183bfeb9e 100644 --- a/src/VirtualMonoRepo/Tasks/RemoteFactory.cs +++ b/src/VirtualMonoRepo/Tasks/RemoteFactory.cs @@ -11,11 +11,13 @@ namespace Microsoft.DotNet.VirtualMonoRepo.Tasks; internal class RemoteFactory : IRemoteFactory { private readonly IProcessManager _processManager; + private readonly IVersionDetailsParser _versionDetailsParser; private readonly string _tmpPath; - public RemoteFactory(IProcessManager processManager, string tmpPath) + public RemoteFactory(IProcessManager processManager, IVersionDetailsParser versionDetailsParser, string tmpPath) { _processManager = processManager; + _versionDetailsParser = versionDetailsParser; _tmpPath = tmpPath; } @@ -33,6 +35,7 @@ public Task GetRemoteAsync(string repoUrl, Extensions.Logging.ILogger l _tmpPath, cache: null); - return System.Threading.Tasks.Task.FromResult(new Remote(githubClient, barClient: null, logger)); + IRemote remote = new Remote(githubClient, barClient: null, _versionDetailsParser, logger); + return System.Threading.Tasks.Task.FromResult(remote); } } diff --git a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs index 3a0e1b77a0c1..d75ab30af866 100644 --- a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs +++ b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs @@ -30,6 +30,10 @@ public class VirtualMonoRepo_Initialize : Build.Utilities.Task, ICancelableTask public string Revision { get; set; } + public string PackageVersion { get; set; } + + public bool Recursive { get; set; } + public VirtualMonoRepo_Initialize() { _serviceProvider = new(CreateServiceProvider); @@ -40,7 +44,7 @@ public VirtualMonoRepo_Initialize() private async Task ExecuteAsync() { var vmrInitializer = _serviceProvider.Value.GetRequiredService(); - await vmrInitializer.InitializeVmr(Repository, Revision, _cancellationToken.Token); + await vmrInitializer.InitializeRepository(Repository, Revision, PackageVersion, Recursive, _cancellationToken.Token); return true; } From 498e91226d28e3fb47381366224ab378c6c255df Mon Sep 17 00:00:00 2001 From: Premek Vysoky Date: Tue, 13 Sep 2022 15:46:00 +0200 Subject: [PATCH 2/4] Bump DarcLib --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d7182261fb10..3bbb53c19040 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -207,9 +207,9 @@ https://github.com/dotnet/arcade 4f864b2841b3317bdfc516ead0ba6e7856fab575 - + https://github.com/dotnet/arcade-services - f169af20efd542ef8aba38154efb9ccd22eba2c4 + cd705029f2675970b42f9273ae359d0926c5e815 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 8179424ad9a8..04d845c6ed72 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -30,7 +30,7 @@ - 1.1.0-beta.22429.1 + 1.1.0-beta.20074.1 From 9e7627c11ce62762434662f12932761e2f98469e Mon Sep 17 00:00:00 2001 From: Premek Vysoky Date: Tue, 13 Sep 2022 15:56:51 +0200 Subject: [PATCH 3/4] Bump to the correct version this time --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- src/VirtualMonoRepo/Tasks/RemoteFactory.cs | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3bbb53c19040..0a42b8c8b50c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -207,9 +207,9 @@ https://github.com/dotnet/arcade 4f864b2841b3317bdfc516ead0ba6e7856fab575 - + https://github.com/dotnet/arcade-services - cd705029f2675970b42f9273ae359d0926c5e815 + 1031000fad67fa8e3f8dc67ef73611b556eb33a5 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 04d845c6ed72..27438cca448e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -30,7 +30,7 @@ - 1.1.0-beta.20074.1 + 1.1.0-beta.22462.2 diff --git a/src/VirtualMonoRepo/Tasks/RemoteFactory.cs b/src/VirtualMonoRepo/Tasks/RemoteFactory.cs index 848183bfeb9e..24d8914f3847 100644 --- a/src/VirtualMonoRepo/Tasks/RemoteFactory.cs +++ b/src/VirtualMonoRepo/Tasks/RemoteFactory.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Microsoft.DotNet.DarcLib; using Microsoft.DotNet.DarcLib.Helpers; +using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.VirtualMonoRepo.Tasks; @@ -21,12 +22,12 @@ public RemoteFactory(IProcessManager processManager, IVersionDetailsParser versi _tmpPath = tmpPath; } - public Task GetBarOnlyRemoteAsync(Extensions.Logging.ILogger logger) + public Task GetBarOnlyRemoteAsync(ILogger logger) { throw new NotImplementedException(); } - public Task GetRemoteAsync(string repoUrl, Extensions.Logging.ILogger logger) + public Task GetRemoteAsync(string repoUrl, ILogger logger) { var githubClient = new DarcLib.GitHubClient( _processManager.GitExecutable, @@ -36,6 +37,6 @@ public Task GetRemoteAsync(string repoUrl, Extensions.Logging.ILogger l cache: null); IRemote remote = new Remote(githubClient, barClient: null, _versionDetailsParser, logger); - return System.Threading.Tasks.Task.FromResult(remote); + return Task.FromResult(remote); } } From 7dfb3165fc2471a9bf34bd353f5450fd5ee17b97 Mon Sep 17 00:00:00 2001 From: Premek Vysoky Date: Tue, 13 Sep 2022 16:06:44 +0200 Subject: [PATCH 4/4] Add XML doc for the VMR MSBuild task --- src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs index d75ab30af866..54b947ac445c 100644 --- a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs +++ b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs @@ -14,6 +14,11 @@ namespace Microsoft.DotNet.VirtualMonoRepo.Tasks; +/// +/// This tasks equals calling the "darc vmr initialize" command. +/// This command pulls an individual repository into the VMR for the first time. +/// It can also recursively pull all of its dependencies based on Version.Details.xml. +/// public class VirtualMonoRepo_Initialize : Build.Utilities.Task, ICancelableTask { private readonly Lazy _serviceProvider;