diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a13ba5dd1066..e9f11e3282a5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 @@ -64,58 +64,58 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 https://github.com/nuget/nuget.client @@ -186,357 +186,357 @@ https://github.com/nuget/nuget.client fb8b14ee3c574f9b559fc2057cadd20d55a75526 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 https://github.com/dotnet/arcade-services @@ -554,9 +554,9 @@ https://github.com/microsoft/testfx 37692a09d71e05eedc0298d670bc7194fa734d36 - + https://github.com/dotnet/dotnet - ad8565092bbfdd5c8b4a94a718d10b2d394f7aee + 7e27ec4c314eb774eae2c54ce4682c98973c7c60 diff --git a/eng/Versions.props b/eng/Versions.props index a811eab83bd1..7f895f649e65 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -54,7 +54,7 @@ https://dotnetclimsrc.blob.core.windows.net/dotnet/ - 10.0.0-preview.25265.101 + 10.0.0-preview.25304.106 1.0.0-20230414.1 2.23.0 2.0.1-servicing-26011-01 @@ -63,7 +63,7 @@ 4.8.6 1.2.0-beta.435 4.0.5 - 2.0.0-beta5.25279.2 + 2.0.0-beta5.25304.106 2.0.0-beta5.25279.2 1.1.2-beta1.22216.1 10.3.0 @@ -81,11 +81,11 @@ - 2.0.0-preview.1.25265.101 + 2.0.0-preview.1.25304.106 - 2.2.0-beta.25265.101 + 2.2.0-beta.25304.106 @@ -97,44 +97,44 @@ - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 8.0.0-rc.1.23414.4 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 2.1.0 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 8.0.0 @@ -150,8 +150,8 @@ - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 @@ -170,13 +170,13 @@ - 17.15.0-preview-25265-101 - 17.15.0-preview-25265-101 - 17.15.0-preview-25265-101 + 17.15.0-preview-25304-106 + 17.15.0-preview-25304-106 + 17.15.0-preview-25304-106 - 10.0.0-preview.25265.101 + 10.0.0-preview.25304.106 @@ -197,81 +197,83 @@ At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent --> - 17.15.0-preview-25265-101 - 17.15.0-preview-25265-101 + 17.15.0-preview-25304-106 + 17.15.0-preview-25304-106 17.11.4 17.13 - 10.0.100-preview.5.25265.101 - 10.0.100-preview.5.25265.101 - 10.0.100-preview.5.25265.101 - 10.0.100-preview.5.25265.101 - 10.0.100-preview.5.25265.101 + 10.0.100-preview.5.25304.106 + 10.0.100-preview.5.25304.106 + 10.0.100-preview.5.25304.106 + 10.0.100-preview.5.25304.106 + 10.0.100-preview.5.25304.106 - 10.0.100-preview.5.25265.101 - 10.0.100-preview.5.25265.101 - 10.0.100-preview.5.25265.101 - 10.0.100-preview.5.25265.101 + 10.0.100-preview.5.25304.106 + 10.0.100-preview.5.25304.106 + 10.0.100-preview.5.25304.106 + 10.0.100-preview.5.25304.106 - 14.0.100-beta.25265.101 + 14.0.100-beta.25304.106 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 - 5.0.0-1.25265.101 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 + 5.0.0-1.25304.106 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 - 10.0.0-preview.25265.101 - 10.0.0-preview.25265.101 - 10.0.0-preview.25265.101 + 10.0.0-preview.25304.106 + 10.0.0-preview.25304.106 + 10.0.0-preview.25304.106 - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 3.1.56 3.1.56 @@ -281,8 +283,8 @@ - 10.0.0-preview.5.25265.101 - 10.0.0-preview.5.25265.101 + 10.0.0-preview.6.25304.106 + 10.0.0-preview.6.25304.106 2.2.0-beta.19072.10 @@ -295,21 +297,21 @@ - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 - 10.0.0-beta.25265.101 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 + 10.0.0-beta.25304.106 diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 6b3be1916fca..8cfee107e7a3 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -21,6 +21,7 @@ Param( [switch] $publish, [switch] $clean, [switch][Alias('pb')]$productBuild, + [switch]$fromVMR, [switch][Alias('bl')]$binaryLog, [switch][Alias('nobl')]$excludeCIBinarylog, [switch] $ci, @@ -74,6 +75,7 @@ function Print-Usage() { Write-Host " -nativeToolsOnMachine Sets the native tools on machine environment variable (indicating that the script should use native tools on machine)" Write-Host " -nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')" Write-Host " -buildCheck Sets /check msbuild parameter" + Write-Host " -fromVMR Set when building from within the VMR" Write-Host "" Write-Host "Command line arguments not listed above are passed thru to msbuild." @@ -127,7 +129,8 @@ function Build { /p:Deploy=$deploy ` /p:Test=$test ` /p:Pack=$pack ` - /p:DotNetBuildRepo=$productBuild ` + /p:DotNetBuild=$productBuild ` + /p:DotNetBuildFromVMR=$fromVMR ` /p:IntegrationTest=$integrationTest ` /p:PerformanceTest=$performanceTest ` /p:Sign=$sign ` diff --git a/eng/common/build.sh b/eng/common/build.sh index 27ae2c85601f..9767bb411a4f 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -43,6 +43,7 @@ usage() echo " --nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')" echo " --warnAsError Sets warnaserror msbuild parameter ('true' or 'false')" echo " --buildCheck Sets /check msbuild parameter" + echo " --fromVMR Set when building from within the VMR" echo "" echo "Command line arguments not listed above are passed thru to msbuild." echo "Arguments can also be passed in with a single hyphen." @@ -64,6 +65,7 @@ restore=false build=false source_build=false product_build=false +from_vmr=false rebuild=false test=false integration_test=false @@ -89,7 +91,7 @@ verbosity='minimal' runtime_source_feed='' runtime_source_feed_key='' -properties='' +properties=() while [[ $# > 0 ]]; do opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")" case "$opt" in @@ -129,19 +131,22 @@ while [[ $# > 0 ]]; do -pack) pack=true ;; - -sourcebuild|-sb) + -sourcebuild|-source-build|-sb) build=true source_build=true product_build=true restore=true pack=true ;; - -productbuild|-pb) + -productbuild|-product-build|-pb) build=true product_build=true restore=true pack=true ;; + -fromvmr|-from-vmr) + from_vmr=true + ;; -test|-t) test=true ;; @@ -187,7 +192,7 @@ while [[ $# > 0 ]]; do shift ;; *) - properties="$properties $1" + properties+=("$1") ;; esac @@ -221,7 +226,7 @@ function Build { InitializeCustomToolset if [[ ! -z "$projects" ]]; then - properties="$properties /p:Projects=$projects" + properties+=("/p:Projects=$projects") fi local bl="" @@ -241,8 +246,9 @@ function Build { /p:RepoRoot="$repo_root" \ /p:Restore=$restore \ /p:Build=$build \ - /p:DotNetBuildRepo=$product_build \ + /p:DotNetBuild=$product_build \ /p:DotNetBuildSourceOnly=$source_build \ + /p:DotNetBuildFromVMR=$from_vmr \ /p:Rebuild=$rebuild \ /p:Test=$test \ /p:Pack=$pack \ @@ -251,7 +257,7 @@ function Build { /p:Sign=$sign \ /p:Publish=$publish \ /p:RestoreStaticGraphEnableBinaryLogger=$binary_log \ - $properties + ${properties[@]+"${properties[@]}"} ExitWithExitCode 0 } diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 4f1dc42e02c5..d5303229c97e 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -32,6 +32,12 @@ parameters: # Optional: 🌤️ or not the build has assets it wants to publish to BAR isAssetlessBuild: false + # Optional, publishing version + publishingVersion: 3 + + # Optional: A minimatch pattern for the asset manifests to publish to BAR + assetManifestsPattern: '*/manifests/**/*.xml' + jobs: - job: Asset_Registry_Publish @@ -77,13 +83,31 @@ jobs: clean: true - ${{ if eq(parameters.isAssetlessBuild, 'false') }}: - - task: DownloadPipelineArtifact@2 - displayName: Download Asset Manifests - inputs: - artifactName: AssetManifests - targetPath: '$(Build.StagingDirectory)/AssetManifests' - condition: ${{ parameters.condition }} - continueOnError: ${{ parameters.continueOnError }} + - ${{ if eq(parameters.publishingVersion, 3) }}: + - task: DownloadPipelineArtifact@2 + displayName: Download Asset Manifests + inputs: + artifactName: AssetManifests + targetPath: '$(Build.StagingDirectory)/AssetManifests' + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + - ${{ if eq(parameters.publishingVersion, 4) }}: + - task: DownloadPipelineArtifact@2 + displayName: Download V4 asset manifests + inputs: + itemPattern: '*/manifests/**/*.xml' + targetPath: '$(Build.StagingDirectory)/AllAssetManifests' + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + - task: CopyFiles@2 + displayName: Copy V4 asset manifests to AssetManifests + inputs: + SourceFolder: '$(Build.StagingDirectory)/AllAssetManifests' + Contents: ${{ parameters.assetManifestsPattern }} + TargetFolder: '$(Build.StagingDirectory)/AssetManifests' + flattenFolders: true + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} - task: NuGetAuthenticate@1 @@ -120,6 +144,17 @@ jobs: Copy-Item -Path $symbolExclusionfile -Destination "$(Build.StagingDirectory)/ReleaseConfigs" } + - ${{ if eq(parameters.publishingVersion, 4) }}: + - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml + parameters: + is1ESPipeline: ${{ parameters.is1ESPipeline }} + args: + targetPath: '$(Build.ArtifactStagingDirectory)/MergedManifest.xml' + artifactName: AssetManifests + displayName: 'Publish Merged Manifest' + retryCountOnTaskFailure: 10 # for any logs being locked + sbomEnabled: false # we don't need SBOM for logs + - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 5757915edb3e..a151fd811e3e 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -193,9 +193,6 @@ stages: buildId: $(AzDOBuildId) artifactName: PackageArtifacts checkDownloadedFiles: true - itemPattern: | - ** - !**/Microsoft.SourceBuild.Intermediate.*.nupkg # This is necessary whenever we want to publish/restore to an AzDO private feed # Since sdk-task.ps1 tries to restore packages we need to do this authentication here diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml index 2bcf974ee153..a3540ba00c7e 100644 --- a/eng/common/core-templates/steps/install-microbuild.yml +++ b/eng/common/core-templates/steps/install-microbuild.yml @@ -48,38 +48,3 @@ steps: eq(variables['_SignType'], 'real') ) )) - - # Workaround for ESRP CLI on Linux - https://github.com/dotnet/source-build/issues/4964 - - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}: - - task: UseDotNet@2 - displayName: Install .NET 9.0 SDK for ESRP CLI Workaround - inputs: - packageType: sdk - version: 9.0.x - installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet - workingDirectory: ${{ parameters.microBuildOutputFolder }} - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - - - task: PowerShell@2 - displayName: Workaround for ESRP CLI on Linux - inputs: - targetType: 'inline' - script: | - Write-Host "Copying Linux Path" - $MBSIGN_APPFOLDER = '$(MBSIGN_APPFOLDER)' - $MBSIGN_APPFOLDER = ($MBSIGN_APPFOLDER -replace '/build', '') - - $versionRegex = '\d+\.\d+\.\d+' - $package = Get-ChildItem -Path $MBSIGN_APPFOLDER -Directory | - Where-Object { $_.Name -match $versionRegex } - - if ($package.Count -ne 1) { - Write-Host "There should be exactly one matching subfolder, but found $($package.Count)." - exit 1 - } - - $MBSIGN_APPFOLDER = $package[0].FullName + '/build' - $MBSIGN_APPFOLDER | Write-Host - $SignConfigPath = $MBSIGN_APPFOLDER + '/signconfig.xml' - Copy-Item -Path "$(MBSIGN_APPFOLDER)/signconfig.xml" -Destination $SignConfigPath -Force - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) diff --git a/eng/common/sdl/packages.config b/eng/common/sdl/packages.config index 4585cfd6bba1..e5f543ea68c2 100644 --- a/eng/common/sdl/packages.config +++ b/eng/common/sdl/packages.config @@ -1,4 +1,4 @@ - + diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml new file mode 100644 index 000000000000..599afb6186b8 --- /dev/null +++ b/eng/common/templates/steps/vmr-sync.yml @@ -0,0 +1,207 @@ +### These steps synchronize new code from product repositories into the VMR (https://github.com/dotnet/dotnet). +### They initialize the darc CLI and pull the new updates. +### Changes are applied locally onto the already cloned VMR (located in $vmrPath). + +parameters: +- name: targetRef + displayName: Target revision in dotnet/ to synchronize + type: string + default: $(Build.SourceVersion) + +- name: vmrPath + displayName: Path where the dotnet/dotnet is checked out to + type: string + default: $(Agent.BuildDirectory)/vmr + +- name: additionalSyncs + displayName: Optional list of package names whose repo's source will also be synchronized in the local VMR, e.g. NuGet.Protocol + type: object + default: [] + +steps: +- checkout: vmr + displayName: Clone dotnet/dotnet + path: vmr + clean: true + +- checkout: self + displayName: Clone $(Build.Repository.Name) + path: repo + fetchDepth: 0 + +# This step is needed so that when we get a detached HEAD / shallow clone, +# we still pull the commit into the temporary repo clone to use it during the sync. +# Also unshallow the clone so that forwardflow command would work. +- script: | + git branch repo-head + git rev-parse HEAD + displayName: Label PR commit + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + vmr_sha=$(grep -oP '(?<=Sha=")[^"]*' $(Agent.BuildDirectory)/repo/eng/Version.Details.xml) + echo "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- powershell: | + [xml]$xml = Get-Content -Path $(Agent.BuildDirectory)/repo/eng/Version.Details.xml + $vmr_sha = $xml.SelectSingleNode("//Source").Sha + Write-Output "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Windows) + condition: eq(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + git fetch --all + git checkout $(vmr_sha) + displayName: Checkout VMR at correct sha for repo flow + workingDirectory: ${{ parameters.vmrPath }} + +- script: | + git config --global user.name "dotnet-maestro[bot]" + git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com" + displayName: Set git author to dotnet-maestro[bot] + workingDirectory: ${{ parameters.vmrPath }} + +- script: | + ./eng/common/vmr-sync.sh \ + --vmr ${{ parameters.vmrPath }} \ + --tmp $(Agent.TempDirectory) \ + --azdev-pat '$(dn-bot-all-orgs-code-r)' \ + --ci \ + --debug + + if [ "$?" -ne 0 ]; then + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + fi + displayName: Sync repo into VMR (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + git config --global diff.astextplain.textconv echo + git config --system core.longpaths true + displayName: Configure Windows git (longpaths, astextplain) + condition: eq(variables['Agent.OS'], 'Windows_NT') + +- powershell: | + ./eng/common/vmr-sync.ps1 ` + -vmr ${{ parameters.vmrPath }} ` + -tmp $(Agent.TempDirectory) ` + -azdevPat '$(dn-bot-all-orgs-code-r)' ` + -ci ` + -debugOutput + + if ($LASTEXITCODE -ne 0) { + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + } + displayName: Sync repo into VMR (Windows) + condition: eq(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: + - task: CopyFiles@2 + displayName: Collect failed patches + condition: failed() + inputs: + SourceFolder: '$(Agent.TempDirectory)' + Contents: '*.patch' + TargetFolder: '$(Build.ArtifactStagingDirectory)/FailedPatches' + + - publish: '$(Build.ArtifactStagingDirectory)/FailedPatches' + artifact: $(System.JobDisplayName)_FailedPatches + displayName: Upload failed patches + condition: failed() + +- ${{ each assetName in parameters.additionalSyncs }}: + # The vmr-sync script ends up staging files in the local VMR so we have to commit those + - script: + git commit --allow-empty -am "Forward-flow $(Build.Repository.Name)" + displayName: Commit local VMR changes + workingDirectory: ${{ parameters.vmrPath }} + + - script: | + set -ex + + echo "Searching for details of asset ${{ assetName }}..." + + # Use darc to get dependencies information + dependencies=$(./.dotnet/dotnet darc get-dependencies --name '${{ assetName }}' --ci) + + # Extract repository URL and commit hash + repository=$(echo "$dependencies" | grep 'Repo:' | sed 's/Repo:[[:space:]]*//' | head -1) + + if [ -z "$repository" ]; then + echo "##vso[task.logissue type=error]Asset ${{ assetName }} not found in the dependency list" + exit 1 + fi + + commit=$(echo "$dependencies" | grep 'Commit:' | sed 's/Commit:[[:space:]]*//' | head -1) + + echo "Updating the VMR from $repository / $commit..." + cd .. + git clone $repository ${{ assetName }} + cd ${{ assetName }} + git checkout $commit + git branch "sync/$commit" + + ./eng/common/vmr-sync.sh \ + --vmr ${{ parameters.vmrPath }} \ + --tmp $(Agent.TempDirectory) \ + --azdev-pat '$(dn-bot-all-orgs-code-r)' \ + --ci \ + --debug + + if [ "$?" -ne 0 ]; then + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + fi + displayName: Sync ${{ assetName }} into (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + + - powershell: | + $ErrorActionPreference = 'Stop' + + Write-Host "Searching for details of asset ${{ assetName }}..." + + $dependencies = .\.dotnet\dotnet darc get-dependencies --name '${{ assetName }}' --ci + + $repository = $dependencies | Select-String -Pattern 'Repo:\s+([^\s]+)' | Select-Object -First 1 + $repository -match 'Repo:\s+([^\s]+)' | Out-Null + $repository = $matches[1] + + if ($repository -eq $null) { + Write-Error "Asset ${{ assetName }} not found in the dependency list" + exit 1 + } + + $commit = $dependencies | Select-String -Pattern 'Commit:\s+([^\s]+)' | Select-Object -First 1 + $commit -match 'Commit:\s+([^\s]+)' | Out-Null + $commit = $matches[1] + + Write-Host "Updating the VMR from $repository / $commit..." + cd .. + git clone $repository ${{ assetName }} + cd ${{ assetName }} + git checkout $commit + git branch "sync/$commit" + + .\eng\common\vmr-sync.ps1 ` + -vmr ${{ parameters.vmrPath }} ` + -tmp $(Agent.TempDirectory) ` + -azdevPat '$(dn-bot-all-orgs-code-r)' ` + -ci ` + -debugOutput + + if ($LASTEXITCODE -ne 0) { + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + } + displayName: Sync ${{ assetName }} into (Windows) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml new file mode 100644 index 000000000000..670cf32c3bd1 --- /dev/null +++ b/eng/common/templates/vmr-build-pr.yml @@ -0,0 +1,33 @@ +trigger: none +pr: + branches: + include: + - main + - release/* + paths: + exclude: + - documentation/* + - README.md + - CODEOWNERS + +variables: +- template: /eng/common/templates/variables/pool-providers.yml@self + +- name: skipComponentGovernanceDetection # we run CG on internal builds only + value: true + +- name: Codeql.Enabled # we run CodeQL on internal builds only + value: false + +resources: + repositories: + - repository: vmr + type: github + name: dotnet/dotnet + endpoint: dotnet + +stages: +- template: /eng/pipelines/templates/stages/vmr-build.yml@vmr + parameters: + isBuiltFromVmr: false + scope: lite diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 5f40a3f8238a..c9e39595b586 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -65,8 +65,8 @@ $ErrorActionPreference = 'Stop' # Base-64 encoded SAS token that has permission to storage container described by $runtimeSourceFeed [string]$runtimeSourceFeedKey = if (Test-Path variable:runtimeSourceFeedKey) { $runtimeSourceFeedKey } else { $null } -# True if the build is a product build -[bool]$productBuild = if (Test-Path variable:productBuild) { $productBuild } else { $false } +# True when the build is running within the VMR. +[bool]$fromVMR = if (Test-Path variable:fromVMR) { $fromVMR } else { $false } function Create-Directory ([string[]] $path) { New-Item -Path $path -Force -ItemType 'Directory' | Out-Null @@ -644,7 +644,6 @@ function GetNuGetPackageCachePath() { $env:NUGET_PACKAGES = Join-Path $env:UserProfile '.nuget\packages\' } else { $env:NUGET_PACKAGES = Join-Path $RepoRoot '.packages\' - $env:RESTORENOHTTPCACHE = $true } } @@ -850,8 +849,8 @@ function MSBuild-Core() { } # When running on Azure Pipelines, override the returned exit code to avoid double logging. - # Skip this when the build is a child of the VMR orchestrator build. - if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$productBuild) { + # Skip this when the build is a child of the VMR build. + if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$fromVMR) { Write-PipelineSetResult -Result "Failed" -Message "msbuild execution failed." # Exiting with an exit code causes the azure pipelines task to log yet another "noise" error # The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 25f5932eee98..a7e849315106 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -72,8 +72,8 @@ fi runtime_source_feed=${runtime_source_feed:-''} runtime_source_feed_key=${runtime_source_feed_key:-''} -# True if the build is a product build -product_build=${product_build:-false} +# True when the build is running within the VMR. +from_vmr=${from_vmr:-false} # Resolve any symlinks in the given path. function ResolvePath { @@ -345,14 +345,12 @@ function InitializeBuildTool { _InitializeBuildToolCommand="msbuild" } -# Set RestoreNoHttpCache as a workaround for https://github.com/NuGet/Home/issues/3116 function GetNuGetPackageCachePath { if [[ -z ${NUGET_PACKAGES:-} ]]; then if [[ "$use_global_nuget_cache" == true ]]; then export NUGET_PACKAGES="$HOME/.nuget/packages/" else export NUGET_PACKAGES="$repo_root/.packages/" - export RESTORENOHTTPCACHE=true fi fi @@ -506,8 +504,8 @@ function MSBuild-Core { echo "Build failed with exit code $exit_code. Check errors above." # When running on Azure Pipelines, override the returned exit code to avoid double logging. - # Skip this when the build is a child of the VMR orchestrator build. - if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$product_build" != true ]]; then + # Skip this when the build is a child of the VMR build. + if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$from_vmr" != true ]]; then Write-PipelineSetResult -result "Failed" -message "msbuild execution failed." # Exiting with an exit code causes the azure pipelines task to log yet another "noise" error # The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error @@ -530,6 +528,7 @@ function GetDarc { fi "$eng_root/common/darc-init.sh" --toolpath "$darc_path" $version + darc_tool="$darc_path/darc" } # Returns a full path to an Arcade SDK task project file. diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 new file mode 100755 index 000000000000..97302f3205be --- /dev/null +++ b/eng/common/vmr-sync.ps1 @@ -0,0 +1,138 @@ +<# +.SYNOPSIS + +This script is used for synchronizing the current repository into a local VMR. +It pulls the current repository's code into the specified VMR directory for local testing or +Source-Build validation. + +.DESCRIPTION + +The tooling used for synchronization will clone the VMR repository into a temporary folder if +it does not already exist. These clones can be reused in future synchronizations, so it is +recommended to dedicate a folder for this to speed up re-runs. + +.EXAMPLE + Synchronize current repository into a local VMR: + ./vmr-sync.ps1 -vmrDir "$HOME/repos/dotnet" -tmpDir "$HOME/repos/tmp" + +.PARAMETER tmpDir +Required. Path to the temporary folder where repositories will be cloned + +.PARAMETER vmrBranch +Optional. Branch of the 'dotnet/dotnet' repo to synchronize. The VMR will be checked out to this branch + +.PARAMETER azdevPat +Optional. Azure DevOps PAT to use for cloning private repositories. + +.PARAMETER vmrDir +Optional. Path to the dotnet/dotnet repository. When null, gets cloned to the temporary folder + +.PARAMETER debugOutput +Optional. Enables debug logging in the darc vmr command. + +.PARAMETER ci +Optional. Denotes that the script is running in a CI environment. +#> +param ( + [Parameter(Mandatory=$true, HelpMessage="Path to the temporary folder where repositories will be cloned")] + [string][Alias('t', 'tmp')]$tmpDir, + [string][Alias('b', 'branch')]$vmrBranch, + [string]$remote, + [string]$azdevPat, + [string][Alias('v', 'vmr')]$vmrDir, + [switch]$ci, + [switch]$debugOutput +) + +function Fail { + Write-Host "> $($args[0])" -ForegroundColor 'Red' +} + +function Highlight { + Write-Host "> $($args[0])" -ForegroundColor 'Cyan' +} + +$verbosity = 'verbose' +if ($debugOutput) { + $verbosity = 'debug' +} +# Validation + +if (-not $tmpDir) { + Fail "Missing -tmpDir argument. Please specify the path to the temporary folder where the repositories will be cloned" + exit 1 +} + +# Sanitize the input + +if (-not $vmrDir) { + $vmrDir = Join-Path $tmpDir 'dotnet' +} + +if (-not (Test-Path -Path $tmpDir -PathType Container)) { + New-Item -ItemType Directory -Path $tmpDir | Out-Null +} + +# Prepare the VMR + +if (-not (Test-Path -Path $vmrDir -PathType Container)) { + Highlight "Cloning 'dotnet/dotnet' into $vmrDir.." + git clone https://github.com/dotnet/dotnet $vmrDir + + if ($vmrBranch) { + git -C $vmrDir switch -c $vmrBranch + } +} +else { + if ((git -C $vmrDir diff --quiet) -eq $false) { + Fail "There are changes in the working tree of $vmrDir. Please commit or stash your changes" + exit 1 + } + + if ($vmrBranch) { + Highlight "Preparing $vmrDir" + git -C $vmrDir checkout $vmrBranch + git -C $vmrDir pull + } +} + +Set-StrictMode -Version Latest + +# Prepare darc + +Highlight 'Installing .NET, preparing the tooling..' +. .\eng\common\tools.ps1 +$dotnetRoot = InitializeDotNetCli -install:$true +$darc = Get-Darc +$dotnet = "$dotnetRoot\dotnet.exe" + +Highlight "Starting the synchronization of VMR.." + +# Synchronize the VMR +$darcArgs = ( + "vmr", "forwardflow", + "--tmp", $tmpDir, + "--$verbosity", + $vmrDir +) + +if ($ci) { + $darcArgs += ("--ci") +} + +if ($azdevPat) { + $darcArgs += ("--azdev-pat", $azdevPat) +} + +& "$darc" $darcArgs + +if ($LASTEXITCODE -eq 0) { + Highlight "Synchronization succeeded" +} +else { + Fail "Synchronization of repo to VMR failed!" + Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." + Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." + Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 +} diff --git a/eng/common/vmr-sync.sh b/eng/common/vmr-sync.sh new file mode 100755 index 000000000000..44239e331c0c --- /dev/null +++ b/eng/common/vmr-sync.sh @@ -0,0 +1,207 @@ +#!/bin/bash + +### This script is used for synchronizing the current repository into a local VMR. +### It pulls the current repository's code into the specified VMR directory for local testing or +### Source-Build validation. +### +### The tooling used for synchronization will clone the VMR repository into a temporary folder if +### it does not already exist. These clones can be reused in future synchronizations, so it is +### recommended to dedicate a folder for this to speed up re-runs. +### +### USAGE: +### Synchronize current repository into a local VMR: +### ./vmr-sync.sh --tmp "$HOME/repos/tmp" "$HOME/repos/dotnet" +### +### Options: +### -t, --tmp, --tmp-dir PATH +### Required. Path to the temporary folder where repositories will be cloned +### +### -b, --branch, --vmr-branch BRANCH_NAME +### Optional. Branch of the 'dotnet/dotnet' repo to synchronize. The VMR will be checked out to this branch +### +### --debug +### Optional. Turns on the most verbose logging for the VMR tooling +### +### --remote name:URI +### Optional. Additional remote to use during the synchronization +### This can be used to synchronize to a commit from a fork of the repository +### Example: 'runtime:https://github.com/yourfork/runtime' +### +### --azdev-pat +### Optional. Azure DevOps PAT to use for cloning private repositories. +### +### -v, --vmr, --vmr-dir PATH +### Optional. Path to the dotnet/dotnet repository. When null, gets cloned to the temporary folder + +source="${BASH_SOURCE[0]}" + +# resolve $source until the file is no longer a symlink +while [[ -h "$source" ]]; do + scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + source="$(readlink "$source")" + # if $source was a relative symlink, we need to resolve it relative to the path where the + # symlink file was located + [[ $source != /* ]] && source="$scriptroot/$source" +done +scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + +function print_help () { + sed -n '/^### /,/^$/p' "$source" | cut -b 5- +} + +COLOR_RED=$(tput setaf 1 2>/dev/null || true) +COLOR_CYAN=$(tput setaf 6 2>/dev/null || true) +COLOR_CLEAR=$(tput sgr0 2>/dev/null || true) +COLOR_RESET=uniquesearchablestring +FAILURE_PREFIX='> ' + +function fail () { + echo "${COLOR_RED}$FAILURE_PREFIX${1//${COLOR_RESET}/${COLOR_RED}}${COLOR_CLEAR}" >&2 +} + +function highlight () { + echo "${COLOR_CYAN}$FAILURE_PREFIX${1//${COLOR_RESET}/${COLOR_CYAN}}${COLOR_CLEAR}" +} + +tmp_dir='' +vmr_dir='' +vmr_branch='' +additional_remotes='' +verbosity=verbose +azdev_pat='' +ci=false + +while [[ $# -gt 0 ]]; do + opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")" + case "$opt" in + -t|--tmp|--tmp-dir) + tmp_dir=$2 + shift + ;; + -v|--vmr|--vmr-dir) + vmr_dir=$2 + shift + ;; + -b|--branch|--vmr-branch) + vmr_branch=$2 + shift + ;; + --remote) + additional_remotes="$additional_remotes $2" + shift + ;; + --azdev-pat) + azdev_pat=$2 + shift + ;; + --ci) + ci=true + ;; + -d|--debug) + verbosity=debug + ;; + -h|--help) + print_help + exit 0 + ;; + *) + fail "Invalid argument: $1" + print_help + exit 1 + ;; + esac + + shift +done + +# Validation + +if [[ -z "$tmp_dir" ]]; then + fail "Missing --tmp-dir argument. Please specify the path to the temporary folder where the repositories will be cloned" + exit 1 +fi + +# Sanitize the input + +if [[ -z "$vmr_dir" ]]; then + vmr_dir="$tmp_dir/dotnet" +fi + +if [[ ! -d "$tmp_dir" ]]; then + mkdir -p "$tmp_dir" +fi + +if [[ "$verbosity" == "debug" ]]; then + set -x +fi + +# Prepare the VMR + +if [[ ! -d "$vmr_dir" ]]; then + highlight "Cloning 'dotnet/dotnet' into $vmr_dir.." + git clone https://github.com/dotnet/dotnet "$vmr_dir" + + if [[ -n "$vmr_branch" ]]; then + git -C "$vmr_dir" switch -c "$vmr_branch" + fi +else + if ! git -C "$vmr_dir" diff --quiet; then + fail "There are changes in the working tree of $vmr_dir. Please commit or stash your changes" + exit 1 + fi + + if [[ -n "$vmr_branch" ]]; then + highlight "Preparing $vmr_dir" + git -C "$vmr_dir" checkout "$vmr_branch" + git -C "$vmr_dir" pull + fi +fi + +set -e + +# Prepare darc + +highlight 'Installing .NET, preparing the tooling..' +source "./eng/common/tools.sh" +InitializeDotNetCli true +GetDarc +dotnetDir=$( cd ./.dotnet/; pwd -P ) +dotnet=$dotnetDir/dotnet + +highlight "Starting the synchronization of VMR.." +set +e + +if [[ -n "$additional_remotes" ]]; then + additional_remotes="--additional-remotes $additional_remotes" +fi + +if [[ -n "$azdev_pat" ]]; then + azdev_pat="--azdev-pat $azdev_pat" +fi + +ci_arg='' +if [[ "$ci" == "true" ]]; then + ci_arg="--ci" +fi + +# Synchronize the VMR + +export DOTNET_ROOT="$dotnetDir" + +"$darc_tool" vmr forwardflow \ + --tmp "$tmp_dir" \ + $azdev_pat \ + --$verbosity \ + $ci_arg \ + $additional_remotes \ + "$vmr_dir" + +if [[ $? == 0 ]]; then + highlight "Synchronization succeeded" +else + fail "Synchronization of repo to VMR failed!" + fail "'$vmr_dir' is left in its last state (re-run of this script will reset it)." + fail "Please inspect the logs which contain path to the failing patch file (use --debug to get all the details)." + fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 +fi diff --git a/global.json b/global.json index 9f7058551db2..e2a9b2417f57 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "10.0.100-preview.3.25201.16", + "dotnet": "10.0.100-preview.6.25302.104", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -14,8 +14,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25265.101", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25265.101", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25304.106", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25304.106", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0" } diff --git a/src/BuiltInTools/dotnet-format/dotnet-format.csproj b/src/BuiltInTools/dotnet-format/dotnet-format.csproj index fb39ccbb0901..4e11681f57f8 100644 --- a/src/BuiltInTools/dotnet-format/dotnet-format.csproj +++ b/src/BuiltInTools/dotnet-format/dotnet-format.csproj @@ -30,6 +30,8 @@ + + diff --git a/src/Layout/redist/targets/GenerateBundledVersions.targets b/src/Layout/redist/targets/GenerateBundledVersions.targets index b93c9d9b7ef0..2f683b957af1 100644 --- a/src/Layout/redist/targets/GenerateBundledVersions.targets +++ b/src/Layout/redist/targets/GenerateBundledVersions.targets @@ -1,7 +1,6 @@ - + + Condition="'$(DotNetBuildFromVMR)' != 'true'"> @@ -28,7 +27,7 @@ + Condition="'$(DotNetBuildFromVMR)' != 'true'"> @@ -36,7 +35,7 @@ + Condition="'$(DotNetBuildFromVMR)' != 'true'"> diff --git a/src/Layout/redist/targets/GenerateLayout.targets b/src/Layout/redist/targets/GenerateLayout.targets index 8dbccd2b3815..2560cc533d93 100644 --- a/src/Layout/redist/targets/GenerateLayout.targets +++ b/src/Layout/redist/targets/GenerateLayout.targets @@ -199,8 +199,8 @@ net9.0 - $(NetCurrent) - net9.0 + $(NetCurrent) + net9.0 $(NuGetPackageRoot)microsoft.testplatform.cli/$(MicrosoftTestPlatformCLIPackageVersion)/contentFiles/any/$(TestCliNuGetDirectoryTargetFramework)/ diff --git a/src/Layout/redist/targets/RestoreLayout.targets b/src/Layout/redist/targets/RestoreLayout.targets index 6c1683309824..bd741f3b55b0 100644 --- a/src/Layout/redist/targets/RestoreLayout.targets +++ b/src/Layout/redist/targets/RestoreLayout.targets @@ -305,7 +305,7 @@ For example, the dotnetbuilds uri for 'file:///vmr/dotnet2/artifacts/obj/x64/Release/blob-feed/assets//aspnetcore_base_runtime.version' would end up 'https://ci.dot.net/public//dotnet-runtime-8.0.0-rc.1.23381.3-centos.8-x64.tar.gz'. This is missing the runtime version number directory. --> - + %(ComponentToDownload.ShouldDownload) diff --git a/src/Layout/redist/tools/tool_fsc.csproj b/src/Layout/redist/tools/tool_fsc.csproj index 99e3907e017d..47c2577ed276 100644 --- a/src/Layout/redist/tools/tool_fsc.csproj +++ b/src/Layout/redist/tools/tool_fsc.csproj @@ -30,10 +30,10 @@ - Shipping - Release - net9.0 - $(NetCurrent) + Shipping + Release + net9.0 + $(NetCurrent) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.BeforeCommon.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.BeforeCommon.targets index 6f90f3514f0b..3f66cc8c4a59 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.BeforeCommon.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.BeforeCommon.targets @@ -335,7 +335,9 @@ Copyright (c) .NET Foundation. All rights reserved. $(MSBuildThisFileDirectory)..\..\..\Roslyn + $(MSBuildThisFileDirectory)..\..\..\Roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll $(MSBuildThisFileDirectory)..\..\..\Roslyn\binfx + $(MSBuildThisFileDirectory)..\..\..\Roslyn\binfx\Microsoft.Build.Tasks.CodeAnalysis.Sdk.dll $(MSBuildThisFileDirectory)..\..\..\Roslyn\Microsoft.CSharp.Core.targets $(MSBuildThisFileDirectory)..\..\..\Roslyn\Microsoft.VisualBasic.Core.targets diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.Common.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.Common.targets index 6420fa1f7377..db8f662dd199 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.Common.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.Common.targets @@ -77,6 +77,7 @@ Copyright (c) .NET Foundation. All rights reserved. $(NuGetPackageRoot)\microsoft.net.sdk.compilers.toolset\$(NETCoreSdkVersion) + $(RoslynTargetsPath)\Microsoft.Build.Tasks.CodeAnalysis.dll <_NeedToDownloadMicrosoftNetSdkCompilersToolsetPackage>true <_MicrosoftNetSdkCompilersToolsetPackageRootEmpty Condition="'$(NuGetPackageRoot)' == ''">true diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets index 464dd8659a7c..e7278514a2a4 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets @@ -223,9 +223,9 @@ Copyright (c) .NET Foundation. All rights reserved. - - - + + + diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.PackageDependencyResolution.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.PackageDependencyResolution.targets index dc048fde8e68..a1b3e49023d4 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.PackageDependencyResolution.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.PackageDependencyResolution.targets @@ -175,7 +175,7 @@ Copyright (c) .NET Foundation. All rights reserved. AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" /> - + + $(NoWarn);CA2025 + + diff --git a/test/dotnet.Tests/CommandTests/Tool/Run/ToolRunCommandTests.cs b/test/dotnet.Tests/CommandTests/Tool/Run/ToolRunCommandTests.cs index aa309d74d0c5..fa58cac301cf 100644 --- a/test/dotnet.Tests/CommandTests/Tool/Run/ToolRunCommandTests.cs +++ b/test/dotnet.Tests/CommandTests/Tool/Run/ToolRunCommandTests.cs @@ -40,7 +40,7 @@ public void WhenRunWithRollForwardOptionItShouldIncludeRollForwardInNativeHost() }, toolRunCommand._allowRollForward); result.Should().NotBeNull(); - result.Args.Should().Contain("--roll-forward", "Major", fakeExecutable.Value); + result.Args.Should().ContainAll("--roll-forward", "Major", fakeExecutable.Value); } [Fact]