From 27d0eb2627e89bb81d35df7e8ca493e909e67351 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 27 Mar 2026 04:52:46 +0000 Subject: [PATCH 01/31] Update dependencies from build 308038 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.6-servicing.26174.113 -> 10.0.6-servicing.26176.117) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.6 -> 10.0.6) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26174.113 -> 10.0.0-preview.26176.117) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26174-113 -> 18.0.11-servicing-26176-117) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.17513 -> 7.0.2-rc.17717) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.106 -> 10.0.106) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26174.113 -> 5.0.0-2.26176.117) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26174.113 -> 2.0.0-preview.1.26176.117) Microsoft.DiaSymReader (Version 2.2.6 -> 2.2.6) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26174.113 -> 10.0.0-beta.26176.117) Microsoft.FSharp.Compiler (Version 14.0.106-servicing.26174.113 -> 14.0.106-servicing.26176.117) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.2-release-26174-113 -> 18.0.2-release-26176-117) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.106-servicing.26174.113 -> 10.0.106-servicing.26176.117) Microsoft.Web.Xdt (Version 3.2.6 -> 3.2.6) System.CommandLine (Version 2.0.6 -> 2.0.6) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4950d4c01bdc..f0871aea246b 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 17dd5067d527..ce327bd23989 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,12 +8,12 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26174.113 - 10.0.6-servicing.26174.113 - 10.0.6-servicing.26174.113 - 10.0.6-servicing.26174.113 + 10.0.6-servicing.26176.117 + 10.0.6-servicing.26176.117 + 10.0.6-servicing.26176.117 + 10.0.6-servicing.26176.117 10.0.6 - 10.0.6-servicing.26174.113 + 10.0.6-servicing.26176.117 10.0.6 10.0.6 10.0.6 @@ -21,46 +21,46 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 10.0.6 - 10.0.6-servicing.26174.113 + 10.0.6-servicing.26176.117 10.0.6 10.0.6 10.0.6 10.0.6 - 10.0.6-servicing.26174.113 + 10.0.6-servicing.26176.117 10.0.6 - 10.0.6-servicing.26174.113 - 10.0.6-servicing.26174.113 - 10.0.0-preview.26174.113 + 10.0.6-servicing.26176.117 + 10.0.6-servicing.26176.117 + 10.0.0-preview.26176.117 10.0.6 10.0.6 18.0.11 - 18.0.11-servicing-26174-113 - 7.0.2-rc.17513 + 18.0.11-servicing-26176-117 + 7.0.2-rc.17717 10.0.106 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 10.0.0-preview.26174.113 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 2.0.0-preview.1.26174.113 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 10.0.0-preview.26176.117 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 2.0.0-preview.1.26176.117 2.2.6 - 10.0.0-beta.26174.113 - 10.0.0-beta.26174.113 - 10.0.0-beta.26174.113 - 10.0.0-beta.26174.113 - 10.0.0-beta.26174.113 - 10.0.0-beta.26174.113 + 10.0.0-beta.26176.117 + 10.0.0-beta.26176.117 + 10.0.0-beta.26176.117 + 10.0.0-beta.26176.117 + 10.0.0-beta.26176.117 + 10.0.0-beta.26176.117 10.0.6 10.0.6 - 10.0.6-servicing.26174.113 - 10.0.6-servicing.26174.113 - 10.0.0-beta.26174.113 - 10.0.0-beta.26174.113 + 10.0.6-servicing.26176.117 + 10.0.6-servicing.26176.117 + 10.0.0-beta.26176.117 + 10.0.0-beta.26176.117 10.0.6 10.0.6 10.0.6 @@ -70,19 +70,19 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 10.0.6 - 14.0.106-servicing.26174.113 + 14.0.106-servicing.26176.117 10.0.6 - 5.0.0-2.26174.113 - 5.0.0-2.26174.113 - 10.0.6-servicing.26174.113 + 5.0.0-2.26176.117 + 5.0.0-2.26176.117 + 10.0.6-servicing.26176.117 10.0.6 10.0.6 10.0.0-preview.7.25377.103 - 10.0.0-preview.26174.113 - 10.0.6-servicing.26174.113 - 18.0.2-release-26174-113 + 10.0.0-preview.26176.117 + 10.0.6-servicing.26176.117 + 18.0.2-release-26176-117 10.0.6 - 10.0.6-servicing.26174.113 + 10.0.6-servicing.26176.117 10.0.106 10.0.106 10.0.106 @@ -91,34 +91,34 @@ This file should be imported by eng/Versions.props 10.0.106 10.0.106 10.0.106 - 10.0.106-servicing.26174.113 + 10.0.106-servicing.26176.117 10.0.106 - 10.0.106-servicing.26174.113 + 10.0.106-servicing.26176.117 10.0.106 10.0.106 - 10.0.106-servicing.26174.113 - 18.0.2-release-26174-113 - 18.0.2-release-26174-113 + 10.0.106-servicing.26176.117 + 18.0.2-release-26176-117 + 18.0.2-release-26176-117 3.2.6 10.0.6 - 10.0.6-servicing.26174.113 + 10.0.6-servicing.26176.117 10.0.6 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 - 7.0.2-rc.17513 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 + 7.0.2-rc.17717 10.0.6 2.0.6 10.0.6 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 66edec17a66a..8178e175e099 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 - + https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 645374ace1c8bbeb07aac743552acc62bbb2c34b + 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 diff --git a/global.json b/global.json index 9e488dee1037..b78a234428e7 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26174.113", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26174.113", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26176.117", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26176.117", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 24ddee2bc03d0db324d2ce0f9fe48d4cd1a6bf25 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 28 Mar 2026 03:09:42 +0000 Subject: [PATCH 02/31] Update dependencies from build 308170 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.6-servicing.26176.117 -> 10.0.6-servicing.26177.110) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.6 -> 10.0.6) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26176.117 -> 10.0.0-preview.26177.110) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26176-117 -> 18.0.11-servicing-26177-110) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.17717 -> 7.0.2-rc.17810) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.106 -> 10.0.106) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26176.117 -> 5.0.0-2.26177.110) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26176.117 -> 2.0.0-preview.1.26177.110) Microsoft.DiaSymReader (Version 2.2.6 -> 2.2.6) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26176.117 -> 10.0.0-beta.26177.110) Microsoft.FSharp.Compiler (Version 14.0.106-servicing.26176.117 -> 14.0.106-servicing.26177.110) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.2-release-26176-117 -> 18.0.2-release-26177-110) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.106-servicing.26176.117 -> 10.0.106-servicing.26177.110) Microsoft.Web.Xdt (Version 3.2.6 -> 3.2.6) System.CommandLine (Version 2.0.6 -> 2.0.6) [[ commit created by automation ]] --- NuGet.config | 1 - eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 261 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index f0871aea246b..0c7505bf1ba0 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - diff --git a/eng/Version.Details.props b/eng/Version.Details.props index ce327bd23989..67ae5cb611f0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,12 +8,12 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26176.117 - 10.0.6-servicing.26176.117 - 10.0.6-servicing.26176.117 - 10.0.6-servicing.26176.117 + 10.0.6-servicing.26177.110 + 10.0.6-servicing.26177.110 + 10.0.6-servicing.26177.110 + 10.0.6-servicing.26177.110 10.0.6 - 10.0.6-servicing.26176.117 + 10.0.6-servicing.26177.110 10.0.6 10.0.6 10.0.6 @@ -21,46 +21,46 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 10.0.6 - 10.0.6-servicing.26176.117 + 10.0.6-servicing.26177.110 10.0.6 10.0.6 10.0.6 10.0.6 - 10.0.6-servicing.26176.117 + 10.0.6-servicing.26177.110 10.0.6 - 10.0.6-servicing.26176.117 - 10.0.6-servicing.26176.117 - 10.0.0-preview.26176.117 + 10.0.6-servicing.26177.110 + 10.0.6-servicing.26177.110 + 10.0.0-preview.26177.110 10.0.6 10.0.6 18.0.11 - 18.0.11-servicing-26176-117 - 7.0.2-rc.17717 + 18.0.11-servicing-26177-110 + 7.0.2-rc.17810 10.0.106 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 10.0.0-preview.26176.117 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 2.0.0-preview.1.26176.117 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 10.0.0-preview.26177.110 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 2.0.0-preview.1.26177.110 2.2.6 - 10.0.0-beta.26176.117 - 10.0.0-beta.26176.117 - 10.0.0-beta.26176.117 - 10.0.0-beta.26176.117 - 10.0.0-beta.26176.117 - 10.0.0-beta.26176.117 + 10.0.0-beta.26177.110 + 10.0.0-beta.26177.110 + 10.0.0-beta.26177.110 + 10.0.0-beta.26177.110 + 10.0.0-beta.26177.110 + 10.0.0-beta.26177.110 10.0.6 10.0.6 - 10.0.6-servicing.26176.117 - 10.0.6-servicing.26176.117 - 10.0.0-beta.26176.117 - 10.0.0-beta.26176.117 + 10.0.6-servicing.26177.110 + 10.0.6-servicing.26177.110 + 10.0.0-beta.26177.110 + 10.0.0-beta.26177.110 10.0.6 10.0.6 10.0.6 @@ -70,19 +70,19 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 10.0.6 - 14.0.106-servicing.26176.117 + 14.0.106-servicing.26177.110 10.0.6 - 5.0.0-2.26176.117 - 5.0.0-2.26176.117 - 10.0.6-servicing.26176.117 + 5.0.0-2.26177.110 + 5.0.0-2.26177.110 + 10.0.6-servicing.26177.110 10.0.6 10.0.6 10.0.0-preview.7.25377.103 - 10.0.0-preview.26176.117 - 10.0.6-servicing.26176.117 - 18.0.2-release-26176-117 + 10.0.0-preview.26177.110 + 10.0.6-servicing.26177.110 + 18.0.2-release-26177-110 10.0.6 - 10.0.6-servicing.26176.117 + 10.0.6-servicing.26177.110 10.0.106 10.0.106 10.0.106 @@ -91,34 +91,34 @@ This file should be imported by eng/Versions.props 10.0.106 10.0.106 10.0.106 - 10.0.106-servicing.26176.117 + 10.0.106-servicing.26177.110 10.0.106 - 10.0.106-servicing.26176.117 + 10.0.106-servicing.26177.110 10.0.106 10.0.106 - 10.0.106-servicing.26176.117 - 18.0.2-release-26176-117 - 18.0.2-release-26176-117 + 10.0.106-servicing.26177.110 + 18.0.2-release-26177-110 + 18.0.2-release-26177-110 3.2.6 10.0.6 - 10.0.6-servicing.26176.117 + 10.0.6-servicing.26177.110 10.0.6 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 - 7.0.2-rc.17717 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 + 7.0.2-rc.17810 10.0.6 2.0.6 10.0.6 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8178e175e099..43eee7938d4a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 8dc731afc09c5dca3dc7cee575f3bf0c61c2d919 + 6713f124fc53de19b420be2e0247d8f80868edb2 diff --git a/global.json b/global.json index b78a234428e7..97e18dab0241 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26176.117", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26176.117", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26177.110", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26177.110", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From a0c56e35cbdb7e52f5d6f8630af3e9c1e42a4f05 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 2 Apr 2026 02:04:00 +0000 Subject: [PATCH 03/31] Update dependencies from https://github.com/microsoft/testfx build 20260401.3 On relative base path root Microsoft.Testing.Platform From Version 2.2.1-preview.26180.5 -> To Version 2.2.1-preview.26201.3 MSTest From Version 4.2.1-preview.26180.5 -> To Version 4.2.1-preview.26201.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 38321fab2619..f1cc0da76bc4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 - 2.2.1-preview.26180.5 - 4.2.1-preview.26180.5 + 2.2.1-preview.26201.3 + 4.2.1-preview.26201.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 552bb094a2cc..e4e66d308d43 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 645374ace1c8bbeb07aac743552acc62bbb2c34b - + https://github.com/microsoft/testfx - f8dc21bde0c93918c9847361eb3bf41a9ed3d5f2 + 4b12ce96553c32c1038bf81176b98a79994d6967 - + https://github.com/microsoft/testfx - f8dc21bde0c93918c9847361eb3bf41a9ed3d5f2 + 4b12ce96553c32c1038bf81176b98a79994d6967 https://github.com/dotnet/dotnet From 7a2dde8d2363530a294e48a1ef33202144f916ea Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 2 Apr 2026 16:10:29 +0000 Subject: [PATCH 04/31] Update dependencies from build 308997 Updated Dependencies: Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26201.103 -> 10.0.0-preview.26202.103) Microsoft.Build (Version 18.3.3 -> 18.3.3) Microsoft.Build.Localization (Version 18.3.3-servicing-26201-103 -> 18.3.3-servicing-26202-103) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.3.0-rc.20203 -> 7.3.0-rc.20303) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.202 -> 10.0.202) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.ExternalAccess.HotReload, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.3.0-2.26201.103 -> 5.3.0-2.26202.103) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26201.103 -> 10.0.0-beta.26202.103) Microsoft.FSharp.Compiler (Version 15.2.202-servicing.26201.103 -> 15.2.202-servicing.26202.103) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.3.0-release-26201-103 -> 18.3.0-release-26202-103) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.202-servicing.26201.103 -> 10.0.202-servicing.26202.103) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 96 ++++---- eng/Version.Details.xml | 220 +++++++++--------- eng/common/core-templates/job/onelocbuild.yml | 4 +- .../job/publish-build-assets.yml | 4 +- .../core-templates/post-build/post-build.yml | 16 +- .../variables/pool-providers.yml | 2 +- .../templates/variables/pool-providers.yml | 2 +- global.json | 4 +- 9 files changed, 175 insertions(+), 175 deletions(-) diff --git a/NuGet.config b/NuGet.config index 9c862cf686ff..903609549285 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index c21415fe4d95..2c894263688d 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -30,37 +30,37 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4-servicing.26119.110 10.0.4-servicing.26119.110 - 10.0.0-preview.26201.103 + 10.0.0-preview.26202.103 10.0.4 10.0.4 18.3.3 - 18.3.3-servicing-26201-103 - 7.3.0-rc.20203 + 18.3.3-servicing-26202-103 + 7.3.0-rc.20303 10.0.202 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 - 10.0.0-preview.26201.103 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.0-preview.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 2.0.0-preview.1.26119.110 2.2.4 - 10.0.0-beta.26201.103 - 10.0.0-beta.26201.103 - 10.0.0-beta.26201.103 - 10.0.0-beta.26201.103 - 10.0.0-beta.26201.103 - 10.0.0-beta.26201.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 10.0.4 10.0.4 10.0.4-servicing.26119.110 - 10.0.0-beta.26201.103 - 10.0.0-beta.26201.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 10.0.4 10.0.4 10.0.4 @@ -70,17 +70,17 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 15.2.202-servicing.26201.103 + 15.2.202-servicing.26202.103 10.0.4 - 5.3.0-2.26201.103 - 5.3.0-2.26201.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 10.0.4-servicing.26119.110 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26201.103 + 10.0.0-preview.26202.103 10.0.4-servicing.26119.110 - 18.3.0-release-26201-103 + 18.3.0-release-26202-103 10.0.4 10.0.4-servicing.26119.110 10.0.202 @@ -91,34 +91,34 @@ This file should be imported by eng/Versions.props 10.0.202 10.0.202 10.0.202 - 10.0.202-servicing.26201.103 + 10.0.202-servicing.26202.103 10.0.202 - 10.0.202-servicing.26201.103 + 10.0.202-servicing.26202.103 10.0.202 10.0.202 - 10.0.202-servicing.26201.103 - 18.3.0-release-26201-103 - 18.3.0-release-26201-103 + 10.0.202-servicing.26202.103 + 18.3.0-release-26202-103 + 18.3.0-release-26202-103 3.2.4 10.0.4 10.0.4-servicing.26119.110 10.0.4 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 - 7.3.0-rc.20203 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 04a422f4cd4f..cf281438cf1e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -74,136 +74,136 @@ https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -407,27 +407,27 @@ https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -524,37 +524,37 @@ - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - bedfad885dfe093ebb122a44e74133e192fa34d0 + 0c538445912b51b36242aac75dd5e81265bbe37f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index c5788829a872..eefed3b667a4 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -52,13 +52,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows steps: diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index b955fac6e13f..9afcb8ae1590 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -74,13 +74,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows steps: - ${{ if eq(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 b942a79ef02d..2df4acb76859 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -120,7 +120,7 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng @@ -164,14 +164,14 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) @@ -225,14 +225,14 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) @@ -286,18 +286,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: diff --git a/eng/common/templates-official/variables/pool-providers.yml b/eng/common/templates-official/variables/pool-providers.yml index 1f308b24efc4..2cc3ae305d5a 100644 --- a/eng/common/templates-official/variables/pool-providers.yml +++ b/eng/common/templates-official/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# image: 1es-windows-2022 +# image: windows.vs2026.amd64 variables: # Coalesce the target and source branches so we know when a PR targets a release branch diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 18693ea120d5..587770f0add4 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2022.amd64 +# demands: ImageOverride -equals windows.vs2026.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/global.json b/global.json index 9c08fe17131e..0552121a41ea 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26201.103", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26201.103", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26202.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26202.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From f3b759a5ab58422d09ab64b147e1baa69318ffd4 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Thu, 2 Apr 2026 16:02:02 -0700 Subject: [PATCH 05/31] Add new package source for dotnet-dotnet --- NuGet.config | 1 + 1 file changed, 1 insertion(+) diff --git a/NuGet.config b/NuGet.config index 0c7505bf1ba0..4950d4c01bdc 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,6 +4,7 @@ + From 5a4ab0d76da7c5bbb43fd893b44d5ff8f58f5275 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 00:47:50 +0000 Subject: [PATCH 06/31] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 4 +- eng/Version.Details.props | 266 +++++++-------- eng/Version.Details.xml | 673 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 475 insertions(+), 474 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4950d4c01bdc..9c862cf686ff 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -39,6 +39,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 0fe4aaebb82f..9b819db01096 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,139 +8,139 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.0-preview.26177.110 - 10.0.6 - 10.0.6 - 18.0.11 - 18.0.11-servicing-26177-110 - 7.0.2-rc.17810 - 10.0.106 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 10.0.0-preview.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 2.0.0-preview.1.26177.110 - 2.2.6 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 14.0.106-servicing.26177.110 - 10.0.6 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 10.0.6-servicing.26177.110 - 10.0.6 - 10.0.6 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.0-preview.26201.103 + 10.0.4 + 10.0.4 + 18.3.3 + 18.3.3-servicing-26201-103 + 7.3.0-rc.20203 + 10.0.202 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 10.0.0-preview.26201.103 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 2.0.0-preview.1.26119.110 + 2.2.4 + 10.0.0-beta.26201.103 + 10.0.0-beta.26201.103 + 10.0.0-beta.26201.103 + 10.0.0-beta.26201.103 + 10.0.0-beta.26201.103 + 10.0.0-beta.26201.103 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.0-beta.26201.103 + 10.0.0-beta.26201.103 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 15.2.202-servicing.26201.103 + 10.0.4 + 5.3.0-2.26201.103 + 5.3.0-2.26201.103 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26177.110 - 10.0.6-servicing.26177.110 - 18.0.2-release-26177-110 - 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26177.110 - 10.0.106 - 10.0.106-servicing.26177.110 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26177.110 - 18.0.2-release-26177-110 - 18.0.2-release-26177-110 - 3.2.6 - 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 10.0.6 - 2.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 + 10.0.0-preview.26201.103 + 10.0.4-servicing.26119.110 + 18.3.0-release-26201-103 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26201.103 + 10.0.202 + 10.0.202-servicing.26201.103 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26201.103 + 18.3.0-release-26201-103 + 18.3.0-release-26201-103 + 3.2.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 7.3.0-rc.20203 + 10.0.4 + 2.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 2.2.1-preview.26201.3 4.2.1-preview.26201.3 @@ -185,6 +185,7 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) @@ -200,7 +201,6 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 778daf5c201f..a419825ec2fa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + bedfad885dfe093ebb122a44e74133e192fa34d0 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 https://github.com/microsoft/testfx @@ -569,9 +568,9 @@ https://github.com/microsoft/testfx 4b12ce96553c32c1038bf81176b98a79994d6967 - - https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 diff --git a/global.json b/global.json index 97e18dab0241..9c08fe17131e 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.105", + "dotnet": "10.0.201", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26177.110", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26177.110", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26201.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26201.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 8be57555cd38a209e64e86d57da14b6b151ad864 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 3 Apr 2026 02:04:06 +0000 Subject: [PATCH 07/31] Update dependencies from https://github.com/microsoft/testfx build 20260402.5 On relative base path root Microsoft.Testing.Platform From Version 2.2.1-preview.26201.3 -> To Version 2.3.0-preview.26202.5 MSTest From Version 4.2.1-preview.26201.3 -> To Version 4.3.0-preview.26202.5 --- NuGet.config | 2 +- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4950d4c01bdc..345e68b146c5 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 0fe4aaebb82f..5696f7b49e9c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 - 2.2.1-preview.26201.3 - 4.2.1-preview.26201.3 + 2.3.0-preview.26202.5 + 4.3.0-preview.26202.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 778daf5c201f..e30d6335ee61 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 6713f124fc53de19b420be2e0247d8f80868edb2 - + https://github.com/microsoft/testfx - 4b12ce96553c32c1038bf81176b98a79994d6967 + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 - + https://github.com/microsoft/testfx - 4b12ce96553c32c1038bf81176b98a79994d6967 + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 https://github.com/dotnet/dotnet From f228ec1fadbe95b61f5deea3a8e8d81785f5c472 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 3 Apr 2026 02:04:20 +0000 Subject: [PATCH 08/31] Update dependencies from https://github.com/microsoft/testfx build 20260402.5 On relative base path root Microsoft.Testing.Platform From Version 2.2.1-preview.26201.3 -> To Version 2.3.0-preview.26202.5 MSTest From Version 4.2.1-preview.26201.3 -> To Version 4.3.0-preview.26202.5 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 9b819db01096..b659ff349c63 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 - 2.2.1-preview.26201.3 - 4.2.1-preview.26201.3 + 2.3.0-preview.26202.5 + 4.3.0-preview.26202.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a419825ec2fa..98c4d2484670 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -560,13 +560,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/microsoft/testfx - 4b12ce96553c32c1038bf81176b98a79994d6967 + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 - + https://github.com/microsoft/testfx - 4b12ce96553c32c1038bf81176b98a79994d6967 + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From a33d85e119608e7236e827345ba9d90fc11c3720 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 4 Apr 2026 06:35:47 +0000 Subject: [PATCH 09/31] Update dependencies from build 309217 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.6-servicing.26177.110 -> 10.0.6-servicing.26203.109) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.6 -> 10.0.6) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26177.110 -> 10.0.0-preview.26203.109) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26177-110 -> 18.0.11-servicing-26203-109) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.17810 -> 7.0.2-rc.20409) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.106 -> 10.0.106) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26177.110 -> 5.0.0-2.26203.109) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26177.110 -> 2.0.0-preview.1.26203.109) Microsoft.DiaSymReader (Version 2.2.6 -> 2.2.6) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26177.110 -> 10.0.0-beta.26203.109) Microsoft.FSharp.Compiler (Version 14.0.106-servicing.26177.110 -> 14.0.106-servicing.26203.109) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.2-release-26177-110 -> 18.0.2-release-26203-109) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.106-servicing.26177.110 -> 10.0.106-servicing.26203.109) Microsoft.Web.Xdt (Version 3.2.6 -> 3.2.6) System.CommandLine (Version 2.0.6 -> 2.0.6) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 +++--- eng/Version.Details.xml | 392 +++++++++--------- eng/common/core-templates/job/onelocbuild.yml | 4 +- .../job/publish-build-assets.yml | 4 +- .../core-templates/post-build/post-build.yml | 16 +- .../variables/pool-providers.yml | 2 +- .../templates/variables/pool-providers.yml | 2 +- global.json | 4 +- 9 files changed, 276 insertions(+), 276 deletions(-) diff --git a/NuGet.config b/NuGet.config index 345e68b146c5..e226baf9b0b6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5696f7b49e9c..94492476bae6 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,12 +8,12 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 10.0.6 - 10.0.6-servicing.26177.110 + 10.0.6-servicing.26203.109 10.0.6 10.0.6 10.0.6 @@ -21,46 +21,46 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 10.0.6 - 10.0.6-servicing.26177.110 + 10.0.6-servicing.26203.109 10.0.6 10.0.6 10.0.6 10.0.6 - 10.0.6-servicing.26177.110 + 10.0.6-servicing.26203.109 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.0-preview.26177.110 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-preview.26203.109 10.0.6 10.0.6 18.0.11 - 18.0.11-servicing-26177-110 - 7.0.2-rc.17810 + 18.0.11-servicing-26203-109 + 7.0.2-rc.20409 10.0.106 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 10.0.0-preview.26177.110 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 2.0.0-preview.1.26177.110 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.0-preview.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 2.0.0-preview.1.26203.109 2.2.6 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 10.0.6 10.0.6 - 10.0.6-servicing.26177.110 - 10.0.6-servicing.26177.110 - 10.0.0-beta.26177.110 - 10.0.0-beta.26177.110 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 10.0.6 10.0.6 10.0.6 @@ -70,19 +70,19 @@ This file should be imported by eng/Versions.props 10.0.6 10.0.6 10.0.6 - 14.0.106-servicing.26177.110 + 14.0.106-servicing.26203.109 10.0.6 - 5.0.0-2.26177.110 - 5.0.0-2.26177.110 - 10.0.6-servicing.26177.110 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.6-servicing.26203.109 10.0.6 10.0.6 10.0.0-preview.7.25377.103 - 10.0.0-preview.26177.110 - 10.0.6-servicing.26177.110 - 18.0.2-release-26177-110 + 10.0.0-preview.26203.109 + 10.0.6-servicing.26203.109 + 18.0.2-release-26203-109 10.0.6 - 10.0.6-servicing.26177.110 + 10.0.6-servicing.26203.109 10.0.106 10.0.106 10.0.106 @@ -91,34 +91,34 @@ This file should be imported by eng/Versions.props 10.0.106 10.0.106 10.0.106 - 10.0.106-servicing.26177.110 + 10.0.106-servicing.26203.109 10.0.106 - 10.0.106-servicing.26177.110 + 10.0.106-servicing.26203.109 10.0.106 10.0.106 - 10.0.106-servicing.26177.110 - 18.0.2-release-26177-110 - 18.0.2-release-26177-110 + 10.0.106-servicing.26203.109 + 18.0.2-release-26203-109 + 18.0.2-release-26203-109 3.2.6 10.0.6 - 10.0.6-servicing.26177.110 + 10.0.6-servicing.26203.109 10.0.6 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 - 7.0.2-rc.17810 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 10.0.6 2.0.6 10.0.6 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e30d6335ee61..3a7cdb3a56c8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - + https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 6713f124fc53de19b420be2e0247d8f80868edb2 + 6165bd7ac3499cb712ca489f2ce44bb665174a1a diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index c5788829a872..eefed3b667a4 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -52,13 +52,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows steps: diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index b955fac6e13f..9afcb8ae1590 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -74,13 +74,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows steps: - ${{ if eq(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 b942a79ef02d..2df4acb76859 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -120,7 +120,7 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng @@ -164,14 +164,14 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) @@ -225,14 +225,14 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) @@ -286,18 +286,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: diff --git a/eng/common/templates-official/variables/pool-providers.yml b/eng/common/templates-official/variables/pool-providers.yml index 1f308b24efc4..2cc3ae305d5a 100644 --- a/eng/common/templates-official/variables/pool-providers.yml +++ b/eng/common/templates-official/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# image: 1es-windows-2022 +# image: windows.vs2026.amd64 variables: # Coalesce the target and source branches so we know when a PR targets a release branch diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 18693ea120d5..587770f0add4 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2022.amd64 +# demands: ImageOverride -equals windows.vs2026.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/global.json b/global.json index 97e18dab0241..6f9207378ac4 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26177.110", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26177.110", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26203.109", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26203.109", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 454bc1c26d237a499d07aa64f2cec8b9e3820afd Mon Sep 17 00:00:00 2001 From: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com> Date: Tue, 7 Apr 2026 13:28:45 -0700 Subject: [PATCH 10/31] Update branding on release/9.0.3xx --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 0ed9bb77bdb0..01368d5dccdf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -6,7 +6,7 @@ 9 0 3 - 13 + 14 From 87ba49e522ea7e1db5748fe69ed7d1d6d5af4162 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 03:11:48 +0000 Subject: [PATCH 11/31] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 4 +- eng/Version.Details.props | 266 +++++++-------- eng/Version.Details.xml | 673 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 475 insertions(+), 474 deletions(-) diff --git a/NuGet.config b/NuGet.config index e226baf9b0b6..903609549285 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -39,6 +39,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 94492476bae6..1a73d58a3c79 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,139 +8,139 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-preview.26203.109 - 10.0.6 - 10.0.6 - 18.0.11 - 18.0.11-servicing-26203-109 - 7.0.2-rc.20409 - 10.0.106 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.0-preview.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 2.0.0-preview.1.26203.109 - 2.2.6 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 14.0.106-servicing.26203.109 - 10.0.6 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.0-preview.26202.103 + 10.0.4 + 10.0.4 + 18.3.3 + 18.3.3-servicing-26202-103 + 7.3.0-rc.20303 + 10.0.202 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.0-preview.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 2.0.0-preview.1.26119.110 + 2.2.4 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 15.2.202-servicing.26202.103 + 10.0.4 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26203.109 - 10.0.6-servicing.26203.109 - 18.0.2-release-26203-109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 18.0.2-release-26203-109 - 18.0.2-release-26203-109 - 3.2.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 10.0.6 - 2.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 + 10.0.0-preview.26202.103 + 10.0.4-servicing.26119.110 + 18.3.0-release-26202-103 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 18.3.0-release-26202-103 + 18.3.0-release-26202-103 + 3.2.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 10.0.4 + 2.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 2.3.0-preview.26202.5 4.3.0-preview.26202.5 @@ -185,6 +185,7 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) @@ -200,7 +201,6 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3a7cdb3a56c8..a1ff22313714 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 https://github.com/microsoft/testfx @@ -569,9 +568,9 @@ https://github.com/microsoft/testfx cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 diff --git a/global.json b/global.json index 6f9207378ac4..0552121a41ea 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.105", + "dotnet": "10.0.201", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26203.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26203.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26202.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26202.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From ac5ec799af2fdcf5531b7f303b18f72eb3fd10f7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 8 Apr 2026 16:23:05 +0000 Subject: [PATCH 12/31] Update dependencies from build 309470 Updated Dependencies: Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26202.103 -> 10.0.0-preview.26208.102) Microsoft.Build (Version 18.3.3 -> 18.3.3) Microsoft.Build.Localization (Version 18.3.3-servicing-26202-103 -> 18.3.3-servicing-26208-102) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.3.0-rc.20303 -> 7.3.0-rc.20902) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.202 -> 10.0.202) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.ExternalAccess.HotReload, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.3.0-2.26202.103 -> 5.3.0-2.26208.102) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26202.103 -> 10.0.0-beta.26208.102) Microsoft.FSharp.Compiler (Version 15.2.202-servicing.26202.103 -> 15.2.202-servicing.26208.102) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.3.0-release-26202-103 -> 18.3.0-release-26208-102) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.202-servicing.26202.103 -> 10.0.202-servicing.26208.102) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 96 ++++++++--------- eng/Version.Details.xml | 220 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 161 insertions(+), 161 deletions(-) diff --git a/NuGet.config b/NuGet.config index 903609549285..612e59b10559 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 1a73d58a3c79..74e42fd4114f 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -30,37 +30,37 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4-servicing.26119.110 10.0.4-servicing.26119.110 - 10.0.0-preview.26202.103 + 10.0.0-preview.26208.102 10.0.4 10.0.4 18.3.3 - 18.3.3-servicing-26202-103 - 7.3.0-rc.20303 + 18.3.3-servicing-26208-102 + 7.3.0-rc.20902 10.0.202 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 - 10.0.0-preview.26202.103 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 + 10.0.0-preview.26208.102 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 2.0.0-preview.1.26119.110 2.2.4 - 10.0.0-beta.26202.103 - 10.0.0-beta.26202.103 - 10.0.0-beta.26202.103 - 10.0.0-beta.26202.103 - 10.0.0-beta.26202.103 - 10.0.0-beta.26202.103 + 10.0.0-beta.26208.102 + 10.0.0-beta.26208.102 + 10.0.0-beta.26208.102 + 10.0.0-beta.26208.102 + 10.0.0-beta.26208.102 + 10.0.0-beta.26208.102 10.0.4 10.0.4 10.0.4-servicing.26119.110 - 10.0.0-beta.26202.103 - 10.0.0-beta.26202.103 + 10.0.0-beta.26208.102 + 10.0.0-beta.26208.102 10.0.4 10.0.4 10.0.4 @@ -70,17 +70,17 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 15.2.202-servicing.26202.103 + 15.2.202-servicing.26208.102 10.0.4 - 5.3.0-2.26202.103 - 5.3.0-2.26202.103 + 5.3.0-2.26208.102 + 5.3.0-2.26208.102 10.0.4-servicing.26119.110 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26202.103 + 10.0.0-preview.26208.102 10.0.4-servicing.26119.110 - 18.3.0-release-26202-103 + 18.3.0-release-26208-102 10.0.4 10.0.4-servicing.26119.110 10.0.202 @@ -91,34 +91,34 @@ This file should be imported by eng/Versions.props 10.0.202 10.0.202 10.0.202 - 10.0.202-servicing.26202.103 + 10.0.202-servicing.26208.102 10.0.202 - 10.0.202-servicing.26202.103 + 10.0.202-servicing.26208.102 10.0.202 10.0.202 - 10.0.202-servicing.26202.103 - 18.3.0-release-26202-103 - 18.3.0-release-26202-103 + 10.0.202-servicing.26208.102 + 18.3.0-release-26208-102 + 18.3.0-release-26208-102 3.2.4 10.0.4 10.0.4-servicing.26119.110 10.0.4 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 - 7.3.0-rc.20303 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 + 7.3.0-rc.20902 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a1ff22313714..ae26dac1d072 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -74,136 +74,136 @@ https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -407,27 +407,27 @@ https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -524,37 +524,37 @@ - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 - + https://github.com/dotnet/dotnet - 0c538445912b51b36242aac75dd5e81265bbe37f + ca08b17aa41cb6c2cf159f3bb7925210147a9510 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index 0552121a41ea..80afb86eeaec 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26202.103", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26202.103", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26208.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26208.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From d7cac53966f5263c7c82b3f38cc1d140179aa004 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Wed, 8 Apr 2026 11:20:06 -0700 Subject: [PATCH 13/31] =?UTF-8?q?Update=20Helix=20queue=20names:=20vs2022.?= =?UTF-8?q?pre=20=E2=86=92=20vs2022?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The windows.amd64.vs2022.pre.open and windows.amd64.vs2022.pre queues have been renamed to windows.amd64.vs2022.open and windows.amd64.vs2022 respectively. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .vsts-ci.yml | 2 +- .vsts-pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.vsts-ci.yml b/.vsts-ci.yml index b4c1eb53de50..10e64d3ae170 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -107,7 +107,7 @@ extends: name: $(DncEngInternalBuildPool) image: windows.vs2022.amd64 os: windows - helixTargetQueue: windows.amd64.vs2022.pre + helixTargetQueue: windows.amd64.vs2022 oneESCompat: templateFolderName: templates-official publishTaskPrefix: 1ES. diff --git a/.vsts-pr.yml b/.vsts-pr.yml index 5cd62e9de328..c47f854922f5 100644 --- a/.vsts-pr.yml +++ b/.vsts-pr.yml @@ -45,7 +45,7 @@ stages: name: $(DncEngPublicBuildPool) demands: ImageOverride -equals windows.vs2022.amd64.open os: windows - helixTargetQueue: windows.amd64.vs2022.pre.open + helixTargetQueue: windows.amd64.vs2022.open ############### LINUX ############### - template: /eng/pipelines/templates/jobs/sdk-job-matrix.yml From e94b91d653bab653b982afea9e7d9e1f03b9a280 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 18 Mar 2026 21:53:38 +0000 Subject: [PATCH 14/31] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20260318.1 On relative base path root Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.26055.3 -> To Version 9.0.0-preview.26168.1 --- NuGet.config | 7 ------- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/NuGet.config b/NuGet.config index e4b7dcd1b1e0..4460caf81a88 100644 --- a/NuGet.config +++ b/NuGet.config @@ -24,10 +24,8 @@ - - @@ -37,13 +35,11 @@ - - @@ -72,13 +68,10 @@ - - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 62fe950cdf54..764a4b0e87c5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -374,18 +374,18 @@ 63ae81154c50a1cf9287cc47d8351d55b4289e6d - + https://github.com/dotnet/roslyn-analyzers - 742cc53ecfc7e7245f950e5ba58268ed2829913c + 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 https://github.com/dotnet/roslyn 450493a9b4ec6337bced0120e97cb76f4ed783db - + https://github.com/dotnet/roslyn-analyzers - 742cc53ecfc7e7245f950e5ba58268ed2829913c + 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 diff --git a/eng/Versions.props b/eng/Versions.props index 01368d5dccdf..b0b89a9ff312 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -160,7 +160,7 @@ - 9.0.0-preview.26055.3 + 9.0.0-preview.26168.1 3.12.0-beta1.26064.1 From 30d3c4e28fce2c5b88d1f77dbe4b358a364f1a1b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 22 Mar 2026 08:56:49 +0000 Subject: [PATCH 15/31] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20260322.3 On relative base path root Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.26055.3 -> To Version 9.0.0-preview.26172.3 --- 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 764a4b0e87c5..6da48ee06579 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -374,7 +374,7 @@ 63ae81154c50a1cf9287cc47d8351d55b4289e6d - + https://github.com/dotnet/roslyn-analyzers 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 @@ -383,7 +383,7 @@ 450493a9b4ec6337bced0120e97cb76f4ed783db - + https://github.com/dotnet/roslyn-analyzers 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 diff --git a/eng/Versions.props b/eng/Versions.props index b0b89a9ff312..929c8cfcad07 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -160,7 +160,7 @@ - 9.0.0-preview.26168.1 + 9.0.0-preview.26172.3 3.12.0-beta1.26064.1 From 6bcfed02166a3f9e236f11392235ad0813f77e69 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 07:07:50 +0000 Subject: [PATCH 16/31] Reset files to release/10.0.1xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 59 +- eng/Version.Details.props | 290 +++++ eng/Version.Details.xml | 1081 ++++++++--------- eng/common/CIBuild.cmd | 2 +- eng/common/SetupNugetSources.ps1 | 90 +- eng/common/SetupNugetSources.sh | 192 +-- eng/common/build.ps1 | 11 +- eng/common/build.sh | 33 +- eng/common/cibuild.sh | 2 +- eng/common/core-templates/job/job.yml | 48 +- eng/common/core-templates/job/onelocbuild.yml | 39 +- .../job/publish-build-assets.yml | 83 +- .../core-templates/job/source-build.yml | 15 +- .../job/source-index-stage1.yml | 47 +- .../core-templates/jobs/codeql-build.yml | 1 - eng/common/core-templates/jobs/jobs.yml | 15 +- .../core-templates/jobs/source-build.yml | 23 +- .../core-templates/post-build/post-build.yml | 42 +- .../steps/cleanup-microbuild.yml | 28 + .../core-templates/steps/generate-sbom.yml | 2 +- .../steps/get-delegation-sas.yml | 11 +- .../steps/install-microbuild.yml | 110 ++ .../core-templates/steps/publish-logs.yml | 8 +- .../core-templates/steps/source-build.yml | 88 +- .../steps/source-index-stage1-publish.yml | 35 + eng/common/cross/arm64/tizen/tizen.patch | 2 +- eng/common/cross/build-android-rootfs.sh | 49 +- eng/common/cross/build-rootfs.sh | 237 ++-- eng/common/cross/install-debs.py | 334 +++++ eng/common/cross/tizen-build-rootfs.sh | 0 eng/common/cross/tizen-fetch.sh | 9 +- eng/common/cross/toolchain.cmake | 82 +- eng/common/darc-init.sh | 2 +- eng/common/dotnet.cmd | 7 + eng/common/dotnet.ps1 | 11 + eng/common/dotnet.sh | 26 + eng/common/generate-locproject.ps1 | 49 +- eng/common/generate-sbom-prep.sh | 0 eng/common/native/install-dependencies.sh | 62 + eng/common/post-build/publish-using-darc.ps1 | 9 +- eng/common/post-build/redact-logs.ps1 | 5 +- eng/common/sdk-task.ps1 | 14 +- eng/common/sdk-task.sh | 121 ++ eng/common/sdl/packages.config | 2 +- eng/common/templates-official/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 7 +- .../steps/source-index-stage1-publish.yml | 7 + .../variables/pool-providers.yml | 2 +- eng/common/templates/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 8 +- .../steps/source-index-stage1-publish.yml | 7 + eng/common/templates/steps/vmr-sync.yml | 186 +++ .../templates/variables/pool-providers.yml | 2 +- eng/common/templates/vmr-build-pr.yml | 43 + eng/common/tools.ps1 | 71 +- eng/common/tools.sh | 81 +- eng/common/vmr-sync.ps1 | 164 +++ eng/common/vmr-sync.sh | 227 ++++ global.json | 21 +- 59 files changed, 2940 insertions(+), 1270 deletions(-) create mode 100644 eng/Version.Details.props mode change 100644 => 100755 eng/common/SetupNugetSources.sh create mode 100644 eng/common/core-templates/steps/cleanup-microbuild.yml create mode 100644 eng/common/core-templates/steps/install-microbuild.yml create mode 100644 eng/common/core-templates/steps/source-index-stage1-publish.yml create mode 100755 eng/common/cross/install-debs.py mode change 100644 => 100755 eng/common/cross/tizen-build-rootfs.sh mode change 100644 => 100755 eng/common/cross/tizen-fetch.sh create mode 100644 eng/common/dotnet.cmd create mode 100644 eng/common/dotnet.ps1 create mode 100755 eng/common/dotnet.sh mode change 100644 => 100755 eng/common/generate-sbom-prep.sh create mode 100755 eng/common/native/install-dependencies.sh create mode 100755 eng/common/sdk-task.sh create mode 100644 eng/common/templates-official/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/vmr-sync.yml create mode 100644 eng/common/templates/vmr-build-pr.yml create mode 100755 eng/common/vmr-sync.ps1 create mode 100755 eng/common/vmr-sync.sh diff --git a/NuGet.config b/NuGet.config index e4b7dcd1b1e0..e226baf9b0b6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,48 +3,15 @@ - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - @@ -55,6 +22,8 @@ + + @@ -64,22 +33,14 @@ + + + - - - - - - - - - - - diff --git a/eng/Version.Details.props b/eng/Version.Details.props new file mode 100644 index 000000000000..94492476bae6 --- /dev/null +++ b/eng/Version.Details.props @@ -0,0 +1,290 @@ + + + + + 2.1.0 + + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-preview.26203.109 + 10.0.6 + 10.0.6 + 18.0.11 + 18.0.11-servicing-26203-109 + 7.0.2-rc.20409 + 10.0.106 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.0-preview.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 2.0.0-preview.1.26203.109 + 2.2.6 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 14.0.106-servicing.26203.109 + 10.0.6 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.0-preview.7.25377.103 + 10.0.0-preview.26203.109 + 10.0.6-servicing.26203.109 + 18.0.2-release-26203-109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106-servicing.26203.109 + 10.0.106 + 10.0.106-servicing.26203.109 + 10.0.106 + 10.0.106 + 10.0.106-servicing.26203.109 + 18.0.2-release-26203-109 + 18.0.2-release-26203-109 + 3.2.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 10.0.6 + 2.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + + 2.3.0-preview.26202.5 + 4.3.0-preview.26202.5 + + + + + $(NETStandardLibraryRefPackageVersion) + + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) + $(MicrosoftBuildPackageVersion) + $(MicrosoftBuildLocalizationPackageVersion) + $(MicrosoftBuildNuGetSdkResolverPackageVersion) + $(MicrosoftBuildTasksGitPackageVersion) + $(MicrosoftCodeAnalysisPackageVersion) + $(MicrosoftCodeAnalysisBuildClientPackageVersion) + $(MicrosoftCodeAnalysisCSharpPackageVersion) + $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) + $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) + $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) + $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) + $(MicrosoftDotNetArcadeSdkPackageVersion) + $(MicrosoftDotNetBuildTasksInstallersPackageVersion) + $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) + $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) + $(MicrosoftDotNetHelixSdkPackageVersion) + $(MicrosoftDotNetSignToolPackageVersion) + $(MicrosoftDotNetWebItemTemplates100PackageVersion) + $(MicrosoftDotNetWebProjectTemplates100PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) + $(MicrosoftDotNetXliffTasksPackageVersion) + $(MicrosoftDotNetXUnitExtensionsPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) + $(MicrosoftFSharpCompilerPackageVersion) + $(MicrosoftJSInteropPackageVersion) + $(MicrosoftNetCompilersToolsetPackageVersion) + $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) + $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) + $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) + $(MicrosoftNETTestSdkPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) + $(MicrosoftSourceLinkAzureReposGitPackageVersion) + $(MicrosoftSourceLinkBitbucketGitPackageVersion) + $(MicrosoftSourceLinkCommonPackageVersion) + $(MicrosoftSourceLinkGitHubPackageVersion) + $(MicrosoftSourceLinkGitLabPackageVersion) + $(MicrosoftTemplateEngineAbstractionsPackageVersion) + $(MicrosoftTemplateEngineAuthoringTemplateVerifierPackageVersion) + $(MicrosoftTemplateEngineEdgePackageVersion) + $(MicrosoftTemplateEngineMocksPackageVersion) + $(MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion) + $(MicrosoftTemplateEngineTestHelperPackageVersion) + $(MicrosoftTemplateEngineUtilsPackageVersion) + $(MicrosoftTemplateSearchCommonPackageVersion) + $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) + $(MicrosoftTestPlatformBuildPackageVersion) + $(MicrosoftTestPlatformCLIPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) + $(NuGetBuildTasksPackageVersion) + $(NuGetBuildTasksConsolePackageVersion) + $(NuGetBuildTasksPackPackageVersion) + $(NuGetCommandLineXPlatPackageVersion) + $(NuGetCommandsPackageVersion) + $(NuGetCommonPackageVersion) + $(NuGetConfigurationPackageVersion) + $(NuGetCredentialsPackageVersion) + $(NuGetDependencyResolverCorePackageVersion) + $(NuGetFrameworksPackageVersion) + $(NuGetLibraryModelPackageVersion) + $(NuGetLocalizationPackageVersion) + $(NuGetPackagingPackageVersion) + $(NuGetProjectModelPackageVersion) + $(NuGetProtocolPackageVersion) + $(NuGetVersioningPackageVersion) + $(SystemCodeDomPackageVersion) + $(SystemCommandLinePackageVersion) + $(SystemComponentModelCompositionPackageVersion) + $(SystemCompositionAttributedModelPackageVersion) + $(SystemCompositionConventionPackageVersion) + $(SystemCompositionHostingPackageVersion) + $(SystemCompositionRuntimePackageVersion) + $(SystemCompositionTypedPartsPackageVersion) + $(SystemConfigurationConfigurationManagerPackageVersion) + $(SystemDiagnosticsDiagnosticSourcePackageVersion) + $(SystemFormatsAsn1PackageVersion) + $(SystemIOHashingPackageVersion) + $(SystemReflectionMetadataLoadContextPackageVersion) + $(SystemResourcesExtensionsPackageVersion) + $(SystemSecurityCryptographyPkcsPackageVersion) + $(SystemSecurityCryptographyProtectedDataPackageVersion) + $(SystemSecurityCryptographyXmlPackageVersion) + $(SystemSecurityPermissionsPackageVersion) + $(SystemServiceProcessServiceControllerPackageVersion) + $(SystemTextEncodingCodePagesPackageVersion) + $(SystemTextJsonPackageVersion) + $(SystemWindowsExtensionsPackageVersion) + + $(MicrosoftTestingPlatformPackageVersion) + $(MSTestPackageVersion) + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 62fe950cdf54..3a7cdb3a56c8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,634 +1,577 @@ + - - https://github.com/dotnet/templating - 34a5893f3ec336db55d3da5621a96106b418db5b - - - https://github.com/dotnet/templating - 34a5893f3ec336db55d3da5621a96106b418db5b - - - - https://github.com/dotnet/templating - b73682307aa0128c5edbec94c2e6a070d13ae6bb - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - - https://github.com/dotnet/emsdk - fb1326b0f4622f04f21584dc133f1c71f7554509 - - - - https://github.com/dotnet/emsdk - fb1326b0f4622f04f21584dc133f1c71f7554509 - - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6a953e76162f3f079405f80e28664fa51b136740 + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - - - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 72d4e0415ec4ae0771a5df3e05260691a5d6775b - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - 9399df09f8f8a187dcf1941b1d07a538ca197171 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 72d4e0415ec4ae0771a5df3e05260691a5d6775b - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/roslyn-analyzers - 742cc53ecfc7e7245f950e5ba58268ed2829913c - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn-analyzers - 742cc53ecfc7e7245f950e5ba58268ed2829913c - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - - - https://github.com/dotnet/source-build-externals - 71dbdccd13f28cfd1a35649263b55ebbeab26ee7 - - - - - https://github.com/dotnet/source-build-reference-packages - 6092b62b7f35fddbd6bf31e19b2ab64bbe2443ae - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/scenario-tests - acd9dc7ae0717d7f4fb6ac2b76ea364e94b4ceb3 - - - - https://github.com/dotnet/scenario-tests - acd9dc7ae0717d7f4fb6ac2b76ea364e94b4ceb3 - - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/microsoft/testfx + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + + + https://github.com/microsoft/testfx + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a diff --git a/eng/common/CIBuild.cmd b/eng/common/CIBuild.cmd index 56c2f25ac22f..ac1f72bf94e0 100644 --- a/eng/common/CIBuild.cmd +++ b/eng/common/CIBuild.cmd @@ -1,2 +1,2 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" \ No newline at end of file +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 792b60b49d42..65ed3a8adef0 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -1,13 +1,14 @@ # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # # See example call for this script below. # # - task: PowerShell@2 -# displayName: Setup Private Feeds Credentials +# displayName: Setup internal Feeds Credentials # condition: eq(variables['Agent.OS'], 'Windows_NT') # inputs: # filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 @@ -34,19 +35,28 @@ Set-StrictMode -Version 2.0 . $PSScriptRoot\tools.ps1 +# Adds or enables the package source with the given name +function AddOrEnablePackageSource($sources, $disabledPackageSources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { + if ($disabledPackageSources -eq $null -or -not (EnableInternalPackageSource -DisabledPackageSources $disabledPackageSources -Creds $creds -PackageSourceName $SourceName)) { + AddPackageSource -Sources $sources -SourceName $SourceName -SourceEndPoint $SourceEndPoint -Creds $creds -Username $userName -pwd $Password + } +} + # Add source entry to PackageSources function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']") if ($packageSource -eq $null) { + Write-Host "Adding package source $SourceName" + $packageSource = $doc.CreateElement("add") $packageSource.SetAttribute("key", $SourceName) $packageSource.SetAttribute("value", $SourceEndPoint) $sources.AppendChild($packageSource) | Out-Null } else { - Write-Host "Package source $SourceName already present." + Write-Host "Package source $SourceName already present and enabled." } AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd @@ -59,6 +69,8 @@ function AddCredential($creds, $source, $username, $pwd) { return; } + Write-Host "Inserting credential for feed: " $source + # Looks for credential configuration for the given SourceName. Create it if none is found. $sourceElement = $creds.SelectSingleNode($Source) if ($sourceElement -eq $null) @@ -91,24 +103,27 @@ function AddCredential($creds, $source, $username, $pwd) { $passwordElement.SetAttribute("value", $pwd) } -function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) { - $maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]") - - Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds." - - ForEach ($PackageSource in $maestroPrivateSources) { - Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key - AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd +# Enable all darc-int package sources. +function EnableMaestroInternalPackageSources($DisabledPackageSources, $Creds) { + $maestroInternalSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") + ForEach ($DisabledPackageSource in $maestroInternalSources) { + EnableInternalPackageSource -DisabledPackageSources $DisabledPackageSources -Creds $Creds -PackageSourceName $DisabledPackageSource.key } } -function EnablePrivatePackageSources($DisabledPackageSources) { - $maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") - ForEach ($DisabledPackageSource in $maestroPrivateSources) { - Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource" +# Enables an internal package source by name, if found. Returns true if the package source was found and enabled, false otherwise. +function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSourceName) { + $DisabledPackageSource = $DisabledPackageSources.SelectSingleNode("add[@key='$PackageSourceName']") + if ($DisabledPackageSource) { + Write-Host "Enabling internal source '$($DisabledPackageSource.key)'." + # Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries $DisabledPackageSources.RemoveChild($DisabledPackageSource) + + AddCredential -Creds $creds -Source $DisabledPackageSource.Key -Username $userName -pwd $Password + return $true } + return $false } if (!(Test-Path $ConfigFile -PathType Leaf)) { @@ -121,15 +136,17 @@ $doc = New-Object System.Xml.XmlDocument $filename = (Get-Item $ConfigFile).FullName $doc.Load($filename) -# Get reference to or create one if none exist already +# Get reference to - fail if none exist $sources = $doc.DocumentElement.SelectSingleNode("packageSources") if ($sources -eq $null) { - $sources = $doc.CreateElement("packageSources") - $doc.DocumentElement.AppendChild($sources) | Out-Null + Write-PipelineTelemetryError -Category 'Build' -Message "Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 } $creds = $null +$feedSuffix = "v3/index.json" if ($Password) { + $feedSuffix = "v2" # Looks for a node. Create it if none is found. $creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials") if ($creds -eq $null) { @@ -138,34 +155,35 @@ if ($Password) { } } +$userName = "dn-bot" + # Check for disabledPackageSources; we'll enable any darc-int ones we find there $disabledSources = $doc.DocumentElement.SelectSingleNode("disabledPackageSources") if ($disabledSources -ne $null) { Write-Host "Checking for any darc-int disabled package sources in the disabledPackageSources node" - EnablePrivatePackageSources -DisabledPackageSources $disabledSources + EnableMaestroInternalPackageSources -DisabledPackageSources $disabledSources -Creds $creds } - -$userName = "dn-bot" - -# Insert credential nodes for Maestro's private feeds -InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password - -# 3.1 uses a different feed url format so it's handled differently here -$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']") -if ($dotnet31Source -ne $null) { - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password -} - -$dotnetVersions = @('5','6','7','8','9') +$dotnetVersions = @('5','6','7','8','9','10') foreach ($dotnetVersion in $dotnetVersions) { $feedPrefix = "dotnet" + $dotnetVersion; $dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']") if ($dotnetSource -ne $null) { - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password } } +# Check for dotnet-eng and add dotnet-eng-internal if present +$dotnetEngSource = $sources.SelectSingleNode("add[@key='dotnet-eng']") +if ($dotnetEngSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-eng-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + +# Check for dotnet-tools and add dotnet-tools-internal if present +$dotnetToolsSource = $sources.SelectSingleNode("add[@key='dotnet-tools']") +if ($dotnetToolsSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-tools-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + $doc.Save($filename) diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh old mode 100644 new mode 100755 index facb415ca6ff..b2163abbe71b --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # @@ -52,81 +53,139 @@ if [[ `uname -s` == "Darwin" ]]; then TB='' fi -# Ensure there is a ... section. -grep -i "" $ConfigFile -if [ "$?" != "0" ]; then - echo "Adding ... section." - ConfigNodeHeader="" - PackageSourcesTemplate="${TB}${NL}${TB}" +# Enables an internal package source by name, if found. Returns 0 if found and enabled, 1 if not found. +EnableInternalPackageSource() { + local PackageSourceName="$1" + + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return 1 # No disabled sources section + fi + + # Check if this source name is disabled + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Enabling internal source '$PackageSourceName'." + # Remove the disabled entry (including any surrounding comments or whitespace on the same line) + sed -i.bak "//d" "$ConfigFile" + + # Add the source name to PackageSources for credential handling + PackageSources+=("$PackageSourceName") + return 0 # Found and enabled + fi + + return 1 # Not found in disabled sources +} + +# Add source entry to PackageSources +AddPackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Check if source already exists + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Package source $SourceName already present and enabled." + PackageSources+=("$SourceName") + return + fi + + echo "Adding package source $SourceName" + PackageSourcesNodeFooter="" + PackageSourceTemplate="${TB}" + + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" "$ConfigFile" + PackageSources+=("$SourceName") +} + +# Adds or enables the package source with the given name +AddOrEnablePackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Try to enable if disabled, if not found then add new source + EnableInternalPackageSource "$SourceName" + if [ "$?" != "0" ]; then + AddPackageSource "$SourceName" "$SourceEndPoint" + fi +} - sed -i.bak "s|$ConfigNodeHeader|$ConfigNodeHeader${NL}$PackageSourcesTemplate|" $ConfigFile -fi +# Enable all darc-int package sources +EnableMaestroInternalPackageSources() { + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return # No disabled sources section + fi + + # Find all darc-int disabled sources + local DisabledDarcIntSources=() + DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' "$ConfigFile" | tr -d '"') + + for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do + if [[ $DisabledSourceName == darc-int* ]]; then + EnableInternalPackageSource "$DisabledSourceName" + fi + done +} -# Ensure there is a ... section. -grep -i "" $ConfigFile +# Ensure there is a ... section. +grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding ... section." - - PackageSourcesNodeFooter="" - PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile + Write-PipelineTelemetryError -Category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 fi PackageSources=() -# Ensure dotnet3.1-internal and dotnet3.1-internal-transport are in the packageSources if the public dotnet3.1 feeds are present -grep -i "... section. + grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + echo "Adding ... section." - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=('dotnet3.1-internal') - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal-transport to the packageSources." PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile fi - PackageSources+=('dotnet3.1-internal-transport') fi -DotNetVersions=('5' '6' '7' '8' '9') +# Check for disabledPackageSources; we'll enable any darc-int ones we find there +grep -i "" $ConfigFile > /dev/null +if [ "$?" == "0" ]; then + echo "Checking for any darc-int disabled package sources in the disabledPackageSources node" + EnableMaestroInternalPackageSources +fi + +DotNetVersions=('5' '6' '7' '8' '9' '10') for DotNetVersion in ${DotNetVersions[@]} ; do FeedPrefix="dotnet${DotNetVersion}"; - grep -i " /dev/null if [ "$?" == "0" ]; then - grep -i "" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal") - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding $FeedPrefix-internal-transport to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal-transport") + AddOrEnablePackageSource "$FeedPrefix-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal/nuget/$FeedSuffix" + AddOrEnablePackageSource "$FeedPrefix-internal-transport" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal-transport/nuget/$FeedSuffix" fi done +# Check for dotnet-eng and add dotnet-eng-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-eng-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$FeedSuffix" +fi + +# Check for dotnet-tools and add dotnet-tools-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-tools-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$FeedSuffix" +fi + # I want things split line by line PrevIFS=$IFS IFS=$'\n' @@ -139,29 +198,12 @@ if [ "$CredToken" ]; then # Check if there is no existing credential for this FeedName grep -i "<$FeedName>" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding credentials for $FeedName." + echo " Inserting credential for feed: $FeedName" PackageSourceCredentialsNodeFooter="" - NewCredential="${TB}${TB}<$FeedName>${NL}${NL}${NL}" + NewCredential="${TB}${TB}<$FeedName>${NL}${TB}${NL}${TB}${TB}${NL}${TB}${TB}" sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" $ConfigFile fi done fi - -# Re-enable any entries in disabledPackageSources where the feed name contains darc-int -grep -i "" $ConfigFile -if [ "$?" == "0" ]; then - DisabledDarcIntSources=() - echo "Re-enabling any disabled \"darc-int\" package sources in $ConfigFile" - DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' $ConfigFile | tr -d '"') - for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do - if [[ $DisabledSourceName == darc-int* ]] - then - OldDisableValue="" - NewDisableValue="" - sed -i.bak "s|$OldDisableValue|$NewDisableValue|" $ConfigFile - echo "Neutralized disablePackageSources entry for '$DisabledSourceName'" - fi - done -fi diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 438f9920c43e..8cfee107e7a3 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -7,6 +7,7 @@ Param( [string] $msbuildEngine = $null, [bool] $warnAsError = $true, [bool] $nodeReuse = $true, + [switch] $buildCheck = $false, [switch][Alias('r')]$restore, [switch] $deployDeps, [switch][Alias('b')]$build, @@ -20,6 +21,7 @@ Param( [switch] $publish, [switch] $clean, [switch][Alias('pb')]$productBuild, + [switch]$fromVMR, [switch][Alias('bl')]$binaryLog, [switch][Alias('nobl')]$excludeCIBinarylog, [switch] $ci, @@ -71,6 +73,9 @@ function Print-Usage() { Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." Write-Host " -excludePrereleaseVS Set to exclude build engines in prerelease versions of Visual Studio" 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." @@ -97,6 +102,7 @@ function Build { $bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' } $platformArg = if ($platform) { "/p:Platform=$platform" } else { '' } + $check = if ($buildCheck) { '/check' } else { '' } if ($projects) { # Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons. @@ -113,6 +119,7 @@ function Build { MSBuild $toolsetBuildProj ` $bl ` $platformArg ` + $check ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` /p:Restore=$restore ` @@ -122,11 +129,13 @@ 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 ` /p:Publish=$publish ` + /p:RestoreStaticGraphEnableBinaryLogger=$binaryLog ` @properties } diff --git a/eng/common/build.sh b/eng/common/build.sh index ac1ee8620cd2..9767bb411a4f 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -42,6 +42,8 @@ usage() echo " --prepareMachine Prepare machine for CI run, clean up processes after build" 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." @@ -63,6 +65,7 @@ restore=false build=false source_build=false product_build=false +from_vmr=false rebuild=false test=false integration_test=false @@ -76,6 +79,7 @@ clean=false warn_as_error=true node_reuse=true +build_check=false binary_log=false exclude_ci_binary_log=false pipelines_log=false @@ -87,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 @@ -127,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 ;; @@ -173,6 +180,9 @@ while [[ $# > 0 ]]; do node_reuse=$2 shift ;; + -buildcheck) + build_check=true + ;; -runtimesourcefeed) runtime_source_feed=$2 shift @@ -182,7 +192,7 @@ while [[ $# > 0 ]]; do shift ;; *) - properties="$properties $1" + properties+=("$1") ;; esac @@ -216,7 +226,7 @@ function Build { InitializeCustomToolset if [[ ! -z "$projects" ]]; then - properties="$properties /p:Projects=$projects" + properties+=("/p:Projects=$projects") fi local bl="" @@ -224,15 +234,21 @@ function Build { bl="/bl:\"$log_dir/Build.binlog\"" fi + local check="" + if [[ "$build_check" == true ]]; then + check="/check" + fi + MSBuild $_InitializeToolset \ $bl \ + $check \ /p:Configuration=$configuration \ /p:RepoRoot="$repo_root" \ /p:Restore=$restore \ /p:Build=$build \ - /p:DotNetBuildRepo=$product_build \ - /p:ArcadeBuildFromSource=$source_build \ + /p:DotNetBuild=$product_build \ /p:DotNetBuildSourceOnly=$source_build \ + /p:DotNetBuildFromVMR=$from_vmr \ /p:Rebuild=$rebuild \ /p:Test=$test \ /p:Pack=$pack \ @@ -240,7 +256,8 @@ function Build { /p:PerformanceTest=$performance_test \ /p:Sign=$sign \ /p:Publish=$publish \ - $properties + /p:RestoreStaticGraphEnableBinaryLogger=$binary_log \ + ${properties[@]+"${properties[@]}"} ExitWithExitCode 0 } diff --git a/eng/common/cibuild.sh b/eng/common/cibuild.sh index 1a02c0dec8fd..66e3b0ac61c3 100755 --- a/eng/common/cibuild.sh +++ b/eng/common/cibuild.sh @@ -13,4 +13,4 @@ while [[ -h $source ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" -. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ \ No newline at end of file +. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml index 8da43d3b5837..5ce518406198 100644 --- a/eng/common/core-templates/job/job.yml +++ b/eng/common/core-templates/job/job.yml @@ -19,11 +19,11 @@ parameters: # publishing defaults artifacts: '' enableMicrobuild: false + enableMicrobuildForMacAndLinux: false microbuildUseESRP: true enablePublishBuildArtifacts: false enablePublishBuildAssets: false enablePublishTestResults: false - enablePublishUsingPipelines: false enableBuildRetry: false mergeTestResults: false testRunTitle: '' @@ -74,9 +74,6 @@ jobs: - ${{ if ne(parameters.enableTelemetry, 'false') }}: - name: DOTNET_CLI_TELEMETRY_PROFILE value: '$(Build.Repository.Uri)' - - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: - - name: EnableRichCodeNavigation - value: 'true' # Retry signature validation up to three times, waiting 2 seconds between attempts. # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY @@ -128,23 +125,12 @@ jobs: - ${{ preStep }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - task: MicroBuildSigningPlugin@4 - displayName: Install MicroBuild plugin - inputs: - signType: $(_SignType) - zipSources: false - feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - ${{ if eq(parameters.microbuildUseESRP, true) }}: - ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea - ${{ else }}: - ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca - env: - TeamName: $(_TeamName) - MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' + - template: /eng/common/core-templates/steps/install-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} + microbuildUseESRP: ${{ parameters.microbuildUseESRP }} continueOnError: ${{ parameters.continueOnError }} - condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}: - task: NuGetAuthenticate@1 @@ -160,27 +146,15 @@ jobs: - ${{ each step in parameters.steps }}: - ${{ step }} - - ${{ if eq(parameters.enableRichCodeNavigation, true) }}: - - task: RichCodeNavIndexer@0 - displayName: RichCodeNav Upload - inputs: - languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} - environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }} - richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin - uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} - continueOnError: true - - ${{ each step in parameters.componentGovernanceSteps }}: - ${{ step }} - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: MicroBuildCleanup@1 - displayName: Execute Microbuild cleanup tasks - condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/core-templates/steps/cleanup-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} continueOnError: ${{ parameters.continueOnError }} - env: - TeamName: $(_TeamName) # Publish test results - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}: diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index edefa789d360..eefed3b667a4 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -4,7 +4,7 @@ parameters: # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool pool: '' - + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex GithubPat: $(BotAccount-dotnet-bot-repo-PAT) @@ -27,7 +27,7 @@ parameters: is1ESPipeline: '' jobs: - job: OneLocBuild${{ parameters.JobNameSuffix }} - + dependsOn: ${{ parameters.dependsOn }} displayName: OneLocBuild${{ parameters.JobNameSuffix }} @@ -52,13 +52,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows steps: @@ -86,8 +86,7 @@ jobs: isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }} ${{ if eq(parameters.CreatePr, true) }}: isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }} - ${{ if eq(parameters.RepoType, 'gitHub') }}: - isShouldReusePrSelected: ${{ parameters.ReusePr }} + isShouldReusePrSelected: ${{ parameters.ReusePr }} packageSourceAuth: patAuth patVariable: ${{ parameters.CeapexPat }} ${{ if eq(parameters.RepoType, 'gitHub') }}: @@ -100,22 +99,20 @@ jobs: mirrorBranch: ${{ parameters.MirrorBranch }} condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml - parameters: - is1ESPipeline: ${{ parameters.is1ESPipeline }} - args: - displayName: Publish Localization Files - pathToPublish: '$(Build.ArtifactStagingDirectory)/loc' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} + # Copy the locProject.json to the root of the Loc directory, then publish a pipeline artifact + - task: CopyFiles@2 + displayName: Copy LocProject.json + inputs: + SourceFolder: '$(System.DefaultWorkingDirectory)/eng/Localize/' + Contents: 'LocProject.json' + TargetFolder: '$(Build.ArtifactStagingDirectory)/loc' + condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml + - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: - displayName: Publish LocProject.json - pathToPublish: '$(System.DefaultWorkingDirectory)/eng/Localize/' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} \ No newline at end of file + targetPath: '$(Build.ArtifactStagingDirectory)/loc' + artifactName: 'Loc' + displayName: 'Publish Localization Files' + condition: ${{ parameters.condition }} diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 3cb20fb5041f..9afcb8ae1590 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -20,9 +20,6 @@ parameters: # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. runAsPublic: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing - publishUsingPipelines: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing publishAssetsImmediately: false @@ -32,6 +29,15 @@ parameters: is1ESPipeline: '' + # 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' + repositoryAlias: self officialBuildId: '' @@ -68,13 +74,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: @@ -84,18 +90,44 @@ jobs: - checkout: ${{ parameters.repositoryAlias }} fetchDepth: 3 clean: true - - - task: DownloadBuildArtifacts@0 - displayName: Download artifact - inputs: - artifactName: AssetManifests - downloadPath: '$(Build.StagingDirectory)/Download' - checkDownloadedFiles: true - condition: ${{ parameters.condition }} - continueOnError: ${{ parameters.continueOnError }} + + - ${{ if eq(parameters.isAssetlessBuild, 'false') }}: + - ${{ 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 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + - task: AzureCLI@2 displayName: Publish Build Assets inputs: @@ -104,10 +136,13 @@ jobs: scriptLocation: scriptPath scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet - /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' + /p:ManifestsPath='$(Build.StagingDirectory)/AssetManifests' + /p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }} /p:MaestroApiEndpoint=https://maestro.dot.net - /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} /p:OfficialBuildId=$(OfficialBuildId) + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' + condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} @@ -129,6 +164,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 }} @@ -138,7 +184,7 @@ jobs: publishLocation: Container artifactName: ReleaseConfigs - - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: + - ${{ if or(eq(parameters.publishAssetsImmediately, 'true'), eq(parameters.isAssetlessBuild, 'true')) }}: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: BARBuildId: ${{ parameters.BARBuildId }} @@ -164,6 +210,9 @@ jobs: -WaitPublishingFinish true -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: - template: /eng/common/core-templates/steps/publish-logs.yml diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index d943748ac10e..1997c2ae00d7 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -12,9 +12,10 @@ parameters: # The name of the job. This is included in the job ID. # targetRID: '' # The name of the target RID to use, instead of the one auto-detected by Arcade. - # nonPortable: false + # portableBuild: false # Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than - # linux-x64), and compiling against distro-provided packages rather than portable ones. + # linux-x64), and compiling against distro-provided packages rather than portable ones. The + # default is portable mode. # skipPublishValidation: false # Disables publishing validation. By default, a check is performed to ensure no packages are # published by source-build. @@ -33,9 +34,6 @@ parameters: # container and pool. platform: {} - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -62,7 +60,7 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals build.ubuntu.2004.amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] image: build.azurelinux.3.amd64 @@ -71,10 +69,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} @@ -96,4 +94,3 @@ jobs: parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} platform: ${{ parameters.platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} diff --git a/eng/common/core-templates/job/source-index-stage1.yml b/eng/common/core-templates/job/source-index-stage1.yml index ddf8c2e00d80..76baf5c27258 100644 --- a/eng/common/core-templates/job/source-index-stage1.yml +++ b/eng/common/core-templates/job/source-index-stage1.yml @@ -1,8 +1,5 @@ parameters: runAsPublic: false - sourceIndexUploadPackageVersion: 2.0.0-20250425.2 - sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2 - sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" preSteps: [] binlogPath: artifacts/log/Debug/Build.binlog @@ -16,12 +13,6 @@ jobs: dependsOn: ${{ parameters.dependsOn }} condition: ${{ parameters.condition }} variables: - - name: SourceIndexUploadPackageVersion - value: ${{ parameters.sourceIndexUploadPackageVersion }} - - name: SourceIndexProcessBinlogPackageVersion - value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }} - - name: SourceIndexPackageSource - value: ${{ parameters.sourceIndexPackageSource }} - name: BinlogPath value: ${{ parameters.binlogPath }} - template: /eng/common/core-templates/variables/pool-providers.yml @@ -34,12 +25,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $(DncEngPublicBuildPool) - image: 1es-windows-2022-open - os: windows + image: windows.vs2026preview.scout.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 - os: windows + image: windows.vs2026preview.scout.amd64 steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: @@ -47,35 +36,9 @@ jobs: - ${{ each preStep in parameters.preSteps }}: - ${{ preStep }} - - - task: UseDotNet@2 - displayName: Use .NET 8 SDK - inputs: - packageType: sdk - version: 8.0.x - installationPath: $(Agent.TempDirectory)/dotnet - workingDirectory: $(Agent.TempDirectory) - - - script: | - $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - displayName: Download Tools - # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. - workingDirectory: $(Agent.TempDirectory) - - script: ${{ parameters.sourceIndexBuildCommand }} displayName: Build Repository - - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output - displayName: Process Binlog into indexable sln - - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: AzureCLI@2 - displayName: Log in to Azure and upload stage1 artifacts to source index - inputs: - azureSubscription: 'SourceDotNet Stage1 Publish' - addSpnToEnvironment: true - scriptType: 'ps' - scriptLocation: 'inlineScript' - inlineScript: | - $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 + - template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + binLogPath: ${{ parameters.binLogPath }} diff --git a/eng/common/core-templates/jobs/codeql-build.yml b/eng/common/core-templates/jobs/codeql-build.yml index 4571a7864df6..dbc14ac580a2 100644 --- a/eng/common/core-templates/jobs/codeql-build.yml +++ b/eng/common/core-templates/jobs/codeql-build.yml @@ -15,7 +15,6 @@ jobs: enablePublishBuildArtifacts: false enablePublishTestResults: false enablePublishBuildAssets: false - enablePublishUsingPipelines: false enableTelemetry: true variables: diff --git a/eng/common/core-templates/jobs/jobs.yml b/eng/common/core-templates/jobs/jobs.yml index bf33cdc2cc77..01ada7476651 100644 --- a/eng/common/core-templates/jobs/jobs.yml +++ b/eng/common/core-templates/jobs/jobs.yml @@ -5,9 +5,6 @@ parameters: # Optional: Include PublishBuildArtifacts task enablePublishBuildArtifacts: false - # Optional: Enable publishing using release pipelines - enablePublishUsingPipelines: false - # Optional: Enable running the source-build jobs to build repo from source enableSourceBuild: false @@ -30,6 +27,9 @@ parameters: # Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage. publishAssetsImmediately: false + # Optional: 🌤️ or not the build has assets it wants to publish to BAR + isAssetlessBuild: false + # Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml) artifactsPublishingAdditionalParameters: '' signingValidationAdditionalParameters: '' @@ -85,7 +85,6 @@ jobs: - template: /eng/common/core-templates/jobs/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} - allCompletedJobId: Source_Build_Complete ${{ each parameter in parameters.sourceBuildParameters }}: ${{ parameter.key }}: ${{ parameter.value }} @@ -98,7 +97,7 @@ jobs: ${{ parameter.key }}: ${{ parameter.value }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, ''), eq(parameters.isAssetlessBuild, true)) }}: - template: ../job/publish-build-assets.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} @@ -110,12 +109,10 @@ jobs: - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: - ${{ each job in parameters.jobs }}: - ${{ job.job }} - - ${{ if eq(parameters.enableSourceBuild, true) }}: - - Source_Build_Complete runAsPublic: ${{ parameters.runAsPublic }} - publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} - publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }} + publishAssetsImmediately: ${{ or(parameters.publishAssetsImmediately, parameters.isAssetlessBuild) }} + isAssetlessBuild: ${{ parameters.isAssetlessBuild }} enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} diff --git a/eng/common/core-templates/jobs/source-build.yml b/eng/common/core-templates/jobs/source-build.yml index 0b408a67bd51..d92860cba208 100644 --- a/eng/common/core-templates/jobs/source-build.yml +++ b/eng/common/core-templates/jobs/source-build.yml @@ -2,28 +2,19 @@ parameters: # This template adds arcade-powered source-build to CI. A job is created for each platform, as # well as an optional server job that completes when all platform jobs complete. - # The name of the "join" job for all source-build platforms. If set to empty string, the job is - # not included. Existing repo pipelines can use this job depend on all source-build jobs - # completing without maintaining a separate list of every single job ID: just depend on this one - # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'. - allCompletedJobId: '' - # See /eng/common/core-templates/job/source-build.yml jobNamePrefix: 'Source_Build' # This is the default platform provided by Arcade, intended for use by a managed-only repo. defaultManagedPlatform: name: 'Managed' - container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-amd64' # Defines the platforms on which to run build jobs. One job is created for each platform, and the # object in this array is sent to the job template as 'platform'. If no platforms are specified, # one job runs on 'defaultManagedPlatform'. platforms: [] - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -34,23 +25,12 @@ parameters: jobs: -- ${{ if ne(parameters.allCompletedJobId, '') }}: - - job: ${{ parameters.allCompletedJobId }} - displayName: Source-Build Complete - pool: server - dependsOn: - - ${{ each platform in parameters.platforms }}: - - ${{ parameters.jobNamePrefix }}_${{ platform.name }} - - ${{ if eq(length(parameters.platforms), 0) }}: - - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }} - - ${{ each platform in parameters.platforms }}: - template: /eng/common/core-templates/job/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} - ${{ if eq(length(parameters.platforms), 0) }}: @@ -59,5 +39,4 @@ jobs: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ parameters.defaultManagedPlatform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 864427d9694a..2df4acb76859 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -60,6 +60,11 @@ parameters: artifactNames: '' downloadArtifacts: true + - name: isAssetlessBuild + type: boolean + displayName: Is Assetless Build + default: false + # These parameters let the user customize the call to sdk-task.ps1 for publishing # symbols & general artifacts as well as for signing validation - name: symbolPublishingAdditionalParameters @@ -115,18 +120,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: windows.vs2022.amd64 + image: windows.vs2026preview.scout.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml @@ -159,18 +164,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -188,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 @@ -223,18 +225,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -284,18 +286,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -305,6 +307,13 @@ stages: - task: NuGetAuthenticate@1 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + # Darc is targeting 8.0, so make sure it's installed - task: UseDotNet@2 inputs: @@ -325,3 +334,6 @@ stages: -RequireDefaultChannels ${{ parameters.requireDefaultChannels }} -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' diff --git a/eng/common/core-templates/steps/cleanup-microbuild.yml b/eng/common/core-templates/steps/cleanup-microbuild.yml new file mode 100644 index 000000000000..c0fdcd3379d7 --- /dev/null +++ b/eng/common/core-templates/steps/cleanup-microbuild.yml @@ -0,0 +1,28 @@ +parameters: + # Enable cleanup tasks for MicroBuild + enableMicrobuild: false + # Enable cleanup tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - task: MicroBuildCleanup@1 + displayName: Execute Microbuild cleanup tasks + condition: and( + always(), + or( + and( + eq(variables['Agent.Os'], 'Windows_NT'), + in(variables['_SignType'], 'real', 'test') + ), + and( + ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }}, + ne(variables['Agent.Os'], 'Windows_NT'), + eq(variables['_SignType'], 'real') + ) + )) + continueOnError: ${{ parameters.continueOnError }} + env: + TeamName: $(_TeamName) diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml index 7f5b84c4cb82..c05f65027979 100644 --- a/eng/common/core-templates/steps/generate-sbom.yml +++ b/eng/common/core-templates/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 9.0.0 + PackageVersion: 10.0.0 BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom diff --git a/eng/common/core-templates/steps/get-delegation-sas.yml b/eng/common/core-templates/steps/get-delegation-sas.yml index 9db5617ea7de..d2901470a7f0 100644 --- a/eng/common/core-templates/steps/get-delegation-sas.yml +++ b/eng/common/core-templates/steps/get-delegation-sas.yml @@ -31,16 +31,7 @@ steps: # Calculate the expiration of the SAS token and convert to UTC $expiry = (Get-Date).AddHours(${{ parameters.expiryInHours }}).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - # Temporarily work around a helix issue where SAS tokens with / in them will cause incorrect downloads - # of correlation payloads. https://github.com/dotnet/dnceng/issues/3484 - $sas = "" - do { - $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to generate SAS token." - exit 1 - } - } while($sas.IndexOf('/') -ne -1) + $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv if ($LASTEXITCODE -ne 0) { Write-Error "Failed to generate SAS token." diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml new file mode 100644 index 000000000000..553fce66b940 --- /dev/null +++ b/eng/common/core-templates/steps/install-microbuild.yml @@ -0,0 +1,110 @@ +parameters: + # Enable install tasks for MicroBuild + enableMicrobuild: false + # Enable install tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + # Determines whether the ESRP service connection information should be passed to the signing plugin. + # This overlaps with _SignType to some degree. We only need the service connection for real signing. + # It's important that the service connection not be passed to the MicroBuildSigningPlugin task in this place. + # Doing so will cause the service connection to be authorized for the pipeline, which isn't allowed and won't work for non-prod. + # Unfortunately, _SignType can't be used to exclude the use of the service connection in non-real sign scenarios. The + # variable is not available in template expression. _SignType has a very large proliferation across .NET, so replacing it is tough. + microbuildUseESRP: true + # Microbuild installation directory + microBuildOutputFolder: $(Agent.TempDirectory)/MicroBuild + + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}: + # Needed to download the MicroBuild plugin nupkgs on Mac and Linux when nuget.exe is unavailable + - task: UseDotNet@2 + displayName: Install .NET 8.0 SDK for MicroBuild Plugin + inputs: + packageType: sdk + version: 8.0.x + installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + set -euo pipefail + + # UseDotNet@2 prepends the dotnet executable path to the PATH variable, so we can call dotnet directly + version=$(dotnet --version) + cat << 'EOF' > ${{ parameters.microBuildOutputFolder }}/global.json + { + "sdk": { + "version": "$version", + "paths": [ + "${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild" + ], + "errorMessage": "The .NET SDK version $version is required to install the MicroBuild signing plugin." + } + } + EOF + displayName: 'Add global.json to MicroBuild Installation path' + workingDirectory: ${{ parameters.microBuildOutputFolder }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + REM Check if ESRP is disabled while SignType is real + if /I "${{ parameters.microbuildUseESRP }}"=="false" if /I "$(_SignType)"=="real" ( + echo Error: ESRP must be enabled when SignType is real. + exit /b 1 + ) + displayName: 'Validate ESRP usage (Windows)' + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT')) + - script: | + # Check if ESRP is disabled while SignType is real + if [ "${{ parameters.microbuildUseESRP }}" = "false" ] && [ "$(_SignType)" = "real" ]; then + echo "Error: ESRP must be enabled when SignType is real." + exit 1 + fi + displayName: 'Validate ESRP usage (Non-Windows)' + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + # Two different MB install steps. This is due to not being able to use the agent OS during + # YAML expansion, and Windows vs. Linux/Mac uses different service connections. However, + # we can avoid including the MB install step if not enabled at all. This avoids a bunch of + # extra pipeline authorizations, since most pipelines do not sign on non-Windows. + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test')) + + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}: + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (non-Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + workingDirectory: ${{ parameters.microBuildOutputFolder }} + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ${{ else }}: + ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real')) diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 0623ac6e1123..a9ea99ba6aaa 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -26,15 +26,18 @@ steps: # If the file exists - sensitive data for redaction will be sourced from it # (single entry per line, lines starting with '# ' are considered comments and skipped) arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs' - -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -BinlogToolVersion '${{parameters.BinlogToolVersion}}' -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' '$(publishing-dnceng-devdiv-code-r-build-re)' - '$(MaestroAccessToken)' '$(dn-bot-all-orgs-artifact-feeds-rw)' '$(akams-client-id)' '$(microsoft-symbol-server-pat)' '$(symweb-symbol-server-pat)' + '$(dnceng-symbol-server-pat)' '$(dn-bot-all-orgs-build-rw-code-rw)' + '$(System.AccessToken)' ${{parameters.CustomSensitiveDataList}} continueOnError: true condition: always() @@ -45,6 +48,7 @@ steps: SourceFolder: '$(System.DefaultWorkingDirectory)/PostBuildLogs' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/PostBuildLogs' + condition: always() - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml index 7846584d2a77..b9c86c18ae42 100644 --- a/eng/common/core-templates/steps/source-build.yml +++ b/eng/common/core-templates/steps/source-build.yml @@ -11,10 +11,6 @@ parameters: # for details. The entire object is described in the 'job' template for simplicity, even though # the usage of the properties on this object is split between the 'job' and 'steps' templates. platform: {} - - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: false steps: @@ -23,25 +19,12 @@ steps: set -x df -h - # If file changes are detected, set CopyWipIntoInnerSourceBuildRepo to copy the WIP changes into the inner source build repo. - internalRestoreArgs= - if ! git diff --quiet; then - internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true' - # The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo. - # This only works if there is a username/email configured, which won't be the case in most CI runs. - git config --get user.email - if [ $? -ne 0 ]; then - git config user.email dn-bot@microsoft.com - git config user.name dn-bot - fi - fi - # If building on the internal project, the internal storage variable may be available (usually only if needed) # In that case, add variables to allow the download of internal runtimes if the specified versions are not found # in the default public locations. internalRuntimeDownloadArgs= if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey '$(dotnetbuilds-internal-container-read-token-base64)'' fi buildConfig=Release @@ -50,88 +33,33 @@ steps: buildConfig='$(_BuildConfig)' fi - officialBuildArgs= - if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then - officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)' - fi - targetRidArgs= if [ '${{ parameters.platform.targetRID }}' != '' ]; then targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' fi - runtimeOsArgs= - if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then - runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' - fi - - baseOsArgs= - if [ '${{ parameters.platform.baseOS }}' != '' ]; then - baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' - fi - - publishArgs= - if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then - publishArgs='--publish' - fi - - assetManifestFileName=SourceBuild_RidSpecific.xml - if [ '${{ parameters.platform.name }}' != '' ]; then - assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml + portableBuildArgs= + if [ '${{ parameters.platform.portableBuild }}' != '' ]; then + portableBuildArgs='/p:PortableBuild=${{ parameters.platform.portableBuild }}' fi ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \ --configuration $buildConfig \ - --restore --build --pack $publishArgs -bl \ + --restore --build --pack -bl \ + --source-build \ ${{ parameters.platform.buildArguments }} \ - $officialBuildArgs \ $internalRuntimeDownloadArgs \ - $internalRestoreArgs \ $targetRidArgs \ - $runtimeOsArgs \ - $baseOsArgs \ - /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ - /p:ArcadeBuildFromSource=true \ - /p:DotNetBuildSourceOnly=true \ - /p:DotNetBuildRepo=true \ - /p:AssetManifestFileName=$assetManifestFileName + $portableBuildArgs \ displayName: Build -# Upload build logs for diagnosis. -- task: CopyFiles@2 - displayName: Prepare BuildLogs staging directory - inputs: - SourceFolder: '$(System.DefaultWorkingDirectory)' - Contents: | - **/*.log - **/*.binlog - artifacts/sb/prebuilt-report/** - TargetFolder: '$(Build.StagingDirectory)/BuildLogs' - CleanTargetFolder: true - continueOnError: true - condition: succeededOrFailed() - - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: displayName: Publish BuildLogs - targetPath: '$(Build.StagingDirectory)/BuildLogs' + targetPath: artifacts/log/${{ coalesce(variables._BuildConfig, 'Release') }} artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) continueOnError: true condition: succeededOrFailed() sbomEnabled: false # we don't need SBOM for logs - -# Manually inject component detection so that we can ignore the source build upstream cache, which contains -# a nupkg cache of input packages (a local feed). -# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir' -# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets -- template: /eng/common/core-templates/steps/component-governance.yml - parameters: - displayName: Component Detection (Exclude upstream cache) - is1ESPipeline: ${{ parameters.is1ESPipeline }} - ${{ if eq(length(parameters.componentGovernanceIgnoreDirectories), 0) }}: - componentGovernanceIgnoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache' - ${{ else }}: - componentGovernanceIgnoreDirectories: ${{ join(',', parameters.componentGovernanceIgnoreDirectories) }} - disableComponentGovernance: ${{ eq(variables['System.TeamProject'], 'public') }} diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..e9a694afa58e --- /dev/null +++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,35 @@ +parameters: + sourceIndexUploadPackageVersion: 2.0.0-20250818.1 + sourceIndexProcessBinlogPackageVersion: 1.0.1-20250818.1 + sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json + binlogPath: artifacts/log/Debug/Build.binlog + +steps: +- task: UseDotNet@2 + displayName: "Source Index: Use .NET 9 SDK" + inputs: + packageType: sdk + version: 9.0.x + installationPath: $(Agent.TempDirectory)/dotnet + workingDirectory: $(Agent.TempDirectory) + +- script: | + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + displayName: "Source Index: Download netsourceindex Tools" + # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. + workingDirectory: $(Agent.TempDirectory) + +- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output + displayName: "Source Index: Process Binlog into indexable sln" + +- ${{ if and(ne(parameters.runAsPublic, 'true'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: AzureCLI@2 + displayName: "Source Index: Upload Source Index stage1 artifacts to Azure" + inputs: + azureSubscription: 'SourceDotNet Stage1 Publish' + addSpnToEnvironment: true + scriptType: 'ps' + scriptLocation: 'inlineScript' + inlineScript: | + $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 diff --git a/eng/common/cross/arm64/tizen/tizen.patch b/eng/common/cross/arm64/tizen/tizen.patch index af7c8be05906..2cebc547382e 100644 --- a/eng/common/cross/arm64/tizen/tizen.patch +++ b/eng/common/cross/arm64/tizen/tizen.patch @@ -5,5 +5,5 @@ diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-littleaarch64) --GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) ) +-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-aarch64.so.1 ) ) +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-aarch64.so.1 ) ) diff --git a/eng/common/cross/build-android-rootfs.sh b/eng/common/cross/build-android-rootfs.sh index 7e9ba2b75ed3..fbd8d80848a6 100755 --- a/eng/common/cross/build-android-rootfs.sh +++ b/eng/common/cross/build-android-rootfs.sh @@ -6,10 +6,11 @@ usage() { echo "Creates a toolchain and sysroot used for cross-compiling for Android." echo - echo "Usage: $0 [BuildArch] [ApiLevel]" + echo "Usage: $0 [BuildArch] [ApiLevel] [--ndk NDKVersion]" echo echo "BuildArch is the target architecture of Android. Currently only arm64 is supported." echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html" + echo "NDKVersion is the version of Android NDK. The default is r21. See https://developer.android.com/ndk/downloads/revision_history" echo echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior" echo "by setting the TOOLCHAIN_DIR environment variable" @@ -25,10 +26,15 @@ __BuildArch=arm64 __AndroidArch=aarch64 __AndroidToolchain=aarch64-linux-android -for i in "$@" - do - lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" - case $lowerI in +while :; do + if [[ "$#" -le 0 ]]; then + break + fi + + i=$1 + + lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" + case $lowerI in -?|-h|--help) usage exit 1 @@ -43,6 +49,10 @@ for i in "$@" __AndroidArch=arm __AndroidToolchain=arm-linux-androideabi ;; + --ndk) + shift + __NDK_Version=$1 + ;; *[0-9]) __ApiLevel=$i ;; @@ -50,8 +60,17 @@ for i in "$@" __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i" ;; esac + shift done +if [[ "$__NDK_Version" == "r21" ]] || [[ "$__NDK_Version" == "r22" ]]; then + __NDK_File_Arch_Spec=-x86_64 + __SysRoot=sysroot +else + __NDK_File_Arch_Spec= + __SysRoot=toolchains/llvm/prebuilt/linux-x86_64/sysroot +fi + # Obtain the location of the bash script to figure out where the root of the repo is. __ScriptBaseDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -78,6 +97,7 @@ fi echo "Target API level: $__ApiLevel" echo "Target architecture: $__BuildArch" +echo "NDK version: $__NDK_Version" echo "NDK location: $__NDK_Dir" echo "Target Toolchain location: $__ToolchainDir" @@ -85,8 +105,8 @@ echo "Target Toolchain location: $__ToolchainDir" if [ ! -d $__NDK_Dir ]; then echo Downloading the NDK into $__NDK_Dir mkdir -p $__NDK_Dir - wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip - unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__CrossDir + wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux$__NDK_File_Arch_Spec.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux.zip + unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux.zip -d $__CrossDir fi if [ ! -d $__lldb_Dir ]; then @@ -116,16 +136,11 @@ for path in $(wget -qO- https://packages.termux.dev/termux-main-21/dists/stable/ fi done -cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/sysroot/usr/" +cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/$__SysRoot/usr/" # Generate platform file for build.sh script to assign to __DistroRid echo "Generating platform file..." -echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/sysroot/android_platform - -echo "Now to build coreclr, libraries and installers; run:" -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory coreclr -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory libraries -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory installer +echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/$__SysRoot/android_platform + +echo "Now to build coreclr, libraries and host; run:" +echo ROOTFS_DIR=$(realpath $__ToolchainDir/$__SysRoot) ./build.sh clr+libs+host --cross --arch $__BuildArch diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 4b5e8d7166bd..8abfb71f7275 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -5,7 +5,7 @@ set -e usage() { echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir ]" - echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86" + echo "BuildArch can be: arm(default), arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64, x86" echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine" echo " for alpine can be specified with version: alpineX.YY or alpineedge" echo " for FreeBSD can be: freebsd13, freebsd14" @@ -15,6 +15,7 @@ usage() echo "llvmx[.y] - optional, LLVM version for LLVM related packages." echo "--skipunmount - optional, will skip the unmount of rootfs folder." echo "--skipsigcheck - optional, will skip package signature checks (allowing untrusted packages)." + echo "--skipemulation - optional, will skip qemu and debootstrap requirement when building environment for debian based systems." echo "--use-mirror - optional, use mirror URL to fetch resources, when available." echo "--jobs N - optional, restrict to N jobs." exit 1 @@ -52,28 +53,27 @@ __UbuntuPackages+=" symlinks" __UbuntuPackages+=" libicu-dev" __UbuntuPackages+=" liblttng-ust-dev" __UbuntuPackages+=" libunwind8-dev" -__UbuntuPackages+=" libnuma-dev" __AlpinePackages+=" gettext-dev" __AlpinePackages+=" icu-dev" __AlpinePackages+=" libunwind-dev" __AlpinePackages+=" lttng-ust-dev" __AlpinePackages+=" compiler-rt" -__AlpinePackages+=" numactl-dev" # runtime libraries' dependencies __UbuntuPackages+=" libcurl4-openssl-dev" __UbuntuPackages+=" libkrb5-dev" __UbuntuPackages+=" libssl-dev" __UbuntuPackages+=" zlib1g-dev" +__UbuntuPackages+=" libbrotli-dev" __AlpinePackages+=" curl-dev" __AlpinePackages+=" krb5-dev" __AlpinePackages+=" openssl-dev" __AlpinePackages+=" zlib-dev" -__FreeBSDBase="13.3-RELEASE" -__FreeBSDPkg="1.17.0" +__FreeBSDBase="13.4-RELEASE" +__FreeBSDPkg="1.21.3" __FreeBSDABI="13" __FreeBSDPackages="libunwind" __FreeBSDPackages+=" icu" @@ -91,18 +91,18 @@ __HaikuPackages="gcc_syslibs" __HaikuPackages+=" gcc_syslibs_devel" __HaikuPackages+=" gmp" __HaikuPackages+=" gmp_devel" -__HaikuPackages+=" icu66" -__HaikuPackages+=" icu66_devel" +__HaikuPackages+=" icu[0-9]+" +__HaikuPackages+=" icu[0-9]*_devel" __HaikuPackages+=" krb5" __HaikuPackages+=" krb5_devel" __HaikuPackages+=" libiconv" __HaikuPackages+=" libiconv_devel" -__HaikuPackages+=" llvm12_libunwind" -__HaikuPackages+=" llvm12_libunwind_devel" +__HaikuPackages+=" llvm[0-9]*_libunwind" +__HaikuPackages+=" llvm[0-9]*_libunwind_devel" __HaikuPackages+=" mpfr" __HaikuPackages+=" mpfr_devel" -__HaikuPackages+=" openssl" -__HaikuPackages+=" openssl_devel" +__HaikuPackages+=" openssl3" +__HaikuPackages+=" openssl3_devel" __HaikuPackages+=" zlib" __HaikuPackages+=" zlib_devel" @@ -128,10 +128,12 @@ __AlpineKeys=' 616adfeb:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU\npNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X\n0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6\nADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ\nraQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy\nKLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj\n/QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H\nKuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs\nmFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1\n/J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq\nXIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4\nVORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== 616ae350:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0\nXkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ\npiM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46\nxLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP\nODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM\nEyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr\nDzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+\nf53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF\nHwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk\nOk9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6\n9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT\nJZDr++FjKrnnijbyNF8b98UCAwEAAQ== 616db30d:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0\nlIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm\na6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw\ntO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C\nUS/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP\nhP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv\nLSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0\nx9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF\nwmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG\nLPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV\nGZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C\n8CM1S15HxV78s9dFntEqIokCAwEAAQ== +66ba20fe:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfB12w4ZgqsXWZDfUAV/\n6Y4aHUKIu3q4SXrNZ7CXF9nXoAVYrS7NAxJdAodsY3vPCN0g5O8DFXR+390LdOuQ\n+HsGKCc1k5tX5ZXld37EZNTNSbR0k+NKhd9h6X3u6wqPOx7SIKxwAQR8qeeFq4pP\nrt9GAGlxtuYgzIIcKJPwE0dZlcBCg+GnptCUZXp/38BP1eYC+xTXSL6Muq1etYfg\nodXdb7Yl+2h1IHuOwo5rjgY5kpY7GcAs8AjGk3lDD/av60OTYccknH0NCVSmPoXK\nvrxDBOn0LQRNBLcAfnTKgHrzy0Q5h4TNkkyTgxkoQw5ObDk9nnabTxql732yy9BY\ns+hM9+dSFO1HKeVXreYSA2n1ndF18YAvAumzgyqzB7I4pMHXq1kC/8bONMJxwSkS\nYm6CoXKyavp7RqGMyeVpRC7tV+blkrrUml0BwNkxE+XnwDRB3xDV6hqgWe0XrifD\nYTfvd9ScZQP83ip0r4IKlq4GMv/R5shcCRJSkSZ6QSGshH40JYSoiwJf5FHbj9ND\n7do0UAqebWo4yNx63j/wb2ULorW3AClv0BCFSdPsIrCStiGdpgJDBR2P2NZOCob3\nG9uMj+wJD6JJg2nWqNJxkANXX37Qf8plgzssrhrgOvB0fjjS7GYhfkfmZTJ0wPOw\nA8+KzFseBh4UFGgue78KwgkCAwEAAQ== ' __Keyring= __KeyringFile="/usr/share/keyrings/ubuntu-archive-keyring.gpg" __SkipSigCheck=0 +__SkipEmulation=0 __UseMirror=0 __UnprocessedBuildArgs= @@ -162,9 +164,13 @@ while :; do armel) __BuildArch=armel __UbuntuArch=armel - __UbuntuRepo="http://ftp.debian.org/debian/" - __CodeName=jessie + __UbuntuRepo="http://archive.debian.org/debian/" + __CodeName=buster __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __LLDB_Package="liblldb-6.0-dev" + __UbuntuPackages="${__UbuntuPackages// libomp-dev/}" + __UbuntuPackages="${__UbuntuPackages// libomp5/}" + __UbuntuSuites= ;; armv6) __BuildArch=armv6 @@ -180,6 +186,18 @@ while :; do __Keyring="--keyring $__KeyringFile" fi ;; + loongarch64) + __BuildArch=loongarch64 + __AlpineArch=loongarch64 + __QEMUArch=loongarch64 + __UbuntuArch=loong64 + __UbuntuSuites=unreleased + __LLDB_Package="liblldb-19-dev" + + if [[ "$__CodeName" == "sid" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; riscv64) __BuildArch=riscv64 __AlpineArch=riscv64 @@ -264,44 +282,21 @@ while :; do ;; xenial) # Ubuntu 16.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=xenial - fi - ;; - zesty) # Ubuntu 17.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=zesty - fi + __CodeName=xenial ;; bionic) # Ubuntu 18.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=bionic - fi + __CodeName=bionic ;; focal) # Ubuntu 20.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=focal - fi + __CodeName=focal ;; jammy) # Ubuntu 22.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=jammy - fi + __CodeName=jammy ;; noble) # Ubuntu 24.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=noble - fi - if [[ -n "$__LLDB_Package" ]]; then - __LLDB_Package="liblldb-18-dev" - fi - ;; - jessie) # Debian 8 - __CodeName=jessie - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" - - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __CodeName=noble + if [[ -z "$__LLDB_Package" ]]; then + __LLDB_Package="liblldb-19-dev" fi ;; stretch) # Debian 9 @@ -319,7 +314,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="http://archive.debian.org/debian/" fi ;; bullseye) # Debian 11 @@ -340,10 +335,28 @@ while :; do ;; sid) # Debian sid __CodeName=sid - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __UbuntuSuites= - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + # Debian-Ports architectures need different values + case "$__UbuntuArch" in + amd64|arm64|armel|armhf|i386|mips64el|ppc64el|riscv64|s390x) + __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.debian.org/debian/" + fi + ;; + *) + __KeyringFile="/usr/share/keyrings/debian-ports-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; + esac + + if [[ -e "$__KeyringFile" ]]; then + __Keyring="--keyring $__KeyringFile" fi ;; tizen) @@ -370,7 +383,7 @@ while :; do ;; freebsd14) __CodeName=freebsd - __FreeBSDBase="14.0-RELEASE" + __FreeBSDBase="14.2-RELEASE" __FreeBSDABI="14" __SkipUnmount=1 ;; @@ -388,6 +401,9 @@ while :; do --skipsigcheck) __SkipSigCheck=1 ;; + --skipemulation) + __SkipEmulation=1 + ;; --rootfsdir|-rootfsdir) shift __RootfsDir="$1" @@ -420,16 +436,15 @@ case "$__AlpineVersion" in elif [[ "$__AlpineArch" == "x86" ]]; then __AlpineVersion=3.17 # minimum version that supports lldb-dev __AlpinePackages+=" llvm15-libs" - elif [[ "$__AlpineArch" == "riscv64" ]]; then + elif [[ "$__AlpineArch" == "riscv64" || "$__AlpineArch" == "loongarch64" ]]; then + __AlpineVersion=3.21 # minimum version that supports lldb-dev + __AlpinePackages+=" llvm19-libs" + elif [[ -n "$__AlpineMajorVersion" ]]; then + # use whichever alpine version is provided and select the latest toolchain libs __AlpineLlvmLibsLookup=1 - __AlpineVersion=edge # minimum version with APKINDEX.tar.gz (packages archive) else __AlpineVersion=3.13 # 3.13 to maximize compatibility __AlpinePackages+=" llvm10-libs" - - if [[ "$__AlpineArch" == "armv7" ]]; then - __AlpinePackages="${__AlpinePackages//numactl-dev/}" - fi fi esac @@ -439,15 +454,6 @@ if [[ "$__AlpineVersion" =~ 3\.1[345] ]]; then __AlpinePackages="${__AlpinePackages/compiler-rt/compiler-rt-static}" fi -if [[ "$__BuildArch" == "armel" ]]; then - __LLDB_Package="lldb-3.5-dev" -fi - -if [[ "$__CodeName" == "xenial" && "$__UbuntuArch" == "armhf" ]]; then - # libnuma-dev is not available on armhf for xenial - __UbuntuPackages="${__UbuntuPackages//libnuma-dev/}" -fi - __UbuntuPackages+=" ${__LLDB_Package:-}" if [[ -z "$__UbuntuRepo" ]]; then @@ -496,7 +502,7 @@ if [[ "$__CodeName" == "alpine" ]]; then arch="$(uname -m)" ensureDownloadTool - + if [[ "$__hasWget" == 1 ]]; then wget -P "$__ApkToolsDir" "https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v$__ApkToolsVersion/$arch/apk.static" else @@ -512,11 +518,6 @@ if [[ "$__CodeName" == "alpine" ]]; then echo "$__ApkToolsSHA512SUM $__ApkToolsDir/apk.static" | sha512sum -c chmod +x "$__ApkToolsDir/apk.static" - if [[ -f "/usr/bin/qemu-$__QEMUArch-static" ]]; then - mkdir -p "$__RootfsDir"/usr/bin - cp -v "/usr/bin/qemu-$__QEMUArch-static" "$__RootfsDir/usr/bin" - fi - if [[ "$__AlpineVersion" == "edge" ]]; then version=edge else @@ -536,6 +537,10 @@ if [[ "$__CodeName" == "alpine" ]]; then __ApkSignatureArg="--keys-dir $__ApkKeysDir" fi + if [[ "$__SkipEmulation" == "1" ]]; then + __NoEmulationArg="--no-scripts" + fi + # initialize DB # shellcheck disable=SC2086 "$__ApkToolsDir/apk.static" \ @@ -557,7 +562,7 @@ if [[ "$__CodeName" == "alpine" ]]; then "$__ApkToolsDir/apk.static" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ - -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \ + -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" $__NoEmulationArg \ add $__AlpinePackages rm -r "$__ApkToolsDir" @@ -573,7 +578,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then curl -SL "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version fi echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf - echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf + echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf mkdir -p "$__RootfsDir"/tmp # get and build package manager if [[ "$__hasWget" == 1 ]]; then @@ -681,7 +686,7 @@ elif [[ "$__CodeName" == "haiku" ]]; then ensureDownloadTool - echo "Downloading Haiku package tool" + echo "Downloading Haiku package tools" git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 "$__RootfsDir/tmp/script" if [[ "$__hasWget" == 1 ]]; then wget -O "$__RootfsDir/tmp/download/hosttools.zip" "$("$__RootfsDir/tmp/script/fetch.sh" --hosttools)" @@ -691,34 +696,42 @@ elif [[ "$__CodeName" == "haiku" ]]; then unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin" - DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg" - HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuPortsBaseUrl="https://eu.hpkg.haiku-os.org/haikuports/master/$__HaikuArch/current" + + echo "Downloading HaikuPorts package repository index..." + if [[ "$__hasWget" == 1 ]]; then + wget -P "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + else + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + fi - # Download Haiku packages echo "Downloading Haiku packages" read -ra array <<<"$__HaikuPackages" for package in "${array[@]}"; do echo "Downloading $package..." - # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60 - # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598 + hpkgFilename="$(LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package_repo" list -f "$__RootfsDir/tmp/download/repo" | + grep -E "${package}-" | sort -V | tail -n 1 | xargs)" + if [ -z "$hpkgFilename" ]; then + >&2 echo "ERROR: package $package missing." + exit 1 + fi + echo "Resolved filename: $hpkgFilename..." + hpkgDownloadUrl="$HaikuPortsBaseUrl/packages/$hpkgFilename" if [[ "$__hasWget" == 1 ]]; then - hpkgDownloadUrl="$(wget -qO- --post-data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" else - hpkgDownloadUrl="$(curl -sSL -XPOST --data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" fi done for package in haiku haiku_devel; do echo "Downloading $package..." if [[ "$__hasWget" == 1 ]]; then - hpkgVersion="$(wget -qO- "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(wget -qO- "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + wget -P "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" else - hpkgVersion="$(curl -sSL "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(curl -sSL "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" fi done @@ -744,25 +757,67 @@ elif [[ "$__CodeName" == "haiku" ]]; then popd rm -rf "$__RootfsDir/tmp" elif [[ -n "$__CodeName" ]]; then + __Suites="$__CodeName $(for suite in $__UbuntuSuites; do echo -n "$__CodeName-$suite "; done)" + + if [[ "$__SkipEmulation" == "1" ]]; then + if [[ -z "$AR" ]]; then + if command -v ar &>/dev/null; then + AR="$(command -v ar)" + elif command -v llvm-ar &>/dev/null; then + AR="$(command -v llvm-ar)" + else + echo "Unable to find ar or llvm-ar on PATH, add them to PATH or set AR environment variable pointing to the available AR tool" + exit 1 + fi + fi + + PYTHON=${PYTHON_EXECUTABLE:-python3} + + # shellcheck disable=SC2086,SC2046 + echo running "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + + # shellcheck disable=SC2086,SC2046 + "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + exit 0 + fi + + __UpdateOptions= if [[ "$__SkipSigCheck" == "0" ]]; then __Keyring="$__Keyring --force-check-gpg" + else + __Keyring= + __UpdateOptions="--allow-unauthenticated --allow-insecure-repositories" fi # shellcheck disable=SC2086 echo running debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" - debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" + # shellcheck disable=SC2086 + if ! debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"; then + echo "debootstrap failed! dumping debootstrap.log" + cat "$__RootfsDir/debootstrap/debootstrap.log" + exit 1 + fi + + rm -rf "$__RootfsDir"/etc/apt/*.{sources,list} "$__RootfsDir"/etc/apt/sources.list.d mkdir -p "$__RootfsDir/etc/apt/sources.list.d/" + + # shellcheck disable=SC2086 cat > "$__RootfsDir/etc/apt/sources.list.d/$__CodeName.sources" < token2) - (token1 < token2) + else: + return -1 if isinstance(token1, str) else 1 + + return len(tokens1) - len(tokens2) + +def compare_debian_versions(version1, version2): + """Compare two Debian package versions.""" + epoch1, upstream1, revision1 = parse_debian_version(version1) + epoch2, upstream2, revision2 = parse_debian_version(version2) + + if epoch1 != epoch2: + return epoch1 - epoch2 + + result = compare_upstream_version(upstream1, upstream2) + if result != 0: + return result + + return compare_upstream_version(revision1, revision2) + +def resolve_dependencies(packages, aliases, desired_packages): + """Recursively resolves dependencies for the desired packages.""" + resolved = [] + to_process = deque(desired_packages) + + while to_process: + current = to_process.popleft() + resolved_package = current if current in packages else aliases.get(current, [None])[0] + + if not resolved_package: + print(f"Error: Package '{current}' was not found in the available packages.") + sys.exit(1) + + if resolved_package not in resolved: + resolved.append(resolved_package) + + deps = packages.get(resolved_package, {}).get("Depends", "") + if deps: + deps = [dep.split(' ')[0] for dep in deps.split(', ') if dep] + for dep in deps: + if dep not in resolved and dep not in to_process and dep in packages: + to_process.append(dep) + + return resolved + +def parse_package_index(content): + """Parses the Packages.gz file and returns package information.""" + packages = {} + aliases = {} + entries = re.split(r'\n\n+', content) + + for entry in entries: + fields = dict(re.findall(r'^(\S+): (.+)$', entry, re.MULTILINE)) + if "Package" in fields: + package_name = fields["Package"] + version = fields.get("Version") + filename = fields.get("Filename") + depends = fields.get("Depends") + provides = fields.get("Provides", None) + + # Only update if package_name is not in packages or if the new version is higher + if package_name not in packages or compare_debian_versions(version, packages[package_name]["Version"]) > 0: + packages[package_name] = { + "Version": version, + "Filename": filename, + "Depends": depends + } + + # Update aliases if package provides any alternatives + if provides: + provides_list = [x.strip() for x in provides.split(",")] + for alias in provides_list: + # Strip version specifiers + alias_name = re.sub(r'\s*\(=.*\)', '', alias) + if alias_name not in aliases: + aliases[alias_name] = [] + if package_name not in aliases[alias_name]: + aliases[alias_name].append(package_name) + + return packages, aliases + +def install_packages(mirror, packages_info, aliases, tmp_dir, extract_dir, ar_tool, desired_packages): + """Downloads .deb files and extracts them.""" + resolved_packages = resolve_dependencies(packages_info, aliases, desired_packages) + print(f"Resolved packages (including dependencies): {resolved_packages}") + + packages_to_download = {} + + for pkg in resolved_packages: + if pkg in packages_info: + packages_to_download[pkg] = packages_info[pkg] + + if pkg in aliases: + for alias in aliases[pkg]: + if alias in packages_info: + packages_to_download[alias] = packages_info[alias] + + asyncio.run(download_deb_files_parallel(mirror, packages_to_download, tmp_dir)) + + package_to_deb_file_map = {} + for pkg in resolved_packages: + pkg_info = packages_info.get(pkg) + if pkg_info: + deb_filename = pkg_info.get("Filename") + if deb_filename: + deb_file_path = os.path.join(tmp_dir, os.path.basename(deb_filename)) + package_to_deb_file_map[pkg] = deb_file_path + + for pkg in reversed(resolved_packages): + deb_file = package_to_deb_file_map.get(pkg) + if deb_file and os.path.exists(deb_file): + extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool) + + print("All done!") + +def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): + """Extract .deb file contents""" + + os.makedirs(extract_dir, exist_ok=True) + + with tempfile.TemporaryDirectory(dir=tmp_dir) as tmp_subdir: + result = subprocess.run(f"{ar_tool} t {os.path.abspath(deb_file)}", cwd=tmp_subdir, check=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + tar_filename = None + for line in result.stdout.decode().splitlines(): + if line.startswith("data.tar"): + tar_filename = line.strip() + break + + if not tar_filename: + raise FileNotFoundError(f"Could not find 'data.tar.*' in {deb_file}.") + + tar_file_path = os.path.join(tmp_subdir, tar_filename) + print(f"Extracting {tar_filename} from {deb_file}..") + + subprocess.run(f"{ar_tool} p {os.path.abspath(deb_file)} {tar_filename} > {tar_file_path}", check=True, shell=True) + + file_extension = os.path.splitext(tar_file_path)[1].lower() + + if file_extension == ".xz": + mode = "r:xz" + elif file_extension == ".gz": + mode = "r:gz" + elif file_extension == ".zst": + # zstd is not supported by standard library yet + decompressed_tar_path = tar_file_path.replace(".zst", "") + with open(tar_file_path, "rb") as zst_file, open(decompressed_tar_path, "wb") as decompressed_file: + dctx = zstandard.ZstdDecompressor() + dctx.copy_stream(zst_file, decompressed_file) + + tar_file_path = decompressed_tar_path + mode = "r" + else: + raise ValueError(f"Unsupported compression format: {file_extension}") + + with tarfile.open(tar_file_path, mode) as tar: + tar.extractall(path=extract_dir, filter='fully_trusted') + +def finalize_setup(rootfsdir): + lib_dir = os.path.join(rootfsdir, 'lib') + usr_lib_dir = os.path.join(rootfsdir, 'usr', 'lib') + + if os.path.exists(lib_dir): + if os.path.islink(lib_dir): + os.remove(lib_dir) + else: + os.makedirs(usr_lib_dir, exist_ok=True) + + for item in os.listdir(lib_dir): + src = os.path.join(lib_dir, item) + dest = os.path.join(usr_lib_dir, item) + + if os.path.isdir(src): + shutil.copytree(src, dest, dirs_exist_ok=True) + else: + shutil.copy2(src, dest) + + shutil.rmtree(lib_dir) + + os.symlink(usr_lib_dir, lib_dir) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Generate rootfs for .NET runtime on Debian-like OS") + parser.add_argument("--distro", required=False, help="Distro name (e.g., debian, ubuntu, etc.)") + parser.add_argument("--arch", required=True, help="Architecture (e.g., amd64, loong64, etc.)") + parser.add_argument("--rootfsdir", required=True, help="Destination directory.") + parser.add_argument('--suite', required=True, action='append', help='Specify one or more repository suites to collect index data.') + parser.add_argument("--mirror", required=False, help="Mirror (e.g., http://ftp.debian.org/debian-ports etc.)") + parser.add_argument("--artool", required=False, default="ar", help="ar tool to extract debs (e.g., ar, llvm-ar etc.)") + parser.add_argument("packages", nargs="+", help="List of package names to be installed.") + + args = parser.parse_args() + + if args.mirror is None: + if args.distro == "ubuntu": + args.mirror = "http://archive.ubuntu.com/ubuntu" if args.arch in ["amd64", "i386"] else "http://ports.ubuntu.com/ubuntu-ports" + elif args.distro == "debian": + args.mirror = "http://ftp.debian.org/debian-ports" + else: + raise Exception("Unsupported distro") + + DESIRED_PACKAGES = args.packages + [ # base packages + "dpkg", + "busybox", + "libc-bin", + "base-files", + "base-passwd", + "debianutils" + ] + + print(f"Creating rootfs. rootfsdir: {args.rootfsdir}, distro: {args.distro}, arch: {args.arch}, suites: {args.suite}, mirror: {args.mirror}") + + package_index_content = asyncio.run(download_package_index_parallel(args.mirror, args.arch, args.suite)) + + packages_info, aliases = parse_package_index(package_index_content) + + with tempfile.TemporaryDirectory() as tmp_dir: + install_packages(args.mirror, packages_info, aliases, tmp_dir, args.rootfsdir, args.artool, DESIRED_PACKAGES) + + finalize_setup(args.rootfsdir) diff --git a/eng/common/cross/tizen-build-rootfs.sh b/eng/common/cross/tizen-build-rootfs.sh old mode 100644 new mode 100755 diff --git a/eng/common/cross/tizen-fetch.sh b/eng/common/cross/tizen-fetch.sh old mode 100644 new mode 100755 index 28936ceef3a7..37c3a61f1de8 --- a/eng/common/cross/tizen-fetch.sh +++ b/eng/common/cross/tizen-fetch.sh @@ -156,13 +156,8 @@ fetch_tizen_pkgs() done } -if [ "$TIZEN_ARCH" == "riscv64" ]; then - BASE="Tizen-Base-RISCV" - UNIFIED="Tizen-Unified-RISCV" -else - BASE="Tizen-Base" - UNIFIED="Tizen-Unified" -fi +BASE="Tizen-Base" +UNIFIED="Tizen-Unified" Inform "Initialize ${TIZEN_ARCH} base" fetch_tizen_pkgs_init standard $BASE diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index 9a7ecfbd42c5..0ff85cf0367e 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -67,6 +67,13 @@ elseif(TARGET_ARCH_NAME STREQUAL "armv6") else() set(TOOLCHAIN "arm-linux-gnueabihf") endif() +elseif(TARGET_ARCH_NAME STREQUAL "loongarch64") + set(CMAKE_SYSTEM_PROCESSOR "loongarch64") + if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/loongarch64-alpine-linux-musl) + set(TOOLCHAIN "loongarch64-alpine-linux-musl") + else() + set(TOOLCHAIN "loongarch64-linux-gnu") + endif() elseif(TARGET_ARCH_NAME STREQUAL "ppc64le") set(CMAKE_SYSTEM_PROCESSOR ppc64le) if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl) @@ -118,7 +125,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86") set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu") endif() else() - message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!") + message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64 and x86 are supported!") endif() if(DEFINED ENV{TOOLCHAIN}) @@ -148,6 +155,25 @@ if(TIZEN) include_directories(SYSTEM ${TIZEN_TOOLCHAIN_PATH}/include/c++/${TIZEN_TOOLCHAIN}) endif() +function(locate_toolchain_exec exec var) + set(TOOLSET_PREFIX ${TOOLCHAIN}-) + string(TOUPPER ${exec} EXEC_UPPERCASE) + if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") + set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) + return() + endif() + + find_program(EXEC_LOCATION_${exec} + NAMES + "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" + "${TOOLSET_PREFIX}${exec}") + + if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") + message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") + endif() + set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) +endfunction() + if(ANDROID) if(TARGET_ARCH_NAME STREQUAL "arm") set(ANDROID_ABI armeabi-v7a) @@ -178,66 +204,24 @@ elseif(FREEBSD) set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld") elseif(ILLUMOS) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") + set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") include_directories(SYSTEM ${CROSS_ROOTFS}/include) - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") - locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") elseif(HAIKU) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin") - - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") - # let CMake set up the correct search paths include(Platform/Haiku) else() @@ -307,7 +291,7 @@ endif() # Specify compile options -if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) +if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|loongarch64|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN}) diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh index 36dbd45e1ce8..e889f439b8dc 100755 --- a/eng/common/darc-init.sh +++ b/eng/common/darc-init.sh @@ -68,7 +68,7 @@ function InstallDarcCli { fi fi - local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" + local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" echo "Installing Darc CLI version $darcVersion..." echo "You may need to restart your command shell if this is the first dotnet tool you have installed." diff --git a/eng/common/dotnet.cmd b/eng/common/dotnet.cmd new file mode 100644 index 000000000000..527fa4bb38fb --- /dev/null +++ b/eng/common/dotnet.cmd @@ -0,0 +1,7 @@ +@echo off + +:: This script is used to install the .NET SDK. +:: It will also invoke the SDK with any provided arguments. + +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet.ps1""" %*" +exit /b %ErrorLevel% diff --git a/eng/common/dotnet.ps1 b/eng/common/dotnet.ps1 new file mode 100644 index 000000000000..45e5676c9ebd --- /dev/null +++ b/eng/common/dotnet.ps1 @@ -0,0 +1,11 @@ +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +. $PSScriptRoot\tools.ps1 +$dotnetRoot = InitializeDotNetCli -install:$true + +# Invoke acquired SDK with args if they are provided +if ($args.count -gt 0) { + $env:DOTNET_NOLOGO=1 + & "$dotnetRoot\dotnet.exe" $args +} diff --git a/eng/common/dotnet.sh b/eng/common/dotnet.sh new file mode 100755 index 000000000000..2ef68235675f --- /dev/null +++ b/eng/common/dotnet.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +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 )" + +source $scriptroot/tools.sh +InitializeDotNetCli true # install + +# Invoke acquired SDK with args if they are provided +if [[ $# > 0 ]]; then + __dotnetDir=${_InitializeDotNetCli} + dotnetPath=${__dotnetDir}/dotnet + ${dotnetPath} "$@" +fi diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1 index 524aaa57f2b7..fa1cdc2b3007 100644 --- a/eng/common/generate-locproject.ps1 +++ b/eng/common/generate-locproject.ps1 @@ -33,15 +33,27 @@ $jsonTemplateFiles | ForEach-Object { $jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern +$wxlFilesV3 = @() +$wxlFilesV5 = @() $wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them if (-not $wxlFiles) { $wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files if ($wxlEnFiles) { - $wxlFiles = @() - $wxlEnFiles | ForEach-Object { - $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" - $wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru - } + $wxlFiles = @() + $wxlEnFiles | ForEach-Object { + $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" + $content = Get-Content $_.FullName -Raw + + # Split files on schema to select different parser settings in the generated project. + if ($content -like "*http://wixtoolset.org/schemas/v4/wxl*") + { + $wxlFilesV5 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + elseif ($content -like "*http://schemas.microsoft.com/wix/2006/localization*") + { + $wxlFilesV3 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + } } } @@ -114,7 +126,32 @@ $locJson = @{ CloneLanguageSet = "WiX_CloneLanguages" LssFiles = @( "wxl_loc.lss" ) LocItems = @( - $wxlFiles | ForEach-Object { + $wxlFilesV3 | ForEach-Object { + $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" + $continue = $true + foreach ($exclusion in $exclusions.Exclusions) { + if ($_.FullName.Contains($exclusion)) { + $continue = $false + } + } + $sourceFile = ($_.FullName | Resolve-Path -Relative) + if ($continue) + { + return @{ + SourceFile = $sourceFile + CopyOption = "LangIDOnPath" + OutputPath = $outputPath + } + } + } + ) + }, + @{ + LanguageSet = $LanguageSet + CloneLanguageSet = "WiX_CloneLanguages" + LssFiles = @( "P210WxlSchemaV4.lss" ) + LocItems = @( + $wxlFilesV5 | ForEach-Object { $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" $continue = $true foreach ($exclusion in $exclusions.Exclusions) { diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh old mode 100644 new mode 100755 diff --git a/eng/common/native/install-dependencies.sh b/eng/common/native/install-dependencies.sh new file mode 100755 index 000000000000..477a44f335be --- /dev/null +++ b/eng/common/native/install-dependencies.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +set -e + +# This is a simple script primarily used for CI to install necessary dependencies +# +# Usage: +# +# ./install-dependencies.sh + +os="$(echo "$1" | tr "[:upper:]" "[:lower:]")" + +if [ -z "$os" ]; then + . "$(dirname "$0")"/init-os-and-arch.sh +fi + +case "$os" in + linux) + if [ -e /etc/os-release ]; then + . /etc/os-release + fi + + if [ "$ID" = "debian" ] || [ "$ID_LIKE" = "debian" ]; then + apt update + + apt install -y build-essential gettext locales cmake llvm clang lld lldb liblldb-dev libunwind8-dev libicu-dev liblttng-ust-dev \ + libssl-dev libkrb5-dev pigz cpio + + localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 + elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ]; then + pkg_mgr="$(command -v tdnf 2>/dev/null || command -v dnf)" + $pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio + elif [ "$ID" = "alpine" ]; then + apk add build-base cmake bash curl clang llvm-dev lld lldb krb5-dev lttng-ust-dev icu-dev openssl-dev pigz cpio + else + echo "Unsupported distro. distro: $ID" + exit 1 + fi + ;; + + osx|maccatalyst|ios|iossimulator|tvos|tvossimulator) + echo "Installed xcode version: $(xcode-select -p)" + + export HOMEBREW_NO_INSTALL_CLEANUP=1 + export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 + # Skip brew update for now, see https://github.com/actions/setup-python/issues/577 + # brew update --preinstall + brew bundle --no-upgrade --file=- < Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." + Write-Host " -excludeCIBinaryLog When running on CI, allow no binary log (short: -nobl)" Write-Host "" Write-Host "Command line arguments not listed above are passed thru to msbuild." } @@ -34,10 +39,11 @@ function Print-Usage() { function Build([string]$target) { $logSuffix = if ($target -eq 'Execute') { '' } else { ".$target" } $log = Join-Path $LogDir "$task$logSuffix.binlog" + $binaryLogArg = if ($binaryLog) { "/bl:$log" } else { "" } $outputPath = Join-Path $ToolsetDir "$task\" MSBuild $taskProject ` - /bl:$log ` + $binaryLogArg ` /t:$target ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` @@ -64,7 +70,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.12.0" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "18.0.0" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh new file mode 100755 index 000000000000..3270f83fa9a7 --- /dev/null +++ b/eng/common/sdk-task.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash + +show_usage() { + echo "Common settings:" + echo " --task Name of Arcade task (name of a project in SdkTasks directory of the Arcade SDK package)" + echo " --restore Restore dependencies" + echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]" + echo " --help Print help and exit" + echo "" + + echo "Advanced settings:" + echo " --excludeCIBinarylog Don't output binary log (short: -nobl)" + echo " --noWarnAsError Do not warn as error" + echo "" + echo "Command line arguments not listed above are passed thru to msbuild." +} + +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 )" + +Build() { + local target=$1 + local log_suffix="" + [[ "$target" != "Execute" ]] && log_suffix=".$target" + local log="$log_dir/$task$log_suffix.binlog" + local binaryLogArg="" + [[ $binary_log == true ]] && binaryLogArg="/bl:$log" + local output_path="$toolset_dir/$task/" + + MSBuild "$taskProject" \ + $binaryLogArg \ + /t:"$target" \ + /p:Configuration="$configuration" \ + /p:RepoRoot="$repo_root" \ + /p:BaseIntermediateOutputPath="$output_path" \ + /v:"$verbosity" \ + $properties +} + +binary_log=true +configuration="Debug" +verbosity="minimal" +exclude_ci_binary_log=false +restore=false +help=false +properties='' +warnAsError=true + +while (($# > 0)); do + lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")" + case $lowerI in + --task) + task=$2 + shift 2 + ;; + --restore) + restore=true + shift 1 + ;; + --verbosity) + verbosity=$2 + shift 2 + ;; + --excludecibinarylog|--nobl) + binary_log=false + exclude_ci_binary_log=true + shift 1 + ;; + --noWarnAsError) + warnAsError=false + shift 1 + ;; + --help) + help=true + shift 1 + ;; + *) + properties="$properties $1" + shift 1 + ;; + esac +done + +ci=true + +if $help; then + show_usage + exit 0 +fi + +. "$scriptroot/tools.sh" +InitializeToolset + +if [[ -z "$task" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'MissingTask' -Message "Missing required parameter '-task '" + ExitWithExitCode 1 +fi + +taskProject=$(GetSdkTaskProject "$task") +if [[ ! -e "$taskProject" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'UnknownTask' -Message "Unknown task: $task" + ExitWithExitCode 1 +fi + +if $restore; then + Build "Restore" +fi + +Build "Execute" + + +ExitWithExitCode 0 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-official/job/job.yml b/eng/common/templates-official/job/job.yml index 81ea7a261f2d..92a0664f5647 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -31,6 +31,7 @@ jobs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked continueOnError: true - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - output: pipelineArtifact @@ -39,6 +40,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if eq(parameters.enablePublishBuildArtifacts, true) }}: @@ -46,7 +48,7 @@ jobs: displayName: Publish Logs PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() sbomEnabled: false # we don't need SBOM for logs diff --git a/eng/common/templates-official/steps/publish-build-artifacts.yml b/eng/common/templates-official/steps/publish-build-artifacts.yml index 100a3fc98493..fcf6637b2ebc 100644 --- a/eng/common/templates-official/steps/publish-build-artifacts.yml +++ b/eng/common/templates-official/steps/publish-build-artifacts.yml @@ -24,6 +24,10 @@ parameters: - name: is1ESPipeline type: boolean default: true + +- name: retryCountOnTaskFailure + type: string + default: 10 steps: - ${{ if ne(parameters.is1ESPipeline, true) }}: @@ -38,4 +42,5 @@ steps: PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: ArtifactName: ${{ parameters.artifactName }} - + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates-official/steps/source-index-stage1-publish.yml b/eng/common/templates-official/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..9b8b80942b5c --- /dev/null +++ b/eng/common/templates-official/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: true + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates-official/variables/pool-providers.yml b/eng/common/templates-official/variables/pool-providers.yml index 1f308b24efc4..2cc3ae305d5a 100644 --- a/eng/common/templates-official/variables/pool-providers.yml +++ b/eng/common/templates-official/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# image: 1es-windows-2022 +# image: windows.vs2026.amd64 variables: # Coalesce the target and source branches so we know when a PR targets a release branch diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 5bdd3dd85fd2..238fa0818f7b 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -46,6 +46,7 @@ jobs: artifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: @@ -56,6 +57,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: @@ -66,7 +68,7 @@ jobs: displayName: Publish Logs pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() diff --git a/eng/common/templates/steps/publish-build-artifacts.yml b/eng/common/templates/steps/publish-build-artifacts.yml index 6428a98dfef6..605e602e94d1 100644 --- a/eng/common/templates/steps/publish-build-artifacts.yml +++ b/eng/common/templates/steps/publish-build-artifacts.yml @@ -25,6 +25,10 @@ parameters: type: string default: 'Container' +- name: retryCountOnTaskFailure + type: string + default: 10 + steps: - ${{ if eq(parameters.is1ESPipeline, true) }}: - 'eng/common/templates cannot be referenced from a 1ES managed template': error @@ -37,4 +41,6 @@ steps: PublishLocation: ${{ parameters.publishLocation }} PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: - ArtifactName: ${{ parameters.artifactName }} \ No newline at end of file + ArtifactName: ${{ parameters.artifactName }} + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates/steps/source-index-stage1-publish.yml b/eng/common/templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..182cec33a7bb --- /dev/null +++ b/eng/common/templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: false + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml new file mode 100644 index 000000000000..eb619c502683 --- /dev/null +++ b/eng/common/templates/steps/vmr-sync.yml @@ -0,0 +1,186 @@ +### 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: | + 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/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 18693ea120d5..587770f0add4 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2022.amd64 +# demands: ImageOverride -equals windows.vs2026.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml new file mode 100644 index 000000000000..2f3694fa1323 --- /dev/null +++ b/eng/common/templates/vmr-build-pr.yml @@ -0,0 +1,43 @@ +# This pipeline is used for running the VMR verification of the PR changes in repo-level PRs. +# +# It will run a full set of verification jobs defined in: +# https://github.com/dotnet/dotnet/blob/10060d128e3f470e77265f8490f5e4f72dae738e/eng/pipelines/templates/stages/vmr-build.yml#L27-L38 +# +# For repos that do not need to run the full set, you would do the following: +# +# 1. Copy this YML file to a repo-specific location, i.e. outside of eng/common. +# +# 2. Add `verifications` parameter to VMR template reference +# +# Examples: +# - For source-build stage 1 verification, add the following: +# verifications: [ "source-build-stage1" ] +# +# - For Windows only verifications, add the following: +# verifications: [ "unified-build-windows-x64", "unified-build-windows-x86" ] + +trigger: none +pr: none + +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 + ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into + +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 a06513a59407..977a2d4b1039 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -65,10 +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 } - -[String[]]$properties = if (Test-Path variable:properties) { $properties } else { @() } +# 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 @@ -259,7 +257,20 @@ function Retry($downloadBlock, $maxRetries = 5) { function GetDotNetInstallScript([string] $dotnetRoot) { $installScript = Join-Path $dotnetRoot 'dotnet-install.ps1' + $shouldDownload = $false + if (!(Test-Path $installScript)) { + $shouldDownload = $true + } else { + # Check if the script is older than 30 days + $fileAge = (Get-Date) - (Get-Item $installScript).LastWriteTime + if ($fileAge.Days -gt 30) { + Write-Host "Existing install script is too old, re-downloading..." + $shouldDownload = $true + } + } + + if ($shouldDownload) { Create-Directory $dotnetRoot $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit $uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1" @@ -383,8 +394,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.12.0 - $defaultXCopyMSBuildVersion = '17.12.0' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/18.0.0 + $defaultXCopyMSBuildVersion = '18.0.0' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { @@ -533,7 +544,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (Get-Member -InputObject $GlobalJson.tools -Name 'vswhere') { $vswhereVersion = $GlobalJson.tools.vswhere } else { - $vswhereVersion = '2.5.2' + # keep this in sync with the VSWhereVersion in DefaultVersions.props + $vswhereVersion = '3.1.7' } $vsWhereDir = Join-Path $ToolsDir "vswhere\$vswhereVersion" @@ -541,7 +553,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (!(Test-Path $vsWhereExe)) { Create-Directory $vsWhereDir - Write-Host 'Downloading vswhere' + Write-Host "Downloading vswhere $vswhereVersion" + $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit Retry({ Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -UseBasicParsing -OutFile $vswhereExe }) @@ -611,14 +624,7 @@ function InitializeBuildTool() { } $dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') - # Use override if it exists - commonly set by source-build - if ($null -eq $env:_OverrideArcadeInitializeBuildToolFramework) { - $initializeBuildToolFramework="net9.0" - } else { - $initializeBuildToolFramework=$env:_OverrideArcadeInitializeBuildToolFramework - } - - $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = $initializeBuildToolFramework } + $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net' } } elseif ($msbuildEngine -eq "vs") { try { $msbuildPath = InitializeVisualStudioMSBuild -install:$restore @@ -627,7 +633,7 @@ function InitializeBuildTool() { ExitWithExitCode 1 } - $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "net472"; ExcludePrereleaseVS = $excludePrereleaseVS } + $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "netframework"; ExcludePrereleaseVS = $excludePrereleaseVS } } else { Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Unexpected value of -msbuildEngine: '$msbuildEngine'." ExitWithExitCode 1 @@ -660,7 +666,6 @@ function GetNuGetPackageCachePath() { $env:NUGET_PACKAGES = Join-Path $env:UserProfile '.nuget\packages\' } else { $env:NUGET_PACKAGES = Join-Path $RepoRoot '.packages\' - $env:RESTORENOHTTPCACHE = $true } } @@ -782,26 +787,13 @@ function MSBuild() { $toolsetBuildProject = InitializeToolset $basePath = Split-Path -parent $toolsetBuildProject - $possiblePaths = @( - # new scripts need to work with old packages, so we need to look for the old names/versions - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.Arcade.Sdk.dll')) - ) - $selectedPath = $null - foreach ($path in $possiblePaths) { - if (Test-Path $path -PathType Leaf) { - $selectedPath = $path - break - } - } + $selectedPath = Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll') + if (-not $selectedPath) { - Write-PipelineTelemetryError -Category 'Build' -Message 'Unable to find arcade sdk logger assembly.' + Write-PipelineTelemetryError -Category 'Build' -Message "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 } + $args += "/logger:$selectedPath" } @@ -832,6 +824,11 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + if ($env:MSBUILD_MT_ENABLED -eq "1") { + $cmdArgs += ' -mt' + } + if ($warnAsError) { $cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true' } @@ -864,8 +861,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 -and -not($properties -like "*DotNetBuildRepo=true*")) { + # 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 01b09b65796c..1b296f646c23 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -5,6 +5,9 @@ # CI mode - set to true on CI server for PR validation build or official build. ci=${ci:-false} +# Build mode +source_build=${source_build:-false} + # Set to true to use the pipelines logger which will enable Azure logging output. # https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md # This flag is meant as a temporary opt-opt for the feature while validate it across @@ -58,7 +61,8 @@ use_installed_dotnet_cli=${use_installed_dotnet_cli:-true} dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'} # True to use global NuGet cache instead of restoring packages to repository-local directory. -if [[ "$ci" == true ]]; then +# Keep in sync with NuGetPackageroot in Arcade SDK's RepositoryLayout.props. +if [[ "$ci" == true || "$source_build" == true ]]; then use_global_nuget_cache=${use_global_nuget_cache:-false} else use_global_nuget_cache=${use_global_nuget_cache:-true} @@ -68,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 { @@ -296,8 +300,29 @@ function GetDotNetInstallScript { local root=$1 local install_script="$root/dotnet-install.sh" local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" + local timestamp_file="$root/.dotnet-install.timestamp" + local should_download=false if [[ ! -a "$install_script" ]]; then + should_download=true + elif [[ -f "$timestamp_file" ]]; then + # Check if the script is older than 30 days using timestamp file + local download_time=$(cat "$timestamp_file" 2>/dev/null || echo "0") + local current_time=$(date +%s) + local age_seconds=$((current_time - download_time)) + + # 30 days = 30 * 24 * 60 * 60 = 2592000 seconds + if [[ $age_seconds -gt 2592000 ]]; then + echo "Existing install script is too old, re-downloading..." + should_download=true + fi + else + # No timestamp file exists, assume script is old and re-download + echo "No timestamp found for existing install script, re-downloading..." + should_download=true + fi + + if [[ "$should_download" == true ]]; then mkdir -p "$root" echo "Downloading '$install_script_url'" @@ -324,6 +349,9 @@ function GetDotNetInstallScript { ExitWithExitCode $exit_code } fi + + # Create timestamp file to track download time in seconds from epoch + date +%s > "$timestamp_file" fi # return value _GetDotNetInstallScript="$install_script" @@ -339,22 +367,14 @@ function InitializeBuildTool { # return values _InitializeBuildTool="$_InitializeDotNetCli/dotnet" _InitializeBuildToolCommand="msbuild" - # use override if it exists - commonly set by source-build - if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then - _InitializeBuildToolFramework="net9.0" - else - _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" - fi } -# 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 @@ -451,25 +471,13 @@ function MSBuild { fi local toolset_dir="${_InitializeToolset%/*}" - # new scripts need to work with old packages, so we need to look for the old names/versions - local selectedPath= - local possiblePaths=() - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - for path in "${possiblePaths[@]}"; do - if [[ -f $path ]]; then - selectedPath=$path - break - fi - done + local selectedPath="$toolset_dir/net/Microsoft.DotNet.ArcadeLogging.dll" + if [[ -z "$selectedPath" ]]; then - Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly." + Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 fi + args+=( "-logger:$selectedPath" ) fi @@ -506,8 +514,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 && "$properties" != *"DotNetBuildRepo=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 @@ -518,7 +526,13 @@ function MSBuild-Core { } } - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + local mt_switch="" + if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then + mt_switch="-mt" + fi + + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { @@ -530,6 +544,13 @@ 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. +function GetSdkTaskProject { + taskName=$1 + echo "$(dirname $_InitializeToolset)/SdkTasks/$taskName.proj" } ResolvePath "${BASH_SOURCE[0]}" diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 new file mode 100755 index 000000000000..b37992d91cf0 --- /dev/null +++ b/eng/common/vmr-sync.ps1 @@ -0,0 +1,164 @@ +<# +.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 +$env:DOTNET_ROOT = $dotnetRoot +$darc = Get-Darc + +Highlight "Starting the synchronization of VMR.." + +# Synchronize the VMR +$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path +[xml]$versionDetails = Get-Content -Path $versionDetailsPath +$repoName = $versionDetails.SelectSingleNode('//Source').Mapping +if (-not $repoName) { + Fail "Failed to resolve repo mapping from $versionDetailsPath" + exit 1 +} + +$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 { + Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..." + git -C $vmrDir reset --hard + + $resetArgs = ( + "vmr", "reset", + "${repoName}:HEAD", + "--vmr", $vmrDir, + "--tmp", $tmpDir, + "--additional-remotes", "${repoName}:${repoRoot}" + ) + + & "$darc" $resetArgs + + if ($LASTEXITCODE -eq 0) { + Highlight "Successfully reset the VMR using 'darc vmr reset'" + } + 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..198caec59bd4 --- /dev/null +++ b/eng/common/vmr-sync.sh @@ -0,0 +1,227 @@ +#!/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 + +version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml +repo_name=$(grep -m 1 ' Date: Fri, 20 Mar 2026 02:02:06 +0000 Subject: [PATCH 17/31] Update dependencies from https://github.com/dotnet/scenario-tests build 20260319.2 On relative base path root Microsoft.SourceBuild.Intermediate.scenario-tests , Microsoft.DotNet.ScenarioTests.SdkTemplateTests From Version 9.0.0-preview.26153.1 -> To Version 9.0.0-preview.26169.2 --- NuGet.config | 7 ------- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/NuGet.config b/NuGet.config index e4b7dcd1b1e0..4460caf81a88 100644 --- a/NuGet.config +++ b/NuGet.config @@ -24,10 +24,8 @@ - - @@ -37,13 +35,11 @@ - - @@ -72,13 +68,10 @@ - - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 62fe950cdf54..8a30d0a18f19 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -597,14 +597,14 @@ https://github.com/dotnet/arcade-services e156e649f28395d9d0ee1e848225a689b59e0fd3 - + https://github.com/dotnet/scenario-tests - acd9dc7ae0717d7f4fb6ac2b76ea364e94b4ceb3 + 19f7ab33960c27d4baa37b06d8cb26d007f49334 - + https://github.com/dotnet/scenario-tests - acd9dc7ae0717d7f4fb6ac2b76ea364e94b4ceb3 + 19f7ab33960c27d4baa37b06d8cb26d007f49334 From a80be0bc3b5a336959bfaf88e676c2305be3e091 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 3 Apr 2026 02:02:35 +0000 Subject: [PATCH 18/31] Update dependencies from https://github.com/dotnet/scenario-tests build 20260402.3 On relative base path root Microsoft.SourceBuild.Intermediate.scenario-tests , Microsoft.DotNet.ScenarioTests.SdkTemplateTests From Version 9.0.0-preview.26153.1 -> To Version 9.0.0-preview.26202.3 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8a30d0a18f19..dc9737221d88 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -597,14 +597,14 @@ https://github.com/dotnet/arcade-services e156e649f28395d9d0ee1e848225a689b59e0fd3 - + https://github.com/dotnet/scenario-tests - 19f7ab33960c27d4baa37b06d8cb26d007f49334 + 0f750c53b3052a593c6daacc0d60eb8c0d2d9cf1 - + https://github.com/dotnet/scenario-tests - 19f7ab33960c27d4baa37b06d8cb26d007f49334 + 0f750c53b3052a593c6daacc0d60eb8c0d2d9cf1 From 6c2901820f27765022b483ce6d5cc4e3eb1240b0 Mon Sep 17 00:00:00 2001 From: ".NET Source-Build Bot" <102560831+dotnet-sb-bot@users.noreply.github.com> Date: Wed, 11 Mar 2026 11:54:05 -0500 Subject: [PATCH 19/31] .NET Source-Build 9.0.115 March 2026 Updates (#53358) Co-authored-by: Matt Thalman --- src/SourceBuild/content/eng/Version.Details.xml | 4 ++-- src/SourceBuild/content/eng/Versions.props | 4 ++-- src/SourceBuild/content/global.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SourceBuild/content/eng/Version.Details.xml b/src/SourceBuild/content/eng/Version.Details.xml index 0be4c8d30ca6..74c1fbfb03c0 100644 --- a/src/SourceBuild/content/eng/Version.Details.xml +++ b/src/SourceBuild/content/eng/Version.Details.xml @@ -2,9 +2,9 @@ - + https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 + 0279dbd04bd1537e13ae3c1f003edf56acfaf123 diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index 1117282a292f..8b8b02a28b60 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -23,8 +23,8 @@ of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts are not necessary, and this property is removed from the file. --> - 9.0.114 - 9.0.114-servicing.26068.1 + 9.0.115 + 9.0.115-servicing.26120.1 2.0.0-beta4.24126.1 diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json index 526eb6b3b14a..347d0dba75e1 100644 --- a/src/SourceBuild/content/global.json +++ b/src/SourceBuild/content/global.json @@ -1,10 +1,10 @@ { "tools": { - "dotnet": "9.0.114" + "dotnet": "9.0.115" }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26063.2" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26110.2" } } From f25b82751225770c5eb9811678cc94a36bc36327 Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Tue, 7 Apr 2026 07:39:23 -0500 Subject: [PATCH 20/31] Increase memory for license scanning (#53720) --- src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml b/src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml index 4ce3850fd029..17fdfdc11b40 100644 --- a/src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml +++ b/src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml @@ -51,7 +51,7 @@ extends: containers: licenseScanContainer: image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-source-build-test-amd64 - options: '--memory=12g' + options: '--memory=20g' pool: name: NetCore1ESPool-Svc-Internal image: 1es-ubuntu-2204 From 8e5eedf313d78924f6d2abead7da56abde20694f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 18:27:48 +0000 Subject: [PATCH 21/31] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 4 +- eng/Version.Details.props | 266 +++++++-------- eng/Version.Details.xml | 673 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 475 insertions(+), 474 deletions(-) diff --git a/NuGet.config b/NuGet.config index e226baf9b0b6..903609549285 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -39,6 +39,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 94492476bae6..1a73d58a3c79 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,139 +8,139 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-preview.26203.109 - 10.0.6 - 10.0.6 - 18.0.11 - 18.0.11-servicing-26203-109 - 7.0.2-rc.20409 - 10.0.106 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.0-preview.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 2.0.0-preview.1.26203.109 - 2.2.6 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 14.0.106-servicing.26203.109 - 10.0.6 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.0-preview.26202.103 + 10.0.4 + 10.0.4 + 18.3.3 + 18.3.3-servicing-26202-103 + 7.3.0-rc.20303 + 10.0.202 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.0-preview.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 2.0.0-preview.1.26119.110 + 2.2.4 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 15.2.202-servicing.26202.103 + 10.0.4 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26203.109 - 10.0.6-servicing.26203.109 - 18.0.2-release-26203-109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 18.0.2-release-26203-109 - 18.0.2-release-26203-109 - 3.2.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 10.0.6 - 2.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 + 10.0.0-preview.26202.103 + 10.0.4-servicing.26119.110 + 18.3.0-release-26202-103 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 18.3.0-release-26202-103 + 18.3.0-release-26202-103 + 3.2.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 10.0.4 + 2.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 2.3.0-preview.26202.5 4.3.0-preview.26202.5 @@ -185,6 +185,7 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) @@ -200,7 +201,6 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3a7cdb3a56c8..a1ff22313714 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 https://github.com/microsoft/testfx @@ -569,9 +568,9 @@ https://github.com/microsoft/testfx cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 diff --git a/global.json b/global.json index 6f9207378ac4..0552121a41ea 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.105", + "dotnet": "10.0.201", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26203.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26203.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26202.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26202.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 29ebb0eeb66045897ec0e8825cfc4da0e9599d61 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 08:41:56 +0000 Subject: [PATCH 22/31] Reset files to release/10.0.1xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 52 +- eng/Version.Details.props | 290 +++++ eng/Version.Details.xml | 1081 ++++++++--------- eng/common/CIBuild.cmd | 2 +- eng/common/SetupNugetSources.ps1 | 90 +- eng/common/SetupNugetSources.sh | 192 +-- eng/common/build.ps1 | 11 +- eng/common/build.sh | 33 +- eng/common/cibuild.sh | 2 +- eng/common/core-templates/job/job.yml | 48 +- eng/common/core-templates/job/onelocbuild.yml | 39 +- .../job/publish-build-assets.yml | 83 +- .../core-templates/job/source-build.yml | 15 +- .../job/source-index-stage1.yml | 47 +- .../core-templates/jobs/codeql-build.yml | 1 - eng/common/core-templates/jobs/jobs.yml | 15 +- .../core-templates/jobs/source-build.yml | 23 +- .../core-templates/post-build/post-build.yml | 42 +- .../steps/cleanup-microbuild.yml | 28 + .../core-templates/steps/generate-sbom.yml | 2 +- .../steps/get-delegation-sas.yml | 11 +- .../steps/install-microbuild.yml | 110 ++ .../core-templates/steps/publish-logs.yml | 8 +- .../core-templates/steps/source-build.yml | 88 +- .../steps/source-index-stage1-publish.yml | 35 + eng/common/cross/arm64/tizen/tizen.patch | 2 +- eng/common/cross/build-android-rootfs.sh | 49 +- eng/common/cross/build-rootfs.sh | 237 ++-- eng/common/cross/install-debs.py | 334 +++++ eng/common/cross/tizen-build-rootfs.sh | 0 eng/common/cross/tizen-fetch.sh | 9 +- eng/common/cross/toolchain.cmake | 82 +- eng/common/darc-init.sh | 2 +- eng/common/dotnet.cmd | 7 + eng/common/dotnet.ps1 | 11 + eng/common/dotnet.sh | 26 + eng/common/generate-locproject.ps1 | 49 +- eng/common/generate-sbom-prep.sh | 0 eng/common/native/install-dependencies.sh | 62 + eng/common/post-build/publish-using-darc.ps1 | 9 +- eng/common/post-build/redact-logs.ps1 | 5 +- eng/common/sdk-task.ps1 | 14 +- eng/common/sdk-task.sh | 121 ++ eng/common/sdl/packages.config | 2 +- eng/common/templates-official/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 7 +- .../steps/source-index-stage1-publish.yml | 7 + .../variables/pool-providers.yml | 2 +- eng/common/templates/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 8 +- .../steps/source-index-stage1-publish.yml | 7 + eng/common/templates/steps/vmr-sync.yml | 186 +++ .../templates/variables/pool-providers.yml | 2 +- eng/common/templates/vmr-build-pr.yml | 43 + eng/common/tools.ps1 | 71 +- eng/common/tools.sh | 81 +- eng/common/vmr-sync.ps1 | 164 +++ eng/common/vmr-sync.sh | 227 ++++ global.json | 21 +- 59 files changed, 2940 insertions(+), 1263 deletions(-) create mode 100644 eng/Version.Details.props mode change 100644 => 100755 eng/common/SetupNugetSources.sh create mode 100644 eng/common/core-templates/steps/cleanup-microbuild.yml create mode 100644 eng/common/core-templates/steps/install-microbuild.yml create mode 100644 eng/common/core-templates/steps/source-index-stage1-publish.yml create mode 100755 eng/common/cross/install-debs.py mode change 100644 => 100755 eng/common/cross/tizen-build-rootfs.sh mode change 100644 => 100755 eng/common/cross/tizen-fetch.sh create mode 100644 eng/common/dotnet.cmd create mode 100644 eng/common/dotnet.ps1 create mode 100755 eng/common/dotnet.sh mode change 100644 => 100755 eng/common/generate-sbom-prep.sh create mode 100755 eng/common/native/install-dependencies.sh create mode 100755 eng/common/sdk-task.sh create mode 100644 eng/common/templates-official/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/vmr-sync.yml create mode 100644 eng/common/templates/vmr-build-pr.yml create mode 100755 eng/common/vmr-sync.ps1 create mode 100755 eng/common/vmr-sync.sh diff --git a/NuGet.config b/NuGet.config index 4460caf81a88..e226baf9b0b6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,44 +3,15 @@ - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - @@ -51,6 +22,8 @@ + + @@ -60,19 +33,14 @@ + + + - - - - - - - - diff --git a/eng/Version.Details.props b/eng/Version.Details.props new file mode 100644 index 000000000000..94492476bae6 --- /dev/null +++ b/eng/Version.Details.props @@ -0,0 +1,290 @@ + + + + + 2.1.0 + + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-preview.26203.109 + 10.0.6 + 10.0.6 + 18.0.11 + 18.0.11-servicing-26203-109 + 7.0.2-rc.20409 + 10.0.106 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.0-preview.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 2.0.0-preview.1.26203.109 + 2.2.6 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 14.0.106-servicing.26203.109 + 10.0.6 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.0-preview.7.25377.103 + 10.0.0-preview.26203.109 + 10.0.6-servicing.26203.109 + 18.0.2-release-26203-109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106-servicing.26203.109 + 10.0.106 + 10.0.106-servicing.26203.109 + 10.0.106 + 10.0.106 + 10.0.106-servicing.26203.109 + 18.0.2-release-26203-109 + 18.0.2-release-26203-109 + 3.2.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 10.0.6 + 2.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + + 2.3.0-preview.26202.5 + 4.3.0-preview.26202.5 + + + + + $(NETStandardLibraryRefPackageVersion) + + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) + $(MicrosoftBuildPackageVersion) + $(MicrosoftBuildLocalizationPackageVersion) + $(MicrosoftBuildNuGetSdkResolverPackageVersion) + $(MicrosoftBuildTasksGitPackageVersion) + $(MicrosoftCodeAnalysisPackageVersion) + $(MicrosoftCodeAnalysisBuildClientPackageVersion) + $(MicrosoftCodeAnalysisCSharpPackageVersion) + $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) + $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) + $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) + $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) + $(MicrosoftDotNetArcadeSdkPackageVersion) + $(MicrosoftDotNetBuildTasksInstallersPackageVersion) + $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) + $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) + $(MicrosoftDotNetHelixSdkPackageVersion) + $(MicrosoftDotNetSignToolPackageVersion) + $(MicrosoftDotNetWebItemTemplates100PackageVersion) + $(MicrosoftDotNetWebProjectTemplates100PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) + $(MicrosoftDotNetXliffTasksPackageVersion) + $(MicrosoftDotNetXUnitExtensionsPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) + $(MicrosoftFSharpCompilerPackageVersion) + $(MicrosoftJSInteropPackageVersion) + $(MicrosoftNetCompilersToolsetPackageVersion) + $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) + $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) + $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) + $(MicrosoftNETTestSdkPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) + $(MicrosoftSourceLinkAzureReposGitPackageVersion) + $(MicrosoftSourceLinkBitbucketGitPackageVersion) + $(MicrosoftSourceLinkCommonPackageVersion) + $(MicrosoftSourceLinkGitHubPackageVersion) + $(MicrosoftSourceLinkGitLabPackageVersion) + $(MicrosoftTemplateEngineAbstractionsPackageVersion) + $(MicrosoftTemplateEngineAuthoringTemplateVerifierPackageVersion) + $(MicrosoftTemplateEngineEdgePackageVersion) + $(MicrosoftTemplateEngineMocksPackageVersion) + $(MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion) + $(MicrosoftTemplateEngineTestHelperPackageVersion) + $(MicrosoftTemplateEngineUtilsPackageVersion) + $(MicrosoftTemplateSearchCommonPackageVersion) + $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) + $(MicrosoftTestPlatformBuildPackageVersion) + $(MicrosoftTestPlatformCLIPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) + $(NuGetBuildTasksPackageVersion) + $(NuGetBuildTasksConsolePackageVersion) + $(NuGetBuildTasksPackPackageVersion) + $(NuGetCommandLineXPlatPackageVersion) + $(NuGetCommandsPackageVersion) + $(NuGetCommonPackageVersion) + $(NuGetConfigurationPackageVersion) + $(NuGetCredentialsPackageVersion) + $(NuGetDependencyResolverCorePackageVersion) + $(NuGetFrameworksPackageVersion) + $(NuGetLibraryModelPackageVersion) + $(NuGetLocalizationPackageVersion) + $(NuGetPackagingPackageVersion) + $(NuGetProjectModelPackageVersion) + $(NuGetProtocolPackageVersion) + $(NuGetVersioningPackageVersion) + $(SystemCodeDomPackageVersion) + $(SystemCommandLinePackageVersion) + $(SystemComponentModelCompositionPackageVersion) + $(SystemCompositionAttributedModelPackageVersion) + $(SystemCompositionConventionPackageVersion) + $(SystemCompositionHostingPackageVersion) + $(SystemCompositionRuntimePackageVersion) + $(SystemCompositionTypedPartsPackageVersion) + $(SystemConfigurationConfigurationManagerPackageVersion) + $(SystemDiagnosticsDiagnosticSourcePackageVersion) + $(SystemFormatsAsn1PackageVersion) + $(SystemIOHashingPackageVersion) + $(SystemReflectionMetadataLoadContextPackageVersion) + $(SystemResourcesExtensionsPackageVersion) + $(SystemSecurityCryptographyPkcsPackageVersion) + $(SystemSecurityCryptographyProtectedDataPackageVersion) + $(SystemSecurityCryptographyXmlPackageVersion) + $(SystemSecurityPermissionsPackageVersion) + $(SystemServiceProcessServiceControllerPackageVersion) + $(SystemTextEncodingCodePagesPackageVersion) + $(SystemTextJsonPackageVersion) + $(SystemWindowsExtensionsPackageVersion) + + $(MicrosoftTestingPlatformPackageVersion) + $(MSTestPackageVersion) + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 25d8b3f5e48f..3a7cdb3a56c8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,634 +1,577 @@ + - - https://github.com/dotnet/templating - 34a5893f3ec336db55d3da5621a96106b418db5b - - - https://github.com/dotnet/templating - 34a5893f3ec336db55d3da5621a96106b418db5b - - - - https://github.com/dotnet/templating - b73682307aa0128c5edbec94c2e6a070d13ae6bb - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - - https://github.com/dotnet/emsdk - fb1326b0f4622f04f21584dc133f1c71f7554509 - - - - https://github.com/dotnet/emsdk - fb1326b0f4622f04f21584dc133f1c71f7554509 - - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6a953e76162f3f079405f80e28664fa51b136740 + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - - - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 72d4e0415ec4ae0771a5df3e05260691a5d6775b - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - 9399df09f8f8a187dcf1941b1d07a538ca197171 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 72d4e0415ec4ae0771a5df3e05260691a5d6775b - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/roslyn-analyzers - 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn-analyzers - 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - - - https://github.com/dotnet/source-build-externals - 71dbdccd13f28cfd1a35649263b55ebbeab26ee7 - - - - - https://github.com/dotnet/source-build-reference-packages - 6092b62b7f35fddbd6bf31e19b2ab64bbe2443ae - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/scenario-tests - 0f750c53b3052a593c6daacc0d60eb8c0d2d9cf1 - - - - https://github.com/dotnet/scenario-tests - 0f750c53b3052a593c6daacc0d60eb8c0d2d9cf1 - - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/microsoft/testfx + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + + + https://github.com/microsoft/testfx + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a diff --git a/eng/common/CIBuild.cmd b/eng/common/CIBuild.cmd index 56c2f25ac22f..ac1f72bf94e0 100644 --- a/eng/common/CIBuild.cmd +++ b/eng/common/CIBuild.cmd @@ -1,2 +1,2 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" \ No newline at end of file +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 792b60b49d42..65ed3a8adef0 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -1,13 +1,14 @@ # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # # See example call for this script below. # # - task: PowerShell@2 -# displayName: Setup Private Feeds Credentials +# displayName: Setup internal Feeds Credentials # condition: eq(variables['Agent.OS'], 'Windows_NT') # inputs: # filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 @@ -34,19 +35,28 @@ Set-StrictMode -Version 2.0 . $PSScriptRoot\tools.ps1 +# Adds or enables the package source with the given name +function AddOrEnablePackageSource($sources, $disabledPackageSources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { + if ($disabledPackageSources -eq $null -or -not (EnableInternalPackageSource -DisabledPackageSources $disabledPackageSources -Creds $creds -PackageSourceName $SourceName)) { + AddPackageSource -Sources $sources -SourceName $SourceName -SourceEndPoint $SourceEndPoint -Creds $creds -Username $userName -pwd $Password + } +} + # Add source entry to PackageSources function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']") if ($packageSource -eq $null) { + Write-Host "Adding package source $SourceName" + $packageSource = $doc.CreateElement("add") $packageSource.SetAttribute("key", $SourceName) $packageSource.SetAttribute("value", $SourceEndPoint) $sources.AppendChild($packageSource) | Out-Null } else { - Write-Host "Package source $SourceName already present." + Write-Host "Package source $SourceName already present and enabled." } AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd @@ -59,6 +69,8 @@ function AddCredential($creds, $source, $username, $pwd) { return; } + Write-Host "Inserting credential for feed: " $source + # Looks for credential configuration for the given SourceName. Create it if none is found. $sourceElement = $creds.SelectSingleNode($Source) if ($sourceElement -eq $null) @@ -91,24 +103,27 @@ function AddCredential($creds, $source, $username, $pwd) { $passwordElement.SetAttribute("value", $pwd) } -function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) { - $maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]") - - Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds." - - ForEach ($PackageSource in $maestroPrivateSources) { - Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key - AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd +# Enable all darc-int package sources. +function EnableMaestroInternalPackageSources($DisabledPackageSources, $Creds) { + $maestroInternalSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") + ForEach ($DisabledPackageSource in $maestroInternalSources) { + EnableInternalPackageSource -DisabledPackageSources $DisabledPackageSources -Creds $Creds -PackageSourceName $DisabledPackageSource.key } } -function EnablePrivatePackageSources($DisabledPackageSources) { - $maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") - ForEach ($DisabledPackageSource in $maestroPrivateSources) { - Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource" +# Enables an internal package source by name, if found. Returns true if the package source was found and enabled, false otherwise. +function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSourceName) { + $DisabledPackageSource = $DisabledPackageSources.SelectSingleNode("add[@key='$PackageSourceName']") + if ($DisabledPackageSource) { + Write-Host "Enabling internal source '$($DisabledPackageSource.key)'." + # Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries $DisabledPackageSources.RemoveChild($DisabledPackageSource) + + AddCredential -Creds $creds -Source $DisabledPackageSource.Key -Username $userName -pwd $Password + return $true } + return $false } if (!(Test-Path $ConfigFile -PathType Leaf)) { @@ -121,15 +136,17 @@ $doc = New-Object System.Xml.XmlDocument $filename = (Get-Item $ConfigFile).FullName $doc.Load($filename) -# Get reference to or create one if none exist already +# Get reference to - fail if none exist $sources = $doc.DocumentElement.SelectSingleNode("packageSources") if ($sources -eq $null) { - $sources = $doc.CreateElement("packageSources") - $doc.DocumentElement.AppendChild($sources) | Out-Null + Write-PipelineTelemetryError -Category 'Build' -Message "Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 } $creds = $null +$feedSuffix = "v3/index.json" if ($Password) { + $feedSuffix = "v2" # Looks for a node. Create it if none is found. $creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials") if ($creds -eq $null) { @@ -138,34 +155,35 @@ if ($Password) { } } +$userName = "dn-bot" + # Check for disabledPackageSources; we'll enable any darc-int ones we find there $disabledSources = $doc.DocumentElement.SelectSingleNode("disabledPackageSources") if ($disabledSources -ne $null) { Write-Host "Checking for any darc-int disabled package sources in the disabledPackageSources node" - EnablePrivatePackageSources -DisabledPackageSources $disabledSources + EnableMaestroInternalPackageSources -DisabledPackageSources $disabledSources -Creds $creds } - -$userName = "dn-bot" - -# Insert credential nodes for Maestro's private feeds -InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password - -# 3.1 uses a different feed url format so it's handled differently here -$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']") -if ($dotnet31Source -ne $null) { - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password -} - -$dotnetVersions = @('5','6','7','8','9') +$dotnetVersions = @('5','6','7','8','9','10') foreach ($dotnetVersion in $dotnetVersions) { $feedPrefix = "dotnet" + $dotnetVersion; $dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']") if ($dotnetSource -ne $null) { - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password } } +# Check for dotnet-eng and add dotnet-eng-internal if present +$dotnetEngSource = $sources.SelectSingleNode("add[@key='dotnet-eng']") +if ($dotnetEngSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-eng-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + +# Check for dotnet-tools and add dotnet-tools-internal if present +$dotnetToolsSource = $sources.SelectSingleNode("add[@key='dotnet-tools']") +if ($dotnetToolsSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-tools-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + $doc.Save($filename) diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh old mode 100644 new mode 100755 index facb415ca6ff..b2163abbe71b --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # @@ -52,81 +53,139 @@ if [[ `uname -s` == "Darwin" ]]; then TB='' fi -# Ensure there is a ... section. -grep -i "" $ConfigFile -if [ "$?" != "0" ]; then - echo "Adding ... section." - ConfigNodeHeader="" - PackageSourcesTemplate="${TB}${NL}${TB}" +# Enables an internal package source by name, if found. Returns 0 if found and enabled, 1 if not found. +EnableInternalPackageSource() { + local PackageSourceName="$1" + + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return 1 # No disabled sources section + fi + + # Check if this source name is disabled + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Enabling internal source '$PackageSourceName'." + # Remove the disabled entry (including any surrounding comments or whitespace on the same line) + sed -i.bak "//d" "$ConfigFile" + + # Add the source name to PackageSources for credential handling + PackageSources+=("$PackageSourceName") + return 0 # Found and enabled + fi + + return 1 # Not found in disabled sources +} + +# Add source entry to PackageSources +AddPackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Check if source already exists + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Package source $SourceName already present and enabled." + PackageSources+=("$SourceName") + return + fi + + echo "Adding package source $SourceName" + PackageSourcesNodeFooter="" + PackageSourceTemplate="${TB}" + + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" "$ConfigFile" + PackageSources+=("$SourceName") +} + +# Adds or enables the package source with the given name +AddOrEnablePackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Try to enable if disabled, if not found then add new source + EnableInternalPackageSource "$SourceName" + if [ "$?" != "0" ]; then + AddPackageSource "$SourceName" "$SourceEndPoint" + fi +} - sed -i.bak "s|$ConfigNodeHeader|$ConfigNodeHeader${NL}$PackageSourcesTemplate|" $ConfigFile -fi +# Enable all darc-int package sources +EnableMaestroInternalPackageSources() { + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return # No disabled sources section + fi + + # Find all darc-int disabled sources + local DisabledDarcIntSources=() + DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' "$ConfigFile" | tr -d '"') + + for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do + if [[ $DisabledSourceName == darc-int* ]]; then + EnableInternalPackageSource "$DisabledSourceName" + fi + done +} -# Ensure there is a ... section. -grep -i "" $ConfigFile +# Ensure there is a ... section. +grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding ... section." - - PackageSourcesNodeFooter="" - PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile + Write-PipelineTelemetryError -Category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 fi PackageSources=() -# Ensure dotnet3.1-internal and dotnet3.1-internal-transport are in the packageSources if the public dotnet3.1 feeds are present -grep -i "... section. + grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + echo "Adding ... section." - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=('dotnet3.1-internal') - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal-transport to the packageSources." PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile fi - PackageSources+=('dotnet3.1-internal-transport') fi -DotNetVersions=('5' '6' '7' '8' '9') +# Check for disabledPackageSources; we'll enable any darc-int ones we find there +grep -i "" $ConfigFile > /dev/null +if [ "$?" == "0" ]; then + echo "Checking for any darc-int disabled package sources in the disabledPackageSources node" + EnableMaestroInternalPackageSources +fi + +DotNetVersions=('5' '6' '7' '8' '9' '10') for DotNetVersion in ${DotNetVersions[@]} ; do FeedPrefix="dotnet${DotNetVersion}"; - grep -i " /dev/null if [ "$?" == "0" ]; then - grep -i "" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal") - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding $FeedPrefix-internal-transport to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal-transport") + AddOrEnablePackageSource "$FeedPrefix-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal/nuget/$FeedSuffix" + AddOrEnablePackageSource "$FeedPrefix-internal-transport" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal-transport/nuget/$FeedSuffix" fi done +# Check for dotnet-eng and add dotnet-eng-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-eng-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$FeedSuffix" +fi + +# Check for dotnet-tools and add dotnet-tools-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-tools-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$FeedSuffix" +fi + # I want things split line by line PrevIFS=$IFS IFS=$'\n' @@ -139,29 +198,12 @@ if [ "$CredToken" ]; then # Check if there is no existing credential for this FeedName grep -i "<$FeedName>" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding credentials for $FeedName." + echo " Inserting credential for feed: $FeedName" PackageSourceCredentialsNodeFooter="" - NewCredential="${TB}${TB}<$FeedName>${NL}${NL}${NL}" + NewCredential="${TB}${TB}<$FeedName>${NL}${TB}${NL}${TB}${TB}${NL}${TB}${TB}" sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" $ConfigFile fi done fi - -# Re-enable any entries in disabledPackageSources where the feed name contains darc-int -grep -i "" $ConfigFile -if [ "$?" == "0" ]; then - DisabledDarcIntSources=() - echo "Re-enabling any disabled \"darc-int\" package sources in $ConfigFile" - DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' $ConfigFile | tr -d '"') - for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do - if [[ $DisabledSourceName == darc-int* ]] - then - OldDisableValue="" - NewDisableValue="" - sed -i.bak "s|$OldDisableValue|$NewDisableValue|" $ConfigFile - echo "Neutralized disablePackageSources entry for '$DisabledSourceName'" - fi - done -fi diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 438f9920c43e..8cfee107e7a3 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -7,6 +7,7 @@ Param( [string] $msbuildEngine = $null, [bool] $warnAsError = $true, [bool] $nodeReuse = $true, + [switch] $buildCheck = $false, [switch][Alias('r')]$restore, [switch] $deployDeps, [switch][Alias('b')]$build, @@ -20,6 +21,7 @@ Param( [switch] $publish, [switch] $clean, [switch][Alias('pb')]$productBuild, + [switch]$fromVMR, [switch][Alias('bl')]$binaryLog, [switch][Alias('nobl')]$excludeCIBinarylog, [switch] $ci, @@ -71,6 +73,9 @@ function Print-Usage() { Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." Write-Host " -excludePrereleaseVS Set to exclude build engines in prerelease versions of Visual Studio" 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." @@ -97,6 +102,7 @@ function Build { $bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' } $platformArg = if ($platform) { "/p:Platform=$platform" } else { '' } + $check = if ($buildCheck) { '/check' } else { '' } if ($projects) { # Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons. @@ -113,6 +119,7 @@ function Build { MSBuild $toolsetBuildProj ` $bl ` $platformArg ` + $check ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` /p:Restore=$restore ` @@ -122,11 +129,13 @@ 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 ` /p:Publish=$publish ` + /p:RestoreStaticGraphEnableBinaryLogger=$binaryLog ` @properties } diff --git a/eng/common/build.sh b/eng/common/build.sh index ac1ee8620cd2..9767bb411a4f 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -42,6 +42,8 @@ usage() echo " --prepareMachine Prepare machine for CI run, clean up processes after build" 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." @@ -63,6 +65,7 @@ restore=false build=false source_build=false product_build=false +from_vmr=false rebuild=false test=false integration_test=false @@ -76,6 +79,7 @@ clean=false warn_as_error=true node_reuse=true +build_check=false binary_log=false exclude_ci_binary_log=false pipelines_log=false @@ -87,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 @@ -127,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 ;; @@ -173,6 +180,9 @@ while [[ $# > 0 ]]; do node_reuse=$2 shift ;; + -buildcheck) + build_check=true + ;; -runtimesourcefeed) runtime_source_feed=$2 shift @@ -182,7 +192,7 @@ while [[ $# > 0 ]]; do shift ;; *) - properties="$properties $1" + properties+=("$1") ;; esac @@ -216,7 +226,7 @@ function Build { InitializeCustomToolset if [[ ! -z "$projects" ]]; then - properties="$properties /p:Projects=$projects" + properties+=("/p:Projects=$projects") fi local bl="" @@ -224,15 +234,21 @@ function Build { bl="/bl:\"$log_dir/Build.binlog\"" fi + local check="" + if [[ "$build_check" == true ]]; then + check="/check" + fi + MSBuild $_InitializeToolset \ $bl \ + $check \ /p:Configuration=$configuration \ /p:RepoRoot="$repo_root" \ /p:Restore=$restore \ /p:Build=$build \ - /p:DotNetBuildRepo=$product_build \ - /p:ArcadeBuildFromSource=$source_build \ + /p:DotNetBuild=$product_build \ /p:DotNetBuildSourceOnly=$source_build \ + /p:DotNetBuildFromVMR=$from_vmr \ /p:Rebuild=$rebuild \ /p:Test=$test \ /p:Pack=$pack \ @@ -240,7 +256,8 @@ function Build { /p:PerformanceTest=$performance_test \ /p:Sign=$sign \ /p:Publish=$publish \ - $properties + /p:RestoreStaticGraphEnableBinaryLogger=$binary_log \ + ${properties[@]+"${properties[@]}"} ExitWithExitCode 0 } diff --git a/eng/common/cibuild.sh b/eng/common/cibuild.sh index 1a02c0dec8fd..66e3b0ac61c3 100755 --- a/eng/common/cibuild.sh +++ b/eng/common/cibuild.sh @@ -13,4 +13,4 @@ while [[ -h $source ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" -. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ \ No newline at end of file +. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml index 8da43d3b5837..5ce518406198 100644 --- a/eng/common/core-templates/job/job.yml +++ b/eng/common/core-templates/job/job.yml @@ -19,11 +19,11 @@ parameters: # publishing defaults artifacts: '' enableMicrobuild: false + enableMicrobuildForMacAndLinux: false microbuildUseESRP: true enablePublishBuildArtifacts: false enablePublishBuildAssets: false enablePublishTestResults: false - enablePublishUsingPipelines: false enableBuildRetry: false mergeTestResults: false testRunTitle: '' @@ -74,9 +74,6 @@ jobs: - ${{ if ne(parameters.enableTelemetry, 'false') }}: - name: DOTNET_CLI_TELEMETRY_PROFILE value: '$(Build.Repository.Uri)' - - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: - - name: EnableRichCodeNavigation - value: 'true' # Retry signature validation up to three times, waiting 2 seconds between attempts. # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY @@ -128,23 +125,12 @@ jobs: - ${{ preStep }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - task: MicroBuildSigningPlugin@4 - displayName: Install MicroBuild plugin - inputs: - signType: $(_SignType) - zipSources: false - feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - ${{ if eq(parameters.microbuildUseESRP, true) }}: - ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea - ${{ else }}: - ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca - env: - TeamName: $(_TeamName) - MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' + - template: /eng/common/core-templates/steps/install-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} + microbuildUseESRP: ${{ parameters.microbuildUseESRP }} continueOnError: ${{ parameters.continueOnError }} - condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}: - task: NuGetAuthenticate@1 @@ -160,27 +146,15 @@ jobs: - ${{ each step in parameters.steps }}: - ${{ step }} - - ${{ if eq(parameters.enableRichCodeNavigation, true) }}: - - task: RichCodeNavIndexer@0 - displayName: RichCodeNav Upload - inputs: - languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} - environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }} - richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin - uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} - continueOnError: true - - ${{ each step in parameters.componentGovernanceSteps }}: - ${{ step }} - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: MicroBuildCleanup@1 - displayName: Execute Microbuild cleanup tasks - condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/core-templates/steps/cleanup-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} continueOnError: ${{ parameters.continueOnError }} - env: - TeamName: $(_TeamName) # Publish test results - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}: diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index edefa789d360..eefed3b667a4 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -4,7 +4,7 @@ parameters: # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool pool: '' - + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex GithubPat: $(BotAccount-dotnet-bot-repo-PAT) @@ -27,7 +27,7 @@ parameters: is1ESPipeline: '' jobs: - job: OneLocBuild${{ parameters.JobNameSuffix }} - + dependsOn: ${{ parameters.dependsOn }} displayName: OneLocBuild${{ parameters.JobNameSuffix }} @@ -52,13 +52,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows steps: @@ -86,8 +86,7 @@ jobs: isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }} ${{ if eq(parameters.CreatePr, true) }}: isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }} - ${{ if eq(parameters.RepoType, 'gitHub') }}: - isShouldReusePrSelected: ${{ parameters.ReusePr }} + isShouldReusePrSelected: ${{ parameters.ReusePr }} packageSourceAuth: patAuth patVariable: ${{ parameters.CeapexPat }} ${{ if eq(parameters.RepoType, 'gitHub') }}: @@ -100,22 +99,20 @@ jobs: mirrorBranch: ${{ parameters.MirrorBranch }} condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml - parameters: - is1ESPipeline: ${{ parameters.is1ESPipeline }} - args: - displayName: Publish Localization Files - pathToPublish: '$(Build.ArtifactStagingDirectory)/loc' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} + # Copy the locProject.json to the root of the Loc directory, then publish a pipeline artifact + - task: CopyFiles@2 + displayName: Copy LocProject.json + inputs: + SourceFolder: '$(System.DefaultWorkingDirectory)/eng/Localize/' + Contents: 'LocProject.json' + TargetFolder: '$(Build.ArtifactStagingDirectory)/loc' + condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml + - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: - displayName: Publish LocProject.json - pathToPublish: '$(System.DefaultWorkingDirectory)/eng/Localize/' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} \ No newline at end of file + targetPath: '$(Build.ArtifactStagingDirectory)/loc' + artifactName: 'Loc' + displayName: 'Publish Localization Files' + condition: ${{ parameters.condition }} diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 3cb20fb5041f..9afcb8ae1590 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -20,9 +20,6 @@ parameters: # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. runAsPublic: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing - publishUsingPipelines: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing publishAssetsImmediately: false @@ -32,6 +29,15 @@ parameters: is1ESPipeline: '' + # 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' + repositoryAlias: self officialBuildId: '' @@ -68,13 +74,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: @@ -84,18 +90,44 @@ jobs: - checkout: ${{ parameters.repositoryAlias }} fetchDepth: 3 clean: true - - - task: DownloadBuildArtifacts@0 - displayName: Download artifact - inputs: - artifactName: AssetManifests - downloadPath: '$(Build.StagingDirectory)/Download' - checkDownloadedFiles: true - condition: ${{ parameters.condition }} - continueOnError: ${{ parameters.continueOnError }} + + - ${{ if eq(parameters.isAssetlessBuild, 'false') }}: + - ${{ 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 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + - task: AzureCLI@2 displayName: Publish Build Assets inputs: @@ -104,10 +136,13 @@ jobs: scriptLocation: scriptPath scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet - /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' + /p:ManifestsPath='$(Build.StagingDirectory)/AssetManifests' + /p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }} /p:MaestroApiEndpoint=https://maestro.dot.net - /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} /p:OfficialBuildId=$(OfficialBuildId) + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' + condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} @@ -129,6 +164,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 }} @@ -138,7 +184,7 @@ jobs: publishLocation: Container artifactName: ReleaseConfigs - - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: + - ${{ if or(eq(parameters.publishAssetsImmediately, 'true'), eq(parameters.isAssetlessBuild, 'true')) }}: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: BARBuildId: ${{ parameters.BARBuildId }} @@ -164,6 +210,9 @@ jobs: -WaitPublishingFinish true -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: - template: /eng/common/core-templates/steps/publish-logs.yml diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index d943748ac10e..1997c2ae00d7 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -12,9 +12,10 @@ parameters: # The name of the job. This is included in the job ID. # targetRID: '' # The name of the target RID to use, instead of the one auto-detected by Arcade. - # nonPortable: false + # portableBuild: false # Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than - # linux-x64), and compiling against distro-provided packages rather than portable ones. + # linux-x64), and compiling against distro-provided packages rather than portable ones. The + # default is portable mode. # skipPublishValidation: false # Disables publishing validation. By default, a check is performed to ensure no packages are # published by source-build. @@ -33,9 +34,6 @@ parameters: # container and pool. platform: {} - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -62,7 +60,7 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals build.ubuntu.2004.amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] image: build.azurelinux.3.amd64 @@ -71,10 +69,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} @@ -96,4 +94,3 @@ jobs: parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} platform: ${{ parameters.platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} diff --git a/eng/common/core-templates/job/source-index-stage1.yml b/eng/common/core-templates/job/source-index-stage1.yml index ddf8c2e00d80..76baf5c27258 100644 --- a/eng/common/core-templates/job/source-index-stage1.yml +++ b/eng/common/core-templates/job/source-index-stage1.yml @@ -1,8 +1,5 @@ parameters: runAsPublic: false - sourceIndexUploadPackageVersion: 2.0.0-20250425.2 - sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2 - sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" preSteps: [] binlogPath: artifacts/log/Debug/Build.binlog @@ -16,12 +13,6 @@ jobs: dependsOn: ${{ parameters.dependsOn }} condition: ${{ parameters.condition }} variables: - - name: SourceIndexUploadPackageVersion - value: ${{ parameters.sourceIndexUploadPackageVersion }} - - name: SourceIndexProcessBinlogPackageVersion - value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }} - - name: SourceIndexPackageSource - value: ${{ parameters.sourceIndexPackageSource }} - name: BinlogPath value: ${{ parameters.binlogPath }} - template: /eng/common/core-templates/variables/pool-providers.yml @@ -34,12 +25,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $(DncEngPublicBuildPool) - image: 1es-windows-2022-open - os: windows + image: windows.vs2026preview.scout.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 - os: windows + image: windows.vs2026preview.scout.amd64 steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: @@ -47,35 +36,9 @@ jobs: - ${{ each preStep in parameters.preSteps }}: - ${{ preStep }} - - - task: UseDotNet@2 - displayName: Use .NET 8 SDK - inputs: - packageType: sdk - version: 8.0.x - installationPath: $(Agent.TempDirectory)/dotnet - workingDirectory: $(Agent.TempDirectory) - - - script: | - $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - displayName: Download Tools - # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. - workingDirectory: $(Agent.TempDirectory) - - script: ${{ parameters.sourceIndexBuildCommand }} displayName: Build Repository - - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output - displayName: Process Binlog into indexable sln - - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: AzureCLI@2 - displayName: Log in to Azure and upload stage1 artifacts to source index - inputs: - azureSubscription: 'SourceDotNet Stage1 Publish' - addSpnToEnvironment: true - scriptType: 'ps' - scriptLocation: 'inlineScript' - inlineScript: | - $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 + - template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + binLogPath: ${{ parameters.binLogPath }} diff --git a/eng/common/core-templates/jobs/codeql-build.yml b/eng/common/core-templates/jobs/codeql-build.yml index 4571a7864df6..dbc14ac580a2 100644 --- a/eng/common/core-templates/jobs/codeql-build.yml +++ b/eng/common/core-templates/jobs/codeql-build.yml @@ -15,7 +15,6 @@ jobs: enablePublishBuildArtifacts: false enablePublishTestResults: false enablePublishBuildAssets: false - enablePublishUsingPipelines: false enableTelemetry: true variables: diff --git a/eng/common/core-templates/jobs/jobs.yml b/eng/common/core-templates/jobs/jobs.yml index bf33cdc2cc77..01ada7476651 100644 --- a/eng/common/core-templates/jobs/jobs.yml +++ b/eng/common/core-templates/jobs/jobs.yml @@ -5,9 +5,6 @@ parameters: # Optional: Include PublishBuildArtifacts task enablePublishBuildArtifacts: false - # Optional: Enable publishing using release pipelines - enablePublishUsingPipelines: false - # Optional: Enable running the source-build jobs to build repo from source enableSourceBuild: false @@ -30,6 +27,9 @@ parameters: # Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage. publishAssetsImmediately: false + # Optional: 🌤️ or not the build has assets it wants to publish to BAR + isAssetlessBuild: false + # Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml) artifactsPublishingAdditionalParameters: '' signingValidationAdditionalParameters: '' @@ -85,7 +85,6 @@ jobs: - template: /eng/common/core-templates/jobs/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} - allCompletedJobId: Source_Build_Complete ${{ each parameter in parameters.sourceBuildParameters }}: ${{ parameter.key }}: ${{ parameter.value }} @@ -98,7 +97,7 @@ jobs: ${{ parameter.key }}: ${{ parameter.value }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, ''), eq(parameters.isAssetlessBuild, true)) }}: - template: ../job/publish-build-assets.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} @@ -110,12 +109,10 @@ jobs: - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: - ${{ each job in parameters.jobs }}: - ${{ job.job }} - - ${{ if eq(parameters.enableSourceBuild, true) }}: - - Source_Build_Complete runAsPublic: ${{ parameters.runAsPublic }} - publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} - publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }} + publishAssetsImmediately: ${{ or(parameters.publishAssetsImmediately, parameters.isAssetlessBuild) }} + isAssetlessBuild: ${{ parameters.isAssetlessBuild }} enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} diff --git a/eng/common/core-templates/jobs/source-build.yml b/eng/common/core-templates/jobs/source-build.yml index 0b408a67bd51..d92860cba208 100644 --- a/eng/common/core-templates/jobs/source-build.yml +++ b/eng/common/core-templates/jobs/source-build.yml @@ -2,28 +2,19 @@ parameters: # This template adds arcade-powered source-build to CI. A job is created for each platform, as # well as an optional server job that completes when all platform jobs complete. - # The name of the "join" job for all source-build platforms. If set to empty string, the job is - # not included. Existing repo pipelines can use this job depend on all source-build jobs - # completing without maintaining a separate list of every single job ID: just depend on this one - # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'. - allCompletedJobId: '' - # See /eng/common/core-templates/job/source-build.yml jobNamePrefix: 'Source_Build' # This is the default platform provided by Arcade, intended for use by a managed-only repo. defaultManagedPlatform: name: 'Managed' - container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-amd64' # Defines the platforms on which to run build jobs. One job is created for each platform, and the # object in this array is sent to the job template as 'platform'. If no platforms are specified, # one job runs on 'defaultManagedPlatform'. platforms: [] - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -34,23 +25,12 @@ parameters: jobs: -- ${{ if ne(parameters.allCompletedJobId, '') }}: - - job: ${{ parameters.allCompletedJobId }} - displayName: Source-Build Complete - pool: server - dependsOn: - - ${{ each platform in parameters.platforms }}: - - ${{ parameters.jobNamePrefix }}_${{ platform.name }} - - ${{ if eq(length(parameters.platforms), 0) }}: - - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }} - - ${{ each platform in parameters.platforms }}: - template: /eng/common/core-templates/job/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} - ${{ if eq(length(parameters.platforms), 0) }}: @@ -59,5 +39,4 @@ jobs: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ parameters.defaultManagedPlatform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 864427d9694a..2df4acb76859 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -60,6 +60,11 @@ parameters: artifactNames: '' downloadArtifacts: true + - name: isAssetlessBuild + type: boolean + displayName: Is Assetless Build + default: false + # These parameters let the user customize the call to sdk-task.ps1 for publishing # symbols & general artifacts as well as for signing validation - name: symbolPublishingAdditionalParameters @@ -115,18 +120,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: windows.vs2022.amd64 + image: windows.vs2026preview.scout.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml @@ -159,18 +164,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -188,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 @@ -223,18 +225,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -284,18 +286,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -305,6 +307,13 @@ stages: - task: NuGetAuthenticate@1 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + # Darc is targeting 8.0, so make sure it's installed - task: UseDotNet@2 inputs: @@ -325,3 +334,6 @@ stages: -RequireDefaultChannels ${{ parameters.requireDefaultChannels }} -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' diff --git a/eng/common/core-templates/steps/cleanup-microbuild.yml b/eng/common/core-templates/steps/cleanup-microbuild.yml new file mode 100644 index 000000000000..c0fdcd3379d7 --- /dev/null +++ b/eng/common/core-templates/steps/cleanup-microbuild.yml @@ -0,0 +1,28 @@ +parameters: + # Enable cleanup tasks for MicroBuild + enableMicrobuild: false + # Enable cleanup tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - task: MicroBuildCleanup@1 + displayName: Execute Microbuild cleanup tasks + condition: and( + always(), + or( + and( + eq(variables['Agent.Os'], 'Windows_NT'), + in(variables['_SignType'], 'real', 'test') + ), + and( + ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }}, + ne(variables['Agent.Os'], 'Windows_NT'), + eq(variables['_SignType'], 'real') + ) + )) + continueOnError: ${{ parameters.continueOnError }} + env: + TeamName: $(_TeamName) diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml index 7f5b84c4cb82..c05f65027979 100644 --- a/eng/common/core-templates/steps/generate-sbom.yml +++ b/eng/common/core-templates/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 9.0.0 + PackageVersion: 10.0.0 BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom diff --git a/eng/common/core-templates/steps/get-delegation-sas.yml b/eng/common/core-templates/steps/get-delegation-sas.yml index 9db5617ea7de..d2901470a7f0 100644 --- a/eng/common/core-templates/steps/get-delegation-sas.yml +++ b/eng/common/core-templates/steps/get-delegation-sas.yml @@ -31,16 +31,7 @@ steps: # Calculate the expiration of the SAS token and convert to UTC $expiry = (Get-Date).AddHours(${{ parameters.expiryInHours }}).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - # Temporarily work around a helix issue where SAS tokens with / in them will cause incorrect downloads - # of correlation payloads. https://github.com/dotnet/dnceng/issues/3484 - $sas = "" - do { - $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to generate SAS token." - exit 1 - } - } while($sas.IndexOf('/') -ne -1) + $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv if ($LASTEXITCODE -ne 0) { Write-Error "Failed to generate SAS token." diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml new file mode 100644 index 000000000000..553fce66b940 --- /dev/null +++ b/eng/common/core-templates/steps/install-microbuild.yml @@ -0,0 +1,110 @@ +parameters: + # Enable install tasks for MicroBuild + enableMicrobuild: false + # Enable install tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + # Determines whether the ESRP service connection information should be passed to the signing plugin. + # This overlaps with _SignType to some degree. We only need the service connection for real signing. + # It's important that the service connection not be passed to the MicroBuildSigningPlugin task in this place. + # Doing so will cause the service connection to be authorized for the pipeline, which isn't allowed and won't work for non-prod. + # Unfortunately, _SignType can't be used to exclude the use of the service connection in non-real sign scenarios. The + # variable is not available in template expression. _SignType has a very large proliferation across .NET, so replacing it is tough. + microbuildUseESRP: true + # Microbuild installation directory + microBuildOutputFolder: $(Agent.TempDirectory)/MicroBuild + + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}: + # Needed to download the MicroBuild plugin nupkgs on Mac and Linux when nuget.exe is unavailable + - task: UseDotNet@2 + displayName: Install .NET 8.0 SDK for MicroBuild Plugin + inputs: + packageType: sdk + version: 8.0.x + installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + set -euo pipefail + + # UseDotNet@2 prepends the dotnet executable path to the PATH variable, so we can call dotnet directly + version=$(dotnet --version) + cat << 'EOF' > ${{ parameters.microBuildOutputFolder }}/global.json + { + "sdk": { + "version": "$version", + "paths": [ + "${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild" + ], + "errorMessage": "The .NET SDK version $version is required to install the MicroBuild signing plugin." + } + } + EOF + displayName: 'Add global.json to MicroBuild Installation path' + workingDirectory: ${{ parameters.microBuildOutputFolder }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + REM Check if ESRP is disabled while SignType is real + if /I "${{ parameters.microbuildUseESRP }}"=="false" if /I "$(_SignType)"=="real" ( + echo Error: ESRP must be enabled when SignType is real. + exit /b 1 + ) + displayName: 'Validate ESRP usage (Windows)' + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT')) + - script: | + # Check if ESRP is disabled while SignType is real + if [ "${{ parameters.microbuildUseESRP }}" = "false" ] && [ "$(_SignType)" = "real" ]; then + echo "Error: ESRP must be enabled when SignType is real." + exit 1 + fi + displayName: 'Validate ESRP usage (Non-Windows)' + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + # Two different MB install steps. This is due to not being able to use the agent OS during + # YAML expansion, and Windows vs. Linux/Mac uses different service connections. However, + # we can avoid including the MB install step if not enabled at all. This avoids a bunch of + # extra pipeline authorizations, since most pipelines do not sign on non-Windows. + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test')) + + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}: + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (non-Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + workingDirectory: ${{ parameters.microBuildOutputFolder }} + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ${{ else }}: + ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real')) diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 0623ac6e1123..a9ea99ba6aaa 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -26,15 +26,18 @@ steps: # If the file exists - sensitive data for redaction will be sourced from it # (single entry per line, lines starting with '# ' are considered comments and skipped) arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs' - -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -BinlogToolVersion '${{parameters.BinlogToolVersion}}' -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' '$(publishing-dnceng-devdiv-code-r-build-re)' - '$(MaestroAccessToken)' '$(dn-bot-all-orgs-artifact-feeds-rw)' '$(akams-client-id)' '$(microsoft-symbol-server-pat)' '$(symweb-symbol-server-pat)' + '$(dnceng-symbol-server-pat)' '$(dn-bot-all-orgs-build-rw-code-rw)' + '$(System.AccessToken)' ${{parameters.CustomSensitiveDataList}} continueOnError: true condition: always() @@ -45,6 +48,7 @@ steps: SourceFolder: '$(System.DefaultWorkingDirectory)/PostBuildLogs' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/PostBuildLogs' + condition: always() - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml index 7846584d2a77..b9c86c18ae42 100644 --- a/eng/common/core-templates/steps/source-build.yml +++ b/eng/common/core-templates/steps/source-build.yml @@ -11,10 +11,6 @@ parameters: # for details. The entire object is described in the 'job' template for simplicity, even though # the usage of the properties on this object is split between the 'job' and 'steps' templates. platform: {} - - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: false steps: @@ -23,25 +19,12 @@ steps: set -x df -h - # If file changes are detected, set CopyWipIntoInnerSourceBuildRepo to copy the WIP changes into the inner source build repo. - internalRestoreArgs= - if ! git diff --quiet; then - internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true' - # The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo. - # This only works if there is a username/email configured, which won't be the case in most CI runs. - git config --get user.email - if [ $? -ne 0 ]; then - git config user.email dn-bot@microsoft.com - git config user.name dn-bot - fi - fi - # If building on the internal project, the internal storage variable may be available (usually only if needed) # In that case, add variables to allow the download of internal runtimes if the specified versions are not found # in the default public locations. internalRuntimeDownloadArgs= if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey '$(dotnetbuilds-internal-container-read-token-base64)'' fi buildConfig=Release @@ -50,88 +33,33 @@ steps: buildConfig='$(_BuildConfig)' fi - officialBuildArgs= - if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then - officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)' - fi - targetRidArgs= if [ '${{ parameters.platform.targetRID }}' != '' ]; then targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' fi - runtimeOsArgs= - if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then - runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' - fi - - baseOsArgs= - if [ '${{ parameters.platform.baseOS }}' != '' ]; then - baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' - fi - - publishArgs= - if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then - publishArgs='--publish' - fi - - assetManifestFileName=SourceBuild_RidSpecific.xml - if [ '${{ parameters.platform.name }}' != '' ]; then - assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml + portableBuildArgs= + if [ '${{ parameters.platform.portableBuild }}' != '' ]; then + portableBuildArgs='/p:PortableBuild=${{ parameters.platform.portableBuild }}' fi ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \ --configuration $buildConfig \ - --restore --build --pack $publishArgs -bl \ + --restore --build --pack -bl \ + --source-build \ ${{ parameters.platform.buildArguments }} \ - $officialBuildArgs \ $internalRuntimeDownloadArgs \ - $internalRestoreArgs \ $targetRidArgs \ - $runtimeOsArgs \ - $baseOsArgs \ - /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ - /p:ArcadeBuildFromSource=true \ - /p:DotNetBuildSourceOnly=true \ - /p:DotNetBuildRepo=true \ - /p:AssetManifestFileName=$assetManifestFileName + $portableBuildArgs \ displayName: Build -# Upload build logs for diagnosis. -- task: CopyFiles@2 - displayName: Prepare BuildLogs staging directory - inputs: - SourceFolder: '$(System.DefaultWorkingDirectory)' - Contents: | - **/*.log - **/*.binlog - artifacts/sb/prebuilt-report/** - TargetFolder: '$(Build.StagingDirectory)/BuildLogs' - CleanTargetFolder: true - continueOnError: true - condition: succeededOrFailed() - - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: displayName: Publish BuildLogs - targetPath: '$(Build.StagingDirectory)/BuildLogs' + targetPath: artifacts/log/${{ coalesce(variables._BuildConfig, 'Release') }} artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) continueOnError: true condition: succeededOrFailed() sbomEnabled: false # we don't need SBOM for logs - -# Manually inject component detection so that we can ignore the source build upstream cache, which contains -# a nupkg cache of input packages (a local feed). -# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir' -# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets -- template: /eng/common/core-templates/steps/component-governance.yml - parameters: - displayName: Component Detection (Exclude upstream cache) - is1ESPipeline: ${{ parameters.is1ESPipeline }} - ${{ if eq(length(parameters.componentGovernanceIgnoreDirectories), 0) }}: - componentGovernanceIgnoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache' - ${{ else }}: - componentGovernanceIgnoreDirectories: ${{ join(',', parameters.componentGovernanceIgnoreDirectories) }} - disableComponentGovernance: ${{ eq(variables['System.TeamProject'], 'public') }} diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..e9a694afa58e --- /dev/null +++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,35 @@ +parameters: + sourceIndexUploadPackageVersion: 2.0.0-20250818.1 + sourceIndexProcessBinlogPackageVersion: 1.0.1-20250818.1 + sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json + binlogPath: artifacts/log/Debug/Build.binlog + +steps: +- task: UseDotNet@2 + displayName: "Source Index: Use .NET 9 SDK" + inputs: + packageType: sdk + version: 9.0.x + installationPath: $(Agent.TempDirectory)/dotnet + workingDirectory: $(Agent.TempDirectory) + +- script: | + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + displayName: "Source Index: Download netsourceindex Tools" + # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. + workingDirectory: $(Agent.TempDirectory) + +- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output + displayName: "Source Index: Process Binlog into indexable sln" + +- ${{ if and(ne(parameters.runAsPublic, 'true'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: AzureCLI@2 + displayName: "Source Index: Upload Source Index stage1 artifacts to Azure" + inputs: + azureSubscription: 'SourceDotNet Stage1 Publish' + addSpnToEnvironment: true + scriptType: 'ps' + scriptLocation: 'inlineScript' + inlineScript: | + $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 diff --git a/eng/common/cross/arm64/tizen/tizen.patch b/eng/common/cross/arm64/tizen/tizen.patch index af7c8be05906..2cebc547382e 100644 --- a/eng/common/cross/arm64/tizen/tizen.patch +++ b/eng/common/cross/arm64/tizen/tizen.patch @@ -5,5 +5,5 @@ diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-littleaarch64) --GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) ) +-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-aarch64.so.1 ) ) +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-aarch64.so.1 ) ) diff --git a/eng/common/cross/build-android-rootfs.sh b/eng/common/cross/build-android-rootfs.sh index 7e9ba2b75ed3..fbd8d80848a6 100755 --- a/eng/common/cross/build-android-rootfs.sh +++ b/eng/common/cross/build-android-rootfs.sh @@ -6,10 +6,11 @@ usage() { echo "Creates a toolchain and sysroot used for cross-compiling for Android." echo - echo "Usage: $0 [BuildArch] [ApiLevel]" + echo "Usage: $0 [BuildArch] [ApiLevel] [--ndk NDKVersion]" echo echo "BuildArch is the target architecture of Android. Currently only arm64 is supported." echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html" + echo "NDKVersion is the version of Android NDK. The default is r21. See https://developer.android.com/ndk/downloads/revision_history" echo echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior" echo "by setting the TOOLCHAIN_DIR environment variable" @@ -25,10 +26,15 @@ __BuildArch=arm64 __AndroidArch=aarch64 __AndroidToolchain=aarch64-linux-android -for i in "$@" - do - lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" - case $lowerI in +while :; do + if [[ "$#" -le 0 ]]; then + break + fi + + i=$1 + + lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" + case $lowerI in -?|-h|--help) usage exit 1 @@ -43,6 +49,10 @@ for i in "$@" __AndroidArch=arm __AndroidToolchain=arm-linux-androideabi ;; + --ndk) + shift + __NDK_Version=$1 + ;; *[0-9]) __ApiLevel=$i ;; @@ -50,8 +60,17 @@ for i in "$@" __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i" ;; esac + shift done +if [[ "$__NDK_Version" == "r21" ]] || [[ "$__NDK_Version" == "r22" ]]; then + __NDK_File_Arch_Spec=-x86_64 + __SysRoot=sysroot +else + __NDK_File_Arch_Spec= + __SysRoot=toolchains/llvm/prebuilt/linux-x86_64/sysroot +fi + # Obtain the location of the bash script to figure out where the root of the repo is. __ScriptBaseDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -78,6 +97,7 @@ fi echo "Target API level: $__ApiLevel" echo "Target architecture: $__BuildArch" +echo "NDK version: $__NDK_Version" echo "NDK location: $__NDK_Dir" echo "Target Toolchain location: $__ToolchainDir" @@ -85,8 +105,8 @@ echo "Target Toolchain location: $__ToolchainDir" if [ ! -d $__NDK_Dir ]; then echo Downloading the NDK into $__NDK_Dir mkdir -p $__NDK_Dir - wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip - unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__CrossDir + wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux$__NDK_File_Arch_Spec.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux.zip + unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux.zip -d $__CrossDir fi if [ ! -d $__lldb_Dir ]; then @@ -116,16 +136,11 @@ for path in $(wget -qO- https://packages.termux.dev/termux-main-21/dists/stable/ fi done -cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/sysroot/usr/" +cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/$__SysRoot/usr/" # Generate platform file for build.sh script to assign to __DistroRid echo "Generating platform file..." -echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/sysroot/android_platform - -echo "Now to build coreclr, libraries and installers; run:" -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory coreclr -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory libraries -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory installer +echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/$__SysRoot/android_platform + +echo "Now to build coreclr, libraries and host; run:" +echo ROOTFS_DIR=$(realpath $__ToolchainDir/$__SysRoot) ./build.sh clr+libs+host --cross --arch $__BuildArch diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 4b5e8d7166bd..8abfb71f7275 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -5,7 +5,7 @@ set -e usage() { echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir ]" - echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86" + echo "BuildArch can be: arm(default), arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64, x86" echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine" echo " for alpine can be specified with version: alpineX.YY or alpineedge" echo " for FreeBSD can be: freebsd13, freebsd14" @@ -15,6 +15,7 @@ usage() echo "llvmx[.y] - optional, LLVM version for LLVM related packages." echo "--skipunmount - optional, will skip the unmount of rootfs folder." echo "--skipsigcheck - optional, will skip package signature checks (allowing untrusted packages)." + echo "--skipemulation - optional, will skip qemu and debootstrap requirement when building environment for debian based systems." echo "--use-mirror - optional, use mirror URL to fetch resources, when available." echo "--jobs N - optional, restrict to N jobs." exit 1 @@ -52,28 +53,27 @@ __UbuntuPackages+=" symlinks" __UbuntuPackages+=" libicu-dev" __UbuntuPackages+=" liblttng-ust-dev" __UbuntuPackages+=" libunwind8-dev" -__UbuntuPackages+=" libnuma-dev" __AlpinePackages+=" gettext-dev" __AlpinePackages+=" icu-dev" __AlpinePackages+=" libunwind-dev" __AlpinePackages+=" lttng-ust-dev" __AlpinePackages+=" compiler-rt" -__AlpinePackages+=" numactl-dev" # runtime libraries' dependencies __UbuntuPackages+=" libcurl4-openssl-dev" __UbuntuPackages+=" libkrb5-dev" __UbuntuPackages+=" libssl-dev" __UbuntuPackages+=" zlib1g-dev" +__UbuntuPackages+=" libbrotli-dev" __AlpinePackages+=" curl-dev" __AlpinePackages+=" krb5-dev" __AlpinePackages+=" openssl-dev" __AlpinePackages+=" zlib-dev" -__FreeBSDBase="13.3-RELEASE" -__FreeBSDPkg="1.17.0" +__FreeBSDBase="13.4-RELEASE" +__FreeBSDPkg="1.21.3" __FreeBSDABI="13" __FreeBSDPackages="libunwind" __FreeBSDPackages+=" icu" @@ -91,18 +91,18 @@ __HaikuPackages="gcc_syslibs" __HaikuPackages+=" gcc_syslibs_devel" __HaikuPackages+=" gmp" __HaikuPackages+=" gmp_devel" -__HaikuPackages+=" icu66" -__HaikuPackages+=" icu66_devel" +__HaikuPackages+=" icu[0-9]+" +__HaikuPackages+=" icu[0-9]*_devel" __HaikuPackages+=" krb5" __HaikuPackages+=" krb5_devel" __HaikuPackages+=" libiconv" __HaikuPackages+=" libiconv_devel" -__HaikuPackages+=" llvm12_libunwind" -__HaikuPackages+=" llvm12_libunwind_devel" +__HaikuPackages+=" llvm[0-9]*_libunwind" +__HaikuPackages+=" llvm[0-9]*_libunwind_devel" __HaikuPackages+=" mpfr" __HaikuPackages+=" mpfr_devel" -__HaikuPackages+=" openssl" -__HaikuPackages+=" openssl_devel" +__HaikuPackages+=" openssl3" +__HaikuPackages+=" openssl3_devel" __HaikuPackages+=" zlib" __HaikuPackages+=" zlib_devel" @@ -128,10 +128,12 @@ __AlpineKeys=' 616adfeb:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU\npNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X\n0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6\nADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ\nraQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy\nKLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj\n/QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H\nKuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs\nmFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1\n/J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq\nXIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4\nVORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== 616ae350:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0\nXkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ\npiM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46\nxLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP\nODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM\nEyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr\nDzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+\nf53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF\nHwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk\nOk9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6\n9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT\nJZDr++FjKrnnijbyNF8b98UCAwEAAQ== 616db30d:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0\nlIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm\na6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw\ntO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C\nUS/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP\nhP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv\nLSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0\nx9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF\nwmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG\nLPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV\nGZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C\n8CM1S15HxV78s9dFntEqIokCAwEAAQ== +66ba20fe:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfB12w4ZgqsXWZDfUAV/\n6Y4aHUKIu3q4SXrNZ7CXF9nXoAVYrS7NAxJdAodsY3vPCN0g5O8DFXR+390LdOuQ\n+HsGKCc1k5tX5ZXld37EZNTNSbR0k+NKhd9h6X3u6wqPOx7SIKxwAQR8qeeFq4pP\nrt9GAGlxtuYgzIIcKJPwE0dZlcBCg+GnptCUZXp/38BP1eYC+xTXSL6Muq1etYfg\nodXdb7Yl+2h1IHuOwo5rjgY5kpY7GcAs8AjGk3lDD/av60OTYccknH0NCVSmPoXK\nvrxDBOn0LQRNBLcAfnTKgHrzy0Q5h4TNkkyTgxkoQw5ObDk9nnabTxql732yy9BY\ns+hM9+dSFO1HKeVXreYSA2n1ndF18YAvAumzgyqzB7I4pMHXq1kC/8bONMJxwSkS\nYm6CoXKyavp7RqGMyeVpRC7tV+blkrrUml0BwNkxE+XnwDRB3xDV6hqgWe0XrifD\nYTfvd9ScZQP83ip0r4IKlq4GMv/R5shcCRJSkSZ6QSGshH40JYSoiwJf5FHbj9ND\n7do0UAqebWo4yNx63j/wb2ULorW3AClv0BCFSdPsIrCStiGdpgJDBR2P2NZOCob3\nG9uMj+wJD6JJg2nWqNJxkANXX37Qf8plgzssrhrgOvB0fjjS7GYhfkfmZTJ0wPOw\nA8+KzFseBh4UFGgue78KwgkCAwEAAQ== ' __Keyring= __KeyringFile="/usr/share/keyrings/ubuntu-archive-keyring.gpg" __SkipSigCheck=0 +__SkipEmulation=0 __UseMirror=0 __UnprocessedBuildArgs= @@ -162,9 +164,13 @@ while :; do armel) __BuildArch=armel __UbuntuArch=armel - __UbuntuRepo="http://ftp.debian.org/debian/" - __CodeName=jessie + __UbuntuRepo="http://archive.debian.org/debian/" + __CodeName=buster __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __LLDB_Package="liblldb-6.0-dev" + __UbuntuPackages="${__UbuntuPackages// libomp-dev/}" + __UbuntuPackages="${__UbuntuPackages// libomp5/}" + __UbuntuSuites= ;; armv6) __BuildArch=armv6 @@ -180,6 +186,18 @@ while :; do __Keyring="--keyring $__KeyringFile" fi ;; + loongarch64) + __BuildArch=loongarch64 + __AlpineArch=loongarch64 + __QEMUArch=loongarch64 + __UbuntuArch=loong64 + __UbuntuSuites=unreleased + __LLDB_Package="liblldb-19-dev" + + if [[ "$__CodeName" == "sid" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; riscv64) __BuildArch=riscv64 __AlpineArch=riscv64 @@ -264,44 +282,21 @@ while :; do ;; xenial) # Ubuntu 16.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=xenial - fi - ;; - zesty) # Ubuntu 17.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=zesty - fi + __CodeName=xenial ;; bionic) # Ubuntu 18.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=bionic - fi + __CodeName=bionic ;; focal) # Ubuntu 20.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=focal - fi + __CodeName=focal ;; jammy) # Ubuntu 22.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=jammy - fi + __CodeName=jammy ;; noble) # Ubuntu 24.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=noble - fi - if [[ -n "$__LLDB_Package" ]]; then - __LLDB_Package="liblldb-18-dev" - fi - ;; - jessie) # Debian 8 - __CodeName=jessie - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" - - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __CodeName=noble + if [[ -z "$__LLDB_Package" ]]; then + __LLDB_Package="liblldb-19-dev" fi ;; stretch) # Debian 9 @@ -319,7 +314,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="http://archive.debian.org/debian/" fi ;; bullseye) # Debian 11 @@ -340,10 +335,28 @@ while :; do ;; sid) # Debian sid __CodeName=sid - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __UbuntuSuites= - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + # Debian-Ports architectures need different values + case "$__UbuntuArch" in + amd64|arm64|armel|armhf|i386|mips64el|ppc64el|riscv64|s390x) + __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.debian.org/debian/" + fi + ;; + *) + __KeyringFile="/usr/share/keyrings/debian-ports-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; + esac + + if [[ -e "$__KeyringFile" ]]; then + __Keyring="--keyring $__KeyringFile" fi ;; tizen) @@ -370,7 +383,7 @@ while :; do ;; freebsd14) __CodeName=freebsd - __FreeBSDBase="14.0-RELEASE" + __FreeBSDBase="14.2-RELEASE" __FreeBSDABI="14" __SkipUnmount=1 ;; @@ -388,6 +401,9 @@ while :; do --skipsigcheck) __SkipSigCheck=1 ;; + --skipemulation) + __SkipEmulation=1 + ;; --rootfsdir|-rootfsdir) shift __RootfsDir="$1" @@ -420,16 +436,15 @@ case "$__AlpineVersion" in elif [[ "$__AlpineArch" == "x86" ]]; then __AlpineVersion=3.17 # minimum version that supports lldb-dev __AlpinePackages+=" llvm15-libs" - elif [[ "$__AlpineArch" == "riscv64" ]]; then + elif [[ "$__AlpineArch" == "riscv64" || "$__AlpineArch" == "loongarch64" ]]; then + __AlpineVersion=3.21 # minimum version that supports lldb-dev + __AlpinePackages+=" llvm19-libs" + elif [[ -n "$__AlpineMajorVersion" ]]; then + # use whichever alpine version is provided and select the latest toolchain libs __AlpineLlvmLibsLookup=1 - __AlpineVersion=edge # minimum version with APKINDEX.tar.gz (packages archive) else __AlpineVersion=3.13 # 3.13 to maximize compatibility __AlpinePackages+=" llvm10-libs" - - if [[ "$__AlpineArch" == "armv7" ]]; then - __AlpinePackages="${__AlpinePackages//numactl-dev/}" - fi fi esac @@ -439,15 +454,6 @@ if [[ "$__AlpineVersion" =~ 3\.1[345] ]]; then __AlpinePackages="${__AlpinePackages/compiler-rt/compiler-rt-static}" fi -if [[ "$__BuildArch" == "armel" ]]; then - __LLDB_Package="lldb-3.5-dev" -fi - -if [[ "$__CodeName" == "xenial" && "$__UbuntuArch" == "armhf" ]]; then - # libnuma-dev is not available on armhf for xenial - __UbuntuPackages="${__UbuntuPackages//libnuma-dev/}" -fi - __UbuntuPackages+=" ${__LLDB_Package:-}" if [[ -z "$__UbuntuRepo" ]]; then @@ -496,7 +502,7 @@ if [[ "$__CodeName" == "alpine" ]]; then arch="$(uname -m)" ensureDownloadTool - + if [[ "$__hasWget" == 1 ]]; then wget -P "$__ApkToolsDir" "https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v$__ApkToolsVersion/$arch/apk.static" else @@ -512,11 +518,6 @@ if [[ "$__CodeName" == "alpine" ]]; then echo "$__ApkToolsSHA512SUM $__ApkToolsDir/apk.static" | sha512sum -c chmod +x "$__ApkToolsDir/apk.static" - if [[ -f "/usr/bin/qemu-$__QEMUArch-static" ]]; then - mkdir -p "$__RootfsDir"/usr/bin - cp -v "/usr/bin/qemu-$__QEMUArch-static" "$__RootfsDir/usr/bin" - fi - if [[ "$__AlpineVersion" == "edge" ]]; then version=edge else @@ -536,6 +537,10 @@ if [[ "$__CodeName" == "alpine" ]]; then __ApkSignatureArg="--keys-dir $__ApkKeysDir" fi + if [[ "$__SkipEmulation" == "1" ]]; then + __NoEmulationArg="--no-scripts" + fi + # initialize DB # shellcheck disable=SC2086 "$__ApkToolsDir/apk.static" \ @@ -557,7 +562,7 @@ if [[ "$__CodeName" == "alpine" ]]; then "$__ApkToolsDir/apk.static" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ - -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \ + -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" $__NoEmulationArg \ add $__AlpinePackages rm -r "$__ApkToolsDir" @@ -573,7 +578,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then curl -SL "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version fi echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf - echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf + echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf mkdir -p "$__RootfsDir"/tmp # get and build package manager if [[ "$__hasWget" == 1 ]]; then @@ -681,7 +686,7 @@ elif [[ "$__CodeName" == "haiku" ]]; then ensureDownloadTool - echo "Downloading Haiku package tool" + echo "Downloading Haiku package tools" git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 "$__RootfsDir/tmp/script" if [[ "$__hasWget" == 1 ]]; then wget -O "$__RootfsDir/tmp/download/hosttools.zip" "$("$__RootfsDir/tmp/script/fetch.sh" --hosttools)" @@ -691,34 +696,42 @@ elif [[ "$__CodeName" == "haiku" ]]; then unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin" - DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg" - HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuPortsBaseUrl="https://eu.hpkg.haiku-os.org/haikuports/master/$__HaikuArch/current" + + echo "Downloading HaikuPorts package repository index..." + if [[ "$__hasWget" == 1 ]]; then + wget -P "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + else + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + fi - # Download Haiku packages echo "Downloading Haiku packages" read -ra array <<<"$__HaikuPackages" for package in "${array[@]}"; do echo "Downloading $package..." - # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60 - # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598 + hpkgFilename="$(LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package_repo" list -f "$__RootfsDir/tmp/download/repo" | + grep -E "${package}-" | sort -V | tail -n 1 | xargs)" + if [ -z "$hpkgFilename" ]; then + >&2 echo "ERROR: package $package missing." + exit 1 + fi + echo "Resolved filename: $hpkgFilename..." + hpkgDownloadUrl="$HaikuPortsBaseUrl/packages/$hpkgFilename" if [[ "$__hasWget" == 1 ]]; then - hpkgDownloadUrl="$(wget -qO- --post-data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" else - hpkgDownloadUrl="$(curl -sSL -XPOST --data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" fi done for package in haiku haiku_devel; do echo "Downloading $package..." if [[ "$__hasWget" == 1 ]]; then - hpkgVersion="$(wget -qO- "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(wget -qO- "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + wget -P "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" else - hpkgVersion="$(curl -sSL "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(curl -sSL "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" fi done @@ -744,25 +757,67 @@ elif [[ "$__CodeName" == "haiku" ]]; then popd rm -rf "$__RootfsDir/tmp" elif [[ -n "$__CodeName" ]]; then + __Suites="$__CodeName $(for suite in $__UbuntuSuites; do echo -n "$__CodeName-$suite "; done)" + + if [[ "$__SkipEmulation" == "1" ]]; then + if [[ -z "$AR" ]]; then + if command -v ar &>/dev/null; then + AR="$(command -v ar)" + elif command -v llvm-ar &>/dev/null; then + AR="$(command -v llvm-ar)" + else + echo "Unable to find ar or llvm-ar on PATH, add them to PATH or set AR environment variable pointing to the available AR tool" + exit 1 + fi + fi + + PYTHON=${PYTHON_EXECUTABLE:-python3} + + # shellcheck disable=SC2086,SC2046 + echo running "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + + # shellcheck disable=SC2086,SC2046 + "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + exit 0 + fi + + __UpdateOptions= if [[ "$__SkipSigCheck" == "0" ]]; then __Keyring="$__Keyring --force-check-gpg" + else + __Keyring= + __UpdateOptions="--allow-unauthenticated --allow-insecure-repositories" fi # shellcheck disable=SC2086 echo running debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" - debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" + # shellcheck disable=SC2086 + if ! debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"; then + echo "debootstrap failed! dumping debootstrap.log" + cat "$__RootfsDir/debootstrap/debootstrap.log" + exit 1 + fi + + rm -rf "$__RootfsDir"/etc/apt/*.{sources,list} "$__RootfsDir"/etc/apt/sources.list.d mkdir -p "$__RootfsDir/etc/apt/sources.list.d/" + + # shellcheck disable=SC2086 cat > "$__RootfsDir/etc/apt/sources.list.d/$__CodeName.sources" < token2) - (token1 < token2) + else: + return -1 if isinstance(token1, str) else 1 + + return len(tokens1) - len(tokens2) + +def compare_debian_versions(version1, version2): + """Compare two Debian package versions.""" + epoch1, upstream1, revision1 = parse_debian_version(version1) + epoch2, upstream2, revision2 = parse_debian_version(version2) + + if epoch1 != epoch2: + return epoch1 - epoch2 + + result = compare_upstream_version(upstream1, upstream2) + if result != 0: + return result + + return compare_upstream_version(revision1, revision2) + +def resolve_dependencies(packages, aliases, desired_packages): + """Recursively resolves dependencies for the desired packages.""" + resolved = [] + to_process = deque(desired_packages) + + while to_process: + current = to_process.popleft() + resolved_package = current if current in packages else aliases.get(current, [None])[0] + + if not resolved_package: + print(f"Error: Package '{current}' was not found in the available packages.") + sys.exit(1) + + if resolved_package not in resolved: + resolved.append(resolved_package) + + deps = packages.get(resolved_package, {}).get("Depends", "") + if deps: + deps = [dep.split(' ')[0] for dep in deps.split(', ') if dep] + for dep in deps: + if dep not in resolved and dep not in to_process and dep in packages: + to_process.append(dep) + + return resolved + +def parse_package_index(content): + """Parses the Packages.gz file and returns package information.""" + packages = {} + aliases = {} + entries = re.split(r'\n\n+', content) + + for entry in entries: + fields = dict(re.findall(r'^(\S+): (.+)$', entry, re.MULTILINE)) + if "Package" in fields: + package_name = fields["Package"] + version = fields.get("Version") + filename = fields.get("Filename") + depends = fields.get("Depends") + provides = fields.get("Provides", None) + + # Only update if package_name is not in packages or if the new version is higher + if package_name not in packages or compare_debian_versions(version, packages[package_name]["Version"]) > 0: + packages[package_name] = { + "Version": version, + "Filename": filename, + "Depends": depends + } + + # Update aliases if package provides any alternatives + if provides: + provides_list = [x.strip() for x in provides.split(",")] + for alias in provides_list: + # Strip version specifiers + alias_name = re.sub(r'\s*\(=.*\)', '', alias) + if alias_name not in aliases: + aliases[alias_name] = [] + if package_name not in aliases[alias_name]: + aliases[alias_name].append(package_name) + + return packages, aliases + +def install_packages(mirror, packages_info, aliases, tmp_dir, extract_dir, ar_tool, desired_packages): + """Downloads .deb files and extracts them.""" + resolved_packages = resolve_dependencies(packages_info, aliases, desired_packages) + print(f"Resolved packages (including dependencies): {resolved_packages}") + + packages_to_download = {} + + for pkg in resolved_packages: + if pkg in packages_info: + packages_to_download[pkg] = packages_info[pkg] + + if pkg in aliases: + for alias in aliases[pkg]: + if alias in packages_info: + packages_to_download[alias] = packages_info[alias] + + asyncio.run(download_deb_files_parallel(mirror, packages_to_download, tmp_dir)) + + package_to_deb_file_map = {} + for pkg in resolved_packages: + pkg_info = packages_info.get(pkg) + if pkg_info: + deb_filename = pkg_info.get("Filename") + if deb_filename: + deb_file_path = os.path.join(tmp_dir, os.path.basename(deb_filename)) + package_to_deb_file_map[pkg] = deb_file_path + + for pkg in reversed(resolved_packages): + deb_file = package_to_deb_file_map.get(pkg) + if deb_file and os.path.exists(deb_file): + extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool) + + print("All done!") + +def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): + """Extract .deb file contents""" + + os.makedirs(extract_dir, exist_ok=True) + + with tempfile.TemporaryDirectory(dir=tmp_dir) as tmp_subdir: + result = subprocess.run(f"{ar_tool} t {os.path.abspath(deb_file)}", cwd=tmp_subdir, check=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + tar_filename = None + for line in result.stdout.decode().splitlines(): + if line.startswith("data.tar"): + tar_filename = line.strip() + break + + if not tar_filename: + raise FileNotFoundError(f"Could not find 'data.tar.*' in {deb_file}.") + + tar_file_path = os.path.join(tmp_subdir, tar_filename) + print(f"Extracting {tar_filename} from {deb_file}..") + + subprocess.run(f"{ar_tool} p {os.path.abspath(deb_file)} {tar_filename} > {tar_file_path}", check=True, shell=True) + + file_extension = os.path.splitext(tar_file_path)[1].lower() + + if file_extension == ".xz": + mode = "r:xz" + elif file_extension == ".gz": + mode = "r:gz" + elif file_extension == ".zst": + # zstd is not supported by standard library yet + decompressed_tar_path = tar_file_path.replace(".zst", "") + with open(tar_file_path, "rb") as zst_file, open(decompressed_tar_path, "wb") as decompressed_file: + dctx = zstandard.ZstdDecompressor() + dctx.copy_stream(zst_file, decompressed_file) + + tar_file_path = decompressed_tar_path + mode = "r" + else: + raise ValueError(f"Unsupported compression format: {file_extension}") + + with tarfile.open(tar_file_path, mode) as tar: + tar.extractall(path=extract_dir, filter='fully_trusted') + +def finalize_setup(rootfsdir): + lib_dir = os.path.join(rootfsdir, 'lib') + usr_lib_dir = os.path.join(rootfsdir, 'usr', 'lib') + + if os.path.exists(lib_dir): + if os.path.islink(lib_dir): + os.remove(lib_dir) + else: + os.makedirs(usr_lib_dir, exist_ok=True) + + for item in os.listdir(lib_dir): + src = os.path.join(lib_dir, item) + dest = os.path.join(usr_lib_dir, item) + + if os.path.isdir(src): + shutil.copytree(src, dest, dirs_exist_ok=True) + else: + shutil.copy2(src, dest) + + shutil.rmtree(lib_dir) + + os.symlink(usr_lib_dir, lib_dir) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Generate rootfs for .NET runtime on Debian-like OS") + parser.add_argument("--distro", required=False, help="Distro name (e.g., debian, ubuntu, etc.)") + parser.add_argument("--arch", required=True, help="Architecture (e.g., amd64, loong64, etc.)") + parser.add_argument("--rootfsdir", required=True, help="Destination directory.") + parser.add_argument('--suite', required=True, action='append', help='Specify one or more repository suites to collect index data.') + parser.add_argument("--mirror", required=False, help="Mirror (e.g., http://ftp.debian.org/debian-ports etc.)") + parser.add_argument("--artool", required=False, default="ar", help="ar tool to extract debs (e.g., ar, llvm-ar etc.)") + parser.add_argument("packages", nargs="+", help="List of package names to be installed.") + + args = parser.parse_args() + + if args.mirror is None: + if args.distro == "ubuntu": + args.mirror = "http://archive.ubuntu.com/ubuntu" if args.arch in ["amd64", "i386"] else "http://ports.ubuntu.com/ubuntu-ports" + elif args.distro == "debian": + args.mirror = "http://ftp.debian.org/debian-ports" + else: + raise Exception("Unsupported distro") + + DESIRED_PACKAGES = args.packages + [ # base packages + "dpkg", + "busybox", + "libc-bin", + "base-files", + "base-passwd", + "debianutils" + ] + + print(f"Creating rootfs. rootfsdir: {args.rootfsdir}, distro: {args.distro}, arch: {args.arch}, suites: {args.suite}, mirror: {args.mirror}") + + package_index_content = asyncio.run(download_package_index_parallel(args.mirror, args.arch, args.suite)) + + packages_info, aliases = parse_package_index(package_index_content) + + with tempfile.TemporaryDirectory() as tmp_dir: + install_packages(args.mirror, packages_info, aliases, tmp_dir, args.rootfsdir, args.artool, DESIRED_PACKAGES) + + finalize_setup(args.rootfsdir) diff --git a/eng/common/cross/tizen-build-rootfs.sh b/eng/common/cross/tizen-build-rootfs.sh old mode 100644 new mode 100755 diff --git a/eng/common/cross/tizen-fetch.sh b/eng/common/cross/tizen-fetch.sh old mode 100644 new mode 100755 index 28936ceef3a7..37c3a61f1de8 --- a/eng/common/cross/tizen-fetch.sh +++ b/eng/common/cross/tizen-fetch.sh @@ -156,13 +156,8 @@ fetch_tizen_pkgs() done } -if [ "$TIZEN_ARCH" == "riscv64" ]; then - BASE="Tizen-Base-RISCV" - UNIFIED="Tizen-Unified-RISCV" -else - BASE="Tizen-Base" - UNIFIED="Tizen-Unified" -fi +BASE="Tizen-Base" +UNIFIED="Tizen-Unified" Inform "Initialize ${TIZEN_ARCH} base" fetch_tizen_pkgs_init standard $BASE diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index 9a7ecfbd42c5..0ff85cf0367e 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -67,6 +67,13 @@ elseif(TARGET_ARCH_NAME STREQUAL "armv6") else() set(TOOLCHAIN "arm-linux-gnueabihf") endif() +elseif(TARGET_ARCH_NAME STREQUAL "loongarch64") + set(CMAKE_SYSTEM_PROCESSOR "loongarch64") + if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/loongarch64-alpine-linux-musl) + set(TOOLCHAIN "loongarch64-alpine-linux-musl") + else() + set(TOOLCHAIN "loongarch64-linux-gnu") + endif() elseif(TARGET_ARCH_NAME STREQUAL "ppc64le") set(CMAKE_SYSTEM_PROCESSOR ppc64le) if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl) @@ -118,7 +125,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86") set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu") endif() else() - message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!") + message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64 and x86 are supported!") endif() if(DEFINED ENV{TOOLCHAIN}) @@ -148,6 +155,25 @@ if(TIZEN) include_directories(SYSTEM ${TIZEN_TOOLCHAIN_PATH}/include/c++/${TIZEN_TOOLCHAIN}) endif() +function(locate_toolchain_exec exec var) + set(TOOLSET_PREFIX ${TOOLCHAIN}-) + string(TOUPPER ${exec} EXEC_UPPERCASE) + if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") + set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) + return() + endif() + + find_program(EXEC_LOCATION_${exec} + NAMES + "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" + "${TOOLSET_PREFIX}${exec}") + + if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") + message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") + endif() + set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) +endfunction() + if(ANDROID) if(TARGET_ARCH_NAME STREQUAL "arm") set(ANDROID_ABI armeabi-v7a) @@ -178,66 +204,24 @@ elseif(FREEBSD) set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld") elseif(ILLUMOS) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") + set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") include_directories(SYSTEM ${CROSS_ROOTFS}/include) - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") - locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") elseif(HAIKU) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin") - - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") - # let CMake set up the correct search paths include(Platform/Haiku) else() @@ -307,7 +291,7 @@ endif() # Specify compile options -if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) +if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|loongarch64|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN}) diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh index 36dbd45e1ce8..e889f439b8dc 100755 --- a/eng/common/darc-init.sh +++ b/eng/common/darc-init.sh @@ -68,7 +68,7 @@ function InstallDarcCli { fi fi - local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" + local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" echo "Installing Darc CLI version $darcVersion..." echo "You may need to restart your command shell if this is the first dotnet tool you have installed." diff --git a/eng/common/dotnet.cmd b/eng/common/dotnet.cmd new file mode 100644 index 000000000000..527fa4bb38fb --- /dev/null +++ b/eng/common/dotnet.cmd @@ -0,0 +1,7 @@ +@echo off + +:: This script is used to install the .NET SDK. +:: It will also invoke the SDK with any provided arguments. + +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet.ps1""" %*" +exit /b %ErrorLevel% diff --git a/eng/common/dotnet.ps1 b/eng/common/dotnet.ps1 new file mode 100644 index 000000000000..45e5676c9ebd --- /dev/null +++ b/eng/common/dotnet.ps1 @@ -0,0 +1,11 @@ +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +. $PSScriptRoot\tools.ps1 +$dotnetRoot = InitializeDotNetCli -install:$true + +# Invoke acquired SDK with args if they are provided +if ($args.count -gt 0) { + $env:DOTNET_NOLOGO=1 + & "$dotnetRoot\dotnet.exe" $args +} diff --git a/eng/common/dotnet.sh b/eng/common/dotnet.sh new file mode 100755 index 000000000000..2ef68235675f --- /dev/null +++ b/eng/common/dotnet.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +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 )" + +source $scriptroot/tools.sh +InitializeDotNetCli true # install + +# Invoke acquired SDK with args if they are provided +if [[ $# > 0 ]]; then + __dotnetDir=${_InitializeDotNetCli} + dotnetPath=${__dotnetDir}/dotnet + ${dotnetPath} "$@" +fi diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1 index 524aaa57f2b7..fa1cdc2b3007 100644 --- a/eng/common/generate-locproject.ps1 +++ b/eng/common/generate-locproject.ps1 @@ -33,15 +33,27 @@ $jsonTemplateFiles | ForEach-Object { $jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern +$wxlFilesV3 = @() +$wxlFilesV5 = @() $wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them if (-not $wxlFiles) { $wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files if ($wxlEnFiles) { - $wxlFiles = @() - $wxlEnFiles | ForEach-Object { - $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" - $wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru - } + $wxlFiles = @() + $wxlEnFiles | ForEach-Object { + $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" + $content = Get-Content $_.FullName -Raw + + # Split files on schema to select different parser settings in the generated project. + if ($content -like "*http://wixtoolset.org/schemas/v4/wxl*") + { + $wxlFilesV5 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + elseif ($content -like "*http://schemas.microsoft.com/wix/2006/localization*") + { + $wxlFilesV3 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + } } } @@ -114,7 +126,32 @@ $locJson = @{ CloneLanguageSet = "WiX_CloneLanguages" LssFiles = @( "wxl_loc.lss" ) LocItems = @( - $wxlFiles | ForEach-Object { + $wxlFilesV3 | ForEach-Object { + $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" + $continue = $true + foreach ($exclusion in $exclusions.Exclusions) { + if ($_.FullName.Contains($exclusion)) { + $continue = $false + } + } + $sourceFile = ($_.FullName | Resolve-Path -Relative) + if ($continue) + { + return @{ + SourceFile = $sourceFile + CopyOption = "LangIDOnPath" + OutputPath = $outputPath + } + } + } + ) + }, + @{ + LanguageSet = $LanguageSet + CloneLanguageSet = "WiX_CloneLanguages" + LssFiles = @( "P210WxlSchemaV4.lss" ) + LocItems = @( + $wxlFilesV5 | ForEach-Object { $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" $continue = $true foreach ($exclusion in $exclusions.Exclusions) { diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh old mode 100644 new mode 100755 diff --git a/eng/common/native/install-dependencies.sh b/eng/common/native/install-dependencies.sh new file mode 100755 index 000000000000..477a44f335be --- /dev/null +++ b/eng/common/native/install-dependencies.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +set -e + +# This is a simple script primarily used for CI to install necessary dependencies +# +# Usage: +# +# ./install-dependencies.sh + +os="$(echo "$1" | tr "[:upper:]" "[:lower:]")" + +if [ -z "$os" ]; then + . "$(dirname "$0")"/init-os-and-arch.sh +fi + +case "$os" in + linux) + if [ -e /etc/os-release ]; then + . /etc/os-release + fi + + if [ "$ID" = "debian" ] || [ "$ID_LIKE" = "debian" ]; then + apt update + + apt install -y build-essential gettext locales cmake llvm clang lld lldb liblldb-dev libunwind8-dev libicu-dev liblttng-ust-dev \ + libssl-dev libkrb5-dev pigz cpio + + localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 + elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ]; then + pkg_mgr="$(command -v tdnf 2>/dev/null || command -v dnf)" + $pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio + elif [ "$ID" = "alpine" ]; then + apk add build-base cmake bash curl clang llvm-dev lld lldb krb5-dev lttng-ust-dev icu-dev openssl-dev pigz cpio + else + echo "Unsupported distro. distro: $ID" + exit 1 + fi + ;; + + osx|maccatalyst|ios|iossimulator|tvos|tvossimulator) + echo "Installed xcode version: $(xcode-select -p)" + + export HOMEBREW_NO_INSTALL_CLEANUP=1 + export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 + # Skip brew update for now, see https://github.com/actions/setup-python/issues/577 + # brew update --preinstall + brew bundle --no-upgrade --file=- < Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." + Write-Host " -excludeCIBinaryLog When running on CI, allow no binary log (short: -nobl)" Write-Host "" Write-Host "Command line arguments not listed above are passed thru to msbuild." } @@ -34,10 +39,11 @@ function Print-Usage() { function Build([string]$target) { $logSuffix = if ($target -eq 'Execute') { '' } else { ".$target" } $log = Join-Path $LogDir "$task$logSuffix.binlog" + $binaryLogArg = if ($binaryLog) { "/bl:$log" } else { "" } $outputPath = Join-Path $ToolsetDir "$task\" MSBuild $taskProject ` - /bl:$log ` + $binaryLogArg ` /t:$target ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` @@ -64,7 +70,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.12.0" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "18.0.0" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh new file mode 100755 index 000000000000..3270f83fa9a7 --- /dev/null +++ b/eng/common/sdk-task.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash + +show_usage() { + echo "Common settings:" + echo " --task Name of Arcade task (name of a project in SdkTasks directory of the Arcade SDK package)" + echo " --restore Restore dependencies" + echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]" + echo " --help Print help and exit" + echo "" + + echo "Advanced settings:" + echo " --excludeCIBinarylog Don't output binary log (short: -nobl)" + echo " --noWarnAsError Do not warn as error" + echo "" + echo "Command line arguments not listed above are passed thru to msbuild." +} + +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 )" + +Build() { + local target=$1 + local log_suffix="" + [[ "$target" != "Execute" ]] && log_suffix=".$target" + local log="$log_dir/$task$log_suffix.binlog" + local binaryLogArg="" + [[ $binary_log == true ]] && binaryLogArg="/bl:$log" + local output_path="$toolset_dir/$task/" + + MSBuild "$taskProject" \ + $binaryLogArg \ + /t:"$target" \ + /p:Configuration="$configuration" \ + /p:RepoRoot="$repo_root" \ + /p:BaseIntermediateOutputPath="$output_path" \ + /v:"$verbosity" \ + $properties +} + +binary_log=true +configuration="Debug" +verbosity="minimal" +exclude_ci_binary_log=false +restore=false +help=false +properties='' +warnAsError=true + +while (($# > 0)); do + lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")" + case $lowerI in + --task) + task=$2 + shift 2 + ;; + --restore) + restore=true + shift 1 + ;; + --verbosity) + verbosity=$2 + shift 2 + ;; + --excludecibinarylog|--nobl) + binary_log=false + exclude_ci_binary_log=true + shift 1 + ;; + --noWarnAsError) + warnAsError=false + shift 1 + ;; + --help) + help=true + shift 1 + ;; + *) + properties="$properties $1" + shift 1 + ;; + esac +done + +ci=true + +if $help; then + show_usage + exit 0 +fi + +. "$scriptroot/tools.sh" +InitializeToolset + +if [[ -z "$task" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'MissingTask' -Message "Missing required parameter '-task '" + ExitWithExitCode 1 +fi + +taskProject=$(GetSdkTaskProject "$task") +if [[ ! -e "$taskProject" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'UnknownTask' -Message "Unknown task: $task" + ExitWithExitCode 1 +fi + +if $restore; then + Build "Restore" +fi + +Build "Execute" + + +ExitWithExitCode 0 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-official/job/job.yml b/eng/common/templates-official/job/job.yml index 81ea7a261f2d..92a0664f5647 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -31,6 +31,7 @@ jobs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked continueOnError: true - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - output: pipelineArtifact @@ -39,6 +40,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if eq(parameters.enablePublishBuildArtifacts, true) }}: @@ -46,7 +48,7 @@ jobs: displayName: Publish Logs PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() sbomEnabled: false # we don't need SBOM for logs diff --git a/eng/common/templates-official/steps/publish-build-artifacts.yml b/eng/common/templates-official/steps/publish-build-artifacts.yml index 100a3fc98493..fcf6637b2ebc 100644 --- a/eng/common/templates-official/steps/publish-build-artifacts.yml +++ b/eng/common/templates-official/steps/publish-build-artifacts.yml @@ -24,6 +24,10 @@ parameters: - name: is1ESPipeline type: boolean default: true + +- name: retryCountOnTaskFailure + type: string + default: 10 steps: - ${{ if ne(parameters.is1ESPipeline, true) }}: @@ -38,4 +42,5 @@ steps: PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: ArtifactName: ${{ parameters.artifactName }} - + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates-official/steps/source-index-stage1-publish.yml b/eng/common/templates-official/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..9b8b80942b5c --- /dev/null +++ b/eng/common/templates-official/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: true + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates-official/variables/pool-providers.yml b/eng/common/templates-official/variables/pool-providers.yml index 1f308b24efc4..2cc3ae305d5a 100644 --- a/eng/common/templates-official/variables/pool-providers.yml +++ b/eng/common/templates-official/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# image: 1es-windows-2022 +# image: windows.vs2026.amd64 variables: # Coalesce the target and source branches so we know when a PR targets a release branch diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 5bdd3dd85fd2..238fa0818f7b 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -46,6 +46,7 @@ jobs: artifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: @@ -56,6 +57,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: @@ -66,7 +68,7 @@ jobs: displayName: Publish Logs pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() diff --git a/eng/common/templates/steps/publish-build-artifacts.yml b/eng/common/templates/steps/publish-build-artifacts.yml index 6428a98dfef6..605e602e94d1 100644 --- a/eng/common/templates/steps/publish-build-artifacts.yml +++ b/eng/common/templates/steps/publish-build-artifacts.yml @@ -25,6 +25,10 @@ parameters: type: string default: 'Container' +- name: retryCountOnTaskFailure + type: string + default: 10 + steps: - ${{ if eq(parameters.is1ESPipeline, true) }}: - 'eng/common/templates cannot be referenced from a 1ES managed template': error @@ -37,4 +41,6 @@ steps: PublishLocation: ${{ parameters.publishLocation }} PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: - ArtifactName: ${{ parameters.artifactName }} \ No newline at end of file + ArtifactName: ${{ parameters.artifactName }} + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates/steps/source-index-stage1-publish.yml b/eng/common/templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..182cec33a7bb --- /dev/null +++ b/eng/common/templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: false + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml new file mode 100644 index 000000000000..eb619c502683 --- /dev/null +++ b/eng/common/templates/steps/vmr-sync.yml @@ -0,0 +1,186 @@ +### 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: | + 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/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 18693ea120d5..587770f0add4 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2022.amd64 +# demands: ImageOverride -equals windows.vs2026.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml new file mode 100644 index 000000000000..2f3694fa1323 --- /dev/null +++ b/eng/common/templates/vmr-build-pr.yml @@ -0,0 +1,43 @@ +# This pipeline is used for running the VMR verification of the PR changes in repo-level PRs. +# +# It will run a full set of verification jobs defined in: +# https://github.com/dotnet/dotnet/blob/10060d128e3f470e77265f8490f5e4f72dae738e/eng/pipelines/templates/stages/vmr-build.yml#L27-L38 +# +# For repos that do not need to run the full set, you would do the following: +# +# 1. Copy this YML file to a repo-specific location, i.e. outside of eng/common. +# +# 2. Add `verifications` parameter to VMR template reference +# +# Examples: +# - For source-build stage 1 verification, add the following: +# verifications: [ "source-build-stage1" ] +# +# - For Windows only verifications, add the following: +# verifications: [ "unified-build-windows-x64", "unified-build-windows-x86" ] + +trigger: none +pr: none + +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 + ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into + +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 a06513a59407..977a2d4b1039 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -65,10 +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 } - -[String[]]$properties = if (Test-Path variable:properties) { $properties } else { @() } +# 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 @@ -259,7 +257,20 @@ function Retry($downloadBlock, $maxRetries = 5) { function GetDotNetInstallScript([string] $dotnetRoot) { $installScript = Join-Path $dotnetRoot 'dotnet-install.ps1' + $shouldDownload = $false + if (!(Test-Path $installScript)) { + $shouldDownload = $true + } else { + # Check if the script is older than 30 days + $fileAge = (Get-Date) - (Get-Item $installScript).LastWriteTime + if ($fileAge.Days -gt 30) { + Write-Host "Existing install script is too old, re-downloading..." + $shouldDownload = $true + } + } + + if ($shouldDownload) { Create-Directory $dotnetRoot $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit $uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1" @@ -383,8 +394,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.12.0 - $defaultXCopyMSBuildVersion = '17.12.0' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/18.0.0 + $defaultXCopyMSBuildVersion = '18.0.0' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { @@ -533,7 +544,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (Get-Member -InputObject $GlobalJson.tools -Name 'vswhere') { $vswhereVersion = $GlobalJson.tools.vswhere } else { - $vswhereVersion = '2.5.2' + # keep this in sync with the VSWhereVersion in DefaultVersions.props + $vswhereVersion = '3.1.7' } $vsWhereDir = Join-Path $ToolsDir "vswhere\$vswhereVersion" @@ -541,7 +553,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (!(Test-Path $vsWhereExe)) { Create-Directory $vsWhereDir - Write-Host 'Downloading vswhere' + Write-Host "Downloading vswhere $vswhereVersion" + $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit Retry({ Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -UseBasicParsing -OutFile $vswhereExe }) @@ -611,14 +624,7 @@ function InitializeBuildTool() { } $dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') - # Use override if it exists - commonly set by source-build - if ($null -eq $env:_OverrideArcadeInitializeBuildToolFramework) { - $initializeBuildToolFramework="net9.0" - } else { - $initializeBuildToolFramework=$env:_OverrideArcadeInitializeBuildToolFramework - } - - $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = $initializeBuildToolFramework } + $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net' } } elseif ($msbuildEngine -eq "vs") { try { $msbuildPath = InitializeVisualStudioMSBuild -install:$restore @@ -627,7 +633,7 @@ function InitializeBuildTool() { ExitWithExitCode 1 } - $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "net472"; ExcludePrereleaseVS = $excludePrereleaseVS } + $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "netframework"; ExcludePrereleaseVS = $excludePrereleaseVS } } else { Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Unexpected value of -msbuildEngine: '$msbuildEngine'." ExitWithExitCode 1 @@ -660,7 +666,6 @@ function GetNuGetPackageCachePath() { $env:NUGET_PACKAGES = Join-Path $env:UserProfile '.nuget\packages\' } else { $env:NUGET_PACKAGES = Join-Path $RepoRoot '.packages\' - $env:RESTORENOHTTPCACHE = $true } } @@ -782,26 +787,13 @@ function MSBuild() { $toolsetBuildProject = InitializeToolset $basePath = Split-Path -parent $toolsetBuildProject - $possiblePaths = @( - # new scripts need to work with old packages, so we need to look for the old names/versions - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.Arcade.Sdk.dll')) - ) - $selectedPath = $null - foreach ($path in $possiblePaths) { - if (Test-Path $path -PathType Leaf) { - $selectedPath = $path - break - } - } + $selectedPath = Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll') + if (-not $selectedPath) { - Write-PipelineTelemetryError -Category 'Build' -Message 'Unable to find arcade sdk logger assembly.' + Write-PipelineTelemetryError -Category 'Build' -Message "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 } + $args += "/logger:$selectedPath" } @@ -832,6 +824,11 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + if ($env:MSBUILD_MT_ENABLED -eq "1") { + $cmdArgs += ' -mt' + } + if ($warnAsError) { $cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true' } @@ -864,8 +861,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 -and -not($properties -like "*DotNetBuildRepo=true*")) { + # 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 01b09b65796c..1b296f646c23 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -5,6 +5,9 @@ # CI mode - set to true on CI server for PR validation build or official build. ci=${ci:-false} +# Build mode +source_build=${source_build:-false} + # Set to true to use the pipelines logger which will enable Azure logging output. # https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md # This flag is meant as a temporary opt-opt for the feature while validate it across @@ -58,7 +61,8 @@ use_installed_dotnet_cli=${use_installed_dotnet_cli:-true} dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'} # True to use global NuGet cache instead of restoring packages to repository-local directory. -if [[ "$ci" == true ]]; then +# Keep in sync with NuGetPackageroot in Arcade SDK's RepositoryLayout.props. +if [[ "$ci" == true || "$source_build" == true ]]; then use_global_nuget_cache=${use_global_nuget_cache:-false} else use_global_nuget_cache=${use_global_nuget_cache:-true} @@ -68,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 { @@ -296,8 +300,29 @@ function GetDotNetInstallScript { local root=$1 local install_script="$root/dotnet-install.sh" local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" + local timestamp_file="$root/.dotnet-install.timestamp" + local should_download=false if [[ ! -a "$install_script" ]]; then + should_download=true + elif [[ -f "$timestamp_file" ]]; then + # Check if the script is older than 30 days using timestamp file + local download_time=$(cat "$timestamp_file" 2>/dev/null || echo "0") + local current_time=$(date +%s) + local age_seconds=$((current_time - download_time)) + + # 30 days = 30 * 24 * 60 * 60 = 2592000 seconds + if [[ $age_seconds -gt 2592000 ]]; then + echo "Existing install script is too old, re-downloading..." + should_download=true + fi + else + # No timestamp file exists, assume script is old and re-download + echo "No timestamp found for existing install script, re-downloading..." + should_download=true + fi + + if [[ "$should_download" == true ]]; then mkdir -p "$root" echo "Downloading '$install_script_url'" @@ -324,6 +349,9 @@ function GetDotNetInstallScript { ExitWithExitCode $exit_code } fi + + # Create timestamp file to track download time in seconds from epoch + date +%s > "$timestamp_file" fi # return value _GetDotNetInstallScript="$install_script" @@ -339,22 +367,14 @@ function InitializeBuildTool { # return values _InitializeBuildTool="$_InitializeDotNetCli/dotnet" _InitializeBuildToolCommand="msbuild" - # use override if it exists - commonly set by source-build - if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then - _InitializeBuildToolFramework="net9.0" - else - _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" - fi } -# 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 @@ -451,25 +471,13 @@ function MSBuild { fi local toolset_dir="${_InitializeToolset%/*}" - # new scripts need to work with old packages, so we need to look for the old names/versions - local selectedPath= - local possiblePaths=() - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - for path in "${possiblePaths[@]}"; do - if [[ -f $path ]]; then - selectedPath=$path - break - fi - done + local selectedPath="$toolset_dir/net/Microsoft.DotNet.ArcadeLogging.dll" + if [[ -z "$selectedPath" ]]; then - Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly." + Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 fi + args+=( "-logger:$selectedPath" ) fi @@ -506,8 +514,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 && "$properties" != *"DotNetBuildRepo=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 @@ -518,7 +526,13 @@ function MSBuild-Core { } } - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + local mt_switch="" + if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then + mt_switch="-mt" + fi + + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { @@ -530,6 +544,13 @@ 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. +function GetSdkTaskProject { + taskName=$1 + echo "$(dirname $_InitializeToolset)/SdkTasks/$taskName.proj" } ResolvePath "${BASH_SOURCE[0]}" diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 new file mode 100755 index 000000000000..b37992d91cf0 --- /dev/null +++ b/eng/common/vmr-sync.ps1 @@ -0,0 +1,164 @@ +<# +.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 +$env:DOTNET_ROOT = $dotnetRoot +$darc = Get-Darc + +Highlight "Starting the synchronization of VMR.." + +# Synchronize the VMR +$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path +[xml]$versionDetails = Get-Content -Path $versionDetailsPath +$repoName = $versionDetails.SelectSingleNode('//Source').Mapping +if (-not $repoName) { + Fail "Failed to resolve repo mapping from $versionDetailsPath" + exit 1 +} + +$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 { + Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..." + git -C $vmrDir reset --hard + + $resetArgs = ( + "vmr", "reset", + "${repoName}:HEAD", + "--vmr", $vmrDir, + "--tmp", $tmpDir, + "--additional-remotes", "${repoName}:${repoRoot}" + ) + + & "$darc" $resetArgs + + if ($LASTEXITCODE -eq 0) { + Highlight "Successfully reset the VMR using 'darc vmr reset'" + } + 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..198caec59bd4 --- /dev/null +++ b/eng/common/vmr-sync.sh @@ -0,0 +1,227 @@ +#!/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 + +version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml +repo_name=$(grep -m 1 ' Date: Fri, 10 Apr 2026 09:48:10 +0000 Subject: [PATCH 23/31] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 4 +- eng/Version.Details.props | 266 +++++++-------- eng/Version.Details.xml | 673 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 475 insertions(+), 474 deletions(-) diff --git a/NuGet.config b/NuGet.config index e226baf9b0b6..903609549285 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -39,6 +39,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 94492476bae6..1a73d58a3c79 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,139 +8,139 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-preview.26203.109 - 10.0.6 - 10.0.6 - 18.0.11 - 18.0.11-servicing-26203-109 - 7.0.2-rc.20409 - 10.0.106 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.0-preview.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 2.0.0-preview.1.26203.109 - 2.2.6 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 14.0.106-servicing.26203.109 - 10.0.6 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.0-preview.26202.103 + 10.0.4 + 10.0.4 + 18.3.3 + 18.3.3-servicing-26202-103 + 7.3.0-rc.20303 + 10.0.202 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.0-preview.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 2.0.0-preview.1.26119.110 + 2.2.4 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 15.2.202-servicing.26202.103 + 10.0.4 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26203.109 - 10.0.6-servicing.26203.109 - 18.0.2-release-26203-109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 18.0.2-release-26203-109 - 18.0.2-release-26203-109 - 3.2.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 10.0.6 - 2.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 + 10.0.0-preview.26202.103 + 10.0.4-servicing.26119.110 + 18.3.0-release-26202-103 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 18.3.0-release-26202-103 + 18.3.0-release-26202-103 + 3.2.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 10.0.4 + 2.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 2.3.0-preview.26202.5 4.3.0-preview.26202.5 @@ -185,6 +185,7 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) @@ -200,7 +201,6 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3a7cdb3a56c8..a1ff22313714 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 https://github.com/microsoft/testfx @@ -569,9 +568,9 @@ https://github.com/microsoft/testfx cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 diff --git a/global.json b/global.json index 6f9207378ac4..0552121a41ea 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.105", + "dotnet": "10.0.201", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26203.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26203.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26202.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26202.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 90c2460bb53268e24fb66cc441a6e7a34cb53994 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 10:09:20 +0200 Subject: [PATCH 24/31] [release/10.0.1xx] Fix working directory of simple file-based apps (#53803) Co-authored-by: Jan Jones --- src/Cli/dotnet/Commands/Run/RunCommand.cs | 3 +- .../CommandTests/Run/RunFileTests.cs | 124 +++++++++++++++++- 2 files changed, 122 insertions(+), 5 deletions(-) diff --git a/src/Cli/dotnet/Commands/Run/RunCommand.cs b/src/Cli/dotnet/Commands/Run/RunCommand.cs index 542fc76ffbcd..c1fc0d0ff9a2 100644 --- a/src/Cli/dotnet/Commands/Run/RunCommand.cs +++ b/src/Cli/dotnet/Commands/Run/RunCommand.cs @@ -469,8 +469,7 @@ static ICommand CreateCommandForCscBuiltProgram(string entryPointFileFullPath, s var artifactsPath = VirtualProjectBuildingCommand.GetArtifactsPath(entryPointFileFullPath); var exePath = Path.Join(artifactsPath, "bin", "debug", Path.GetFileNameWithoutExtension(entryPointFileFullPath) + FileNameSuffixes.CurrentPlatform.Exe); var commandSpec = new CommandSpec(path: exePath, args: ArgumentEscaper.EscapeAndConcatenateArgArrayForProcessStart(args)); - var command = CommandFactoryUsingResolver.Create(commandSpec) - .WorkingDirectory(Path.GetDirectoryName(entryPointFileFullPath)); + var command = CommandFactoryUsingResolver.Create(commandSpec); SetRootVariableName( command, diff --git a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs index 145200be148c..044f3bdd8419 100644 --- a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs @@ -866,6 +866,124 @@ public void EmptyFile() .And.HaveStdOutContaining("error CS5001:"); // Program does not contain a static 'Main' method suitable for an entry point } + /// + /// See . + /// + [Theory, CombinatorialData] + public void WorkingDirectory(bool cscOnly) + { + var testInstance = _testAssetsManager.CreateTestDirectory(baseDirectory: cscOnly ? OutOfTreeBaseDirectory : null); + var programPath = Path.Join(testInstance.Path, "Program.cs"); + + var code = """ + Console.WriteLine("v1"); + Console.WriteLine(Environment.CurrentDirectory); + Console.WriteLine(Directory.GetCurrentDirectory()); + Console.WriteLine(new DirectoryInfo(".").FullName); + Console.WriteLine(AppContext.GetData("EntryPointFileDirectoryPath")); + """; + + File.WriteAllText(programPath, code); + + var workDir = TestPathUtility.ResolveTempPrefixLink(Path.GetTempPath()).TrimEnd(Path.DirectorySeparatorChar); + + var artifactsDir = VirtualProjectBuildingCommand.GetArtifactsPath(programPath); + if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + + Build(testInstance, + expectedLevel: cscOnly ? BuildLevel.Csc : BuildLevel.All, + programFileName: programPath, + workDir: workDir, + expectedOutput: GetExpectedOutput("v1", workDir)); + + code = code.Replace("v1", "v2"); + File.WriteAllText(programPath, code); + + Build(testInstance, + expectedLevel: BuildLevel.Csc, + programFileName: programPath, + workDir: workDir, + expectedOutput: GetExpectedOutput("v2", workDir)); + + string GetExpectedOutput(string version, string workDir) => $""" + {version} + {workDir} + {workDir} + {workDir} + {Path.GetDirectoryName(programPath)} + """; + } + + /// + /// Combination of and . + /// + [Fact] + public void WorkingDirectory_CscOnly_AfterMSBuild() + { + var testInstance = _testAssetsManager.CreateTestDirectory(baseDirectory: OutOfTreeBaseDirectory); + var programPath = Path.Join(testInstance.Path, "Program.cs"); + + var code = """ + #:property Configuration=Release + Console.WriteLine("v1"); + Console.WriteLine(Environment.CurrentDirectory); + Console.WriteLine(Directory.GetCurrentDirectory()); + Console.WriteLine(new DirectoryInfo(".").FullName); + Console.WriteLine(AppContext.GetData("EntryPointFileDirectoryPath")); + """; + + File.WriteAllText(programPath, code); + + var workDir = TestPathUtility.ResolveTempPrefixLink(Path.GetTempPath()).TrimEnd(Path.DirectorySeparatorChar); + + var artifactsDir = VirtualProjectBuildingCommand.GetArtifactsPath(programPath); + if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + + Build(testInstance, + expectedLevel: BuildLevel.All, + programFileName: programPath, + workDir: workDir, + expectedOutput: GetExpectedOutput("v1", workDir)); + + Build(testInstance, + expectedLevel: BuildLevel.None, + programFileName: programPath, + workDir: workDir, + expectedOutput: GetExpectedOutput("v1", workDir)); + + code = code.Replace("v1", "v2"); + File.WriteAllText(programPath, code); + + Build(testInstance, + expectedLevel: BuildLevel.Csc, + programFileName: programPath, + workDir: workDir, + expectedOutput: GetExpectedOutput("v2", workDir)); + + // Can be overridden with a #:property. + var workDir2 = Path.Join(testInstance.Path, "dir2"); + Directory.CreateDirectory(workDir2); + code = $""" + #:property RunWorkingDirectory={workDir2} + {code} + """; + File.WriteAllText(programPath, code); + + Build(testInstance, + expectedLevel: BuildLevel.All, + programFileName: programPath, + workDir: workDir, + expectedOutput: GetExpectedOutput("v2", workDir2)); + + string GetExpectedOutput(string version, string workDir) => $""" + {version} + {workDir} + {workDir} + {workDir} + {Path.GetDirectoryName(programPath)} + """; + } + /// /// Implicit build files have an effect. /// @@ -3134,7 +3252,7 @@ Release config Build(testInstance, BuildLevel.Csc); } - private void Build(TestDirectory testInstance, BuildLevel expectedLevel, ReadOnlySpan args = default, string expectedOutput = "Hello from Program", string programFileName = "Program.cs") + private void Build(TestDirectory testInstance, BuildLevel expectedLevel, ReadOnlySpan args = default, string expectedOutput = "Hello from Program", string programFileName = "Program.cs", string? workDir = null) { string prefix = expectedLevel switch { @@ -3145,12 +3263,12 @@ private void Build(TestDirectory testInstance, BuildLevel expectedLevel, ReadOnl }; new DotnetCommand(Log, ["run", programFileName, "-bl", .. args]) - .WithWorkingDirectory(testInstance.Path) + .WithWorkingDirectory(workDir ?? testInstance.Path) .Execute() .Should().Pass() .And.HaveStdOut(prefix + expectedOutput); - var binlogs = new DirectoryInfo(testInstance.Path) + var binlogs = new DirectoryInfo(workDir ?? testInstance.Path) .EnumerateFiles("*.binlog", SearchOption.TopDirectoryOnly); binlogs.Select(f => f.Name) From 0a8a0b120a6445a6bd4ef3d6e6d2d0de61338651 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 08:10:19 +0000 Subject: [PATCH 25/31] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 4 +- eng/Version.Details.props | 266 +++++++-------- eng/Version.Details.xml | 673 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 475 insertions(+), 474 deletions(-) diff --git a/NuGet.config b/NuGet.config index e226baf9b0b6..903609549285 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -39,6 +39,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 94492476bae6..1a73d58a3c79 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,139 +8,139 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-preview.26203.109 - 10.0.6 - 10.0.6 - 18.0.11 - 18.0.11-servicing-26203-109 - 7.0.2-rc.20409 - 10.0.106 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.0-preview.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 2.0.0-preview.1.26203.109 - 2.2.6 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 14.0.106-servicing.26203.109 - 10.0.6 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.0-preview.26202.103 + 10.0.4 + 10.0.4 + 18.3.3 + 18.3.3-servicing-26202-103 + 7.3.0-rc.20303 + 10.0.202 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.0-preview.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 2.0.0-preview.1.26119.110 + 2.2.4 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 15.2.202-servicing.26202.103 + 10.0.4 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26203.109 - 10.0.6-servicing.26203.109 - 18.0.2-release-26203-109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 18.0.2-release-26203-109 - 18.0.2-release-26203-109 - 3.2.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 10.0.6 - 2.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 + 10.0.0-preview.26202.103 + 10.0.4-servicing.26119.110 + 18.3.0-release-26202-103 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 18.3.0-release-26202-103 + 18.3.0-release-26202-103 + 3.2.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 10.0.4 + 2.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 2.3.0-preview.26202.5 4.3.0-preview.26202.5 @@ -185,6 +185,7 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) @@ -200,7 +201,6 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3a7cdb3a56c8..a1ff22313714 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 https://github.com/microsoft/testfx @@ -569,9 +568,9 @@ https://github.com/microsoft/testfx cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 diff --git a/global.json b/global.json index 6f9207378ac4..0552121a41ea 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.105", + "dotnet": "10.0.201", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26203.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26203.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26202.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26202.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From e2a4d88e75fc01458062141027208c854a1bf4f3 Mon Sep 17 00:00:00 2001 From: "Donna Chen (BEYONDSOFT CONSULTING INC)" Date: Mon, 13 Apr 2026 14:35:35 +0800 Subject: [PATCH 26/31] Revert the change on RunFileTests.cs --- .../CommandTests/Run/RunFileTests.cs | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs index 976ba34a730f..166bee41841e 100644 --- a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.Versioning; @@ -1012,7 +1012,7 @@ public void WorkingDirectory(bool cscOnly) var workDir = TestPathUtility.ResolveTempPrefixLink(Path.GetTempPath()).TrimEnd(Path.DirectorySeparatorChar); - var artifactsDir = VirtualProjectBuildingCommand.GetArtifactsPath(programPath); + var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); Build(testInstance, @@ -1061,7 +1061,7 @@ public void WorkingDirectory_CscOnly_AfterMSBuild() var workDir = TestPathUtility.ResolveTempPrefixLink(Path.GetTempPath()).TrimEnd(Path.DirectorySeparatorChar); - var artifactsDir = VirtualProjectBuildingCommand.GetArtifactsPath(programPath); + var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); Build(testInstance, @@ -3523,7 +3523,14 @@ Release config Build(testInstance, BuildLevel.Csc); } - private void Build(TestDirectory testInstance, BuildLevel expectedLevel, ReadOnlySpan args = default, string expectedOutput = "Hello from Program", string programFileName = "Program.cs", string? workDir = null) + private void Build( + TestDirectory testInstance, + BuildLevel expectedLevel, + ReadOnlySpan args = default, + string expectedOutput = "Hello from Program", + string programFileName = "Program.cs", + string? workDir = null, + Func? customizeCommand = null) { string prefix = expectedLevel switch { @@ -3533,13 +3540,18 @@ private void Build(TestDirectory testInstance, BuildLevel expectedLevel, ReadOnl _ => throw new ArgumentOutOfRangeException(paramName: nameof(expectedLevel)), }; - new DotnetCommand(Log, ["run", programFileName, "-bl", .. args]) - .WithWorkingDirectory(workDir ?? testInstance.Path) - .Execute() + var command = new DotnetCommand(Log, ["run", programFileName, "-bl", .. args]) + .WithWorkingDirectory(workDir ?? testInstance.Path); + + if (customizeCommand != null) + { + command = customizeCommand(command); + } + + command.Execute() .Should().Pass() .And.HaveStdOut(prefix + expectedOutput); - var binlogs = new DirectoryInfo(workDir ?? testInstance.Path) var binlogs = new DirectoryInfo(workDir ?? testInstance.Path) .EnumerateFiles("*.binlog", SearchOption.TopDirectoryOnly); From 37730698d53edc963fff5ec2548377d5e9ad042c Mon Sep 17 00:00:00 2001 From: "Donna Chen (BEYONDSOFT CONSULTING INC)" Date: Mon, 13 Apr 2026 14:42:06 +0800 Subject: [PATCH 27/31] Revert the change on RunFileTests.cs --- test/dotnet.Tests/CommandTests/Run/RunFileTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs index 166bee41841e..e775adea5da0 100644 --- a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.Versioning; From 775c884a50c59e4b7aca37a1da42227a8a1a0f0a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 07:06:32 +0000 Subject: [PATCH 28/31] Reset files to release/10.0.1xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 52 +- eng/Version.Details.props | 290 +++++ eng/Version.Details.xml | 1081 ++++++++--------- eng/common/CIBuild.cmd | 2 +- eng/common/SetupNugetSources.ps1 | 90 +- eng/common/SetupNugetSources.sh | 192 +-- eng/common/build.ps1 | 11 +- eng/common/build.sh | 33 +- eng/common/cibuild.sh | 2 +- eng/common/core-templates/job/job.yml | 48 +- eng/common/core-templates/job/onelocbuild.yml | 39 +- .../job/publish-build-assets.yml | 83 +- .../core-templates/job/source-build.yml | 15 +- .../job/source-index-stage1.yml | 47 +- .../core-templates/jobs/codeql-build.yml | 1 - eng/common/core-templates/jobs/jobs.yml | 15 +- .../core-templates/jobs/source-build.yml | 23 +- .../core-templates/post-build/post-build.yml | 42 +- .../steps/cleanup-microbuild.yml | 28 + .../core-templates/steps/generate-sbom.yml | 2 +- .../steps/get-delegation-sas.yml | 11 +- .../steps/install-microbuild.yml | 110 ++ .../core-templates/steps/publish-logs.yml | 8 +- .../core-templates/steps/source-build.yml | 88 +- .../steps/source-index-stage1-publish.yml | 35 + eng/common/cross/arm64/tizen/tizen.patch | 2 +- eng/common/cross/build-android-rootfs.sh | 49 +- eng/common/cross/build-rootfs.sh | 237 ++-- eng/common/cross/install-debs.py | 334 +++++ eng/common/cross/tizen-build-rootfs.sh | 0 eng/common/cross/tizen-fetch.sh | 9 +- eng/common/cross/toolchain.cmake | 82 +- eng/common/darc-init.sh | 2 +- eng/common/dotnet.cmd | 7 + eng/common/dotnet.ps1 | 11 + eng/common/dotnet.sh | 26 + eng/common/generate-locproject.ps1 | 49 +- eng/common/generate-sbom-prep.sh | 0 eng/common/native/install-dependencies.sh | 62 + eng/common/post-build/publish-using-darc.ps1 | 9 +- eng/common/post-build/redact-logs.ps1 | 5 +- eng/common/sdk-task.ps1 | 14 +- eng/common/sdk-task.sh | 121 ++ eng/common/sdl/packages.config | 2 +- eng/common/templates-official/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 7 +- .../steps/source-index-stage1-publish.yml | 7 + .../variables/pool-providers.yml | 2 +- eng/common/templates/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 8 +- .../steps/source-index-stage1-publish.yml | 7 + eng/common/templates/steps/vmr-sync.yml | 186 +++ .../templates/variables/pool-providers.yml | 2 +- eng/common/templates/vmr-build-pr.yml | 43 + eng/common/tools.ps1 | 71 +- eng/common/tools.sh | 81 +- eng/common/vmr-sync.ps1 | 164 +++ eng/common/vmr-sync.sh | 227 ++++ global.json | 21 +- 59 files changed, 2940 insertions(+), 1263 deletions(-) create mode 100644 eng/Version.Details.props mode change 100644 => 100755 eng/common/SetupNugetSources.sh create mode 100644 eng/common/core-templates/steps/cleanup-microbuild.yml create mode 100644 eng/common/core-templates/steps/install-microbuild.yml create mode 100644 eng/common/core-templates/steps/source-index-stage1-publish.yml create mode 100755 eng/common/cross/install-debs.py mode change 100644 => 100755 eng/common/cross/tizen-build-rootfs.sh mode change 100644 => 100755 eng/common/cross/tizen-fetch.sh create mode 100644 eng/common/dotnet.cmd create mode 100644 eng/common/dotnet.ps1 create mode 100755 eng/common/dotnet.sh mode change 100644 => 100755 eng/common/generate-sbom-prep.sh create mode 100755 eng/common/native/install-dependencies.sh create mode 100755 eng/common/sdk-task.sh create mode 100644 eng/common/templates-official/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/vmr-sync.yml create mode 100644 eng/common/templates/vmr-build-pr.yml create mode 100755 eng/common/vmr-sync.ps1 create mode 100755 eng/common/vmr-sync.sh diff --git a/NuGet.config b/NuGet.config index 4460caf81a88..e226baf9b0b6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,44 +3,15 @@ - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - @@ -51,6 +22,8 @@ + + @@ -60,19 +33,14 @@ + + + - - - - - - - - diff --git a/eng/Version.Details.props b/eng/Version.Details.props new file mode 100644 index 000000000000..94492476bae6 --- /dev/null +++ b/eng/Version.Details.props @@ -0,0 +1,290 @@ + + + + + 2.1.0 + + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-preview.26203.109 + 10.0.6 + 10.0.6 + 18.0.11 + 18.0.11-servicing-26203-109 + 7.0.2-rc.20409 + 10.0.106 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.0-preview.26203.109 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 2.0.0-preview.1.26203.109 + 2.2.6 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6-servicing.26203.109 + 10.0.0-beta.26203.109 + 10.0.0-beta.26203.109 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 14.0.106-servicing.26203.109 + 10.0.6 + 5.0.0-2.26203.109 + 5.0.0-2.26203.109 + 10.0.6-servicing.26203.109 + 10.0.6 + 10.0.6 + 10.0.0-preview.7.25377.103 + 10.0.0-preview.26203.109 + 10.0.6-servicing.26203.109 + 18.0.2-release-26203-109 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106 + 10.0.106-servicing.26203.109 + 10.0.106 + 10.0.106-servicing.26203.109 + 10.0.106 + 10.0.106 + 10.0.106-servicing.26203.109 + 18.0.2-release-26203-109 + 18.0.2-release-26203-109 + 3.2.6 + 10.0.6 + 10.0.6-servicing.26203.109 + 10.0.6 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 7.0.2-rc.20409 + 10.0.6 + 2.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + 10.0.6 + + 2.3.0-preview.26202.5 + 4.3.0-preview.26202.5 + + + + + $(NETStandardLibraryRefPackageVersion) + + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) + $(MicrosoftBuildPackageVersion) + $(MicrosoftBuildLocalizationPackageVersion) + $(MicrosoftBuildNuGetSdkResolverPackageVersion) + $(MicrosoftBuildTasksGitPackageVersion) + $(MicrosoftCodeAnalysisPackageVersion) + $(MicrosoftCodeAnalysisBuildClientPackageVersion) + $(MicrosoftCodeAnalysisCSharpPackageVersion) + $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) + $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) + $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) + $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) + $(MicrosoftDotNetArcadeSdkPackageVersion) + $(MicrosoftDotNetBuildTasksInstallersPackageVersion) + $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) + $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) + $(MicrosoftDotNetHelixSdkPackageVersion) + $(MicrosoftDotNetSignToolPackageVersion) + $(MicrosoftDotNetWebItemTemplates100PackageVersion) + $(MicrosoftDotNetWebProjectTemplates100PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) + $(MicrosoftDotNetXliffTasksPackageVersion) + $(MicrosoftDotNetXUnitExtensionsPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) + $(MicrosoftFSharpCompilerPackageVersion) + $(MicrosoftJSInteropPackageVersion) + $(MicrosoftNetCompilersToolsetPackageVersion) + $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) + $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) + $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) + $(MicrosoftNETTestSdkPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) + $(MicrosoftSourceLinkAzureReposGitPackageVersion) + $(MicrosoftSourceLinkBitbucketGitPackageVersion) + $(MicrosoftSourceLinkCommonPackageVersion) + $(MicrosoftSourceLinkGitHubPackageVersion) + $(MicrosoftSourceLinkGitLabPackageVersion) + $(MicrosoftTemplateEngineAbstractionsPackageVersion) + $(MicrosoftTemplateEngineAuthoringTemplateVerifierPackageVersion) + $(MicrosoftTemplateEngineEdgePackageVersion) + $(MicrosoftTemplateEngineMocksPackageVersion) + $(MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion) + $(MicrosoftTemplateEngineTestHelperPackageVersion) + $(MicrosoftTemplateEngineUtilsPackageVersion) + $(MicrosoftTemplateSearchCommonPackageVersion) + $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) + $(MicrosoftTestPlatformBuildPackageVersion) + $(MicrosoftTestPlatformCLIPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) + $(NuGetBuildTasksPackageVersion) + $(NuGetBuildTasksConsolePackageVersion) + $(NuGetBuildTasksPackPackageVersion) + $(NuGetCommandLineXPlatPackageVersion) + $(NuGetCommandsPackageVersion) + $(NuGetCommonPackageVersion) + $(NuGetConfigurationPackageVersion) + $(NuGetCredentialsPackageVersion) + $(NuGetDependencyResolverCorePackageVersion) + $(NuGetFrameworksPackageVersion) + $(NuGetLibraryModelPackageVersion) + $(NuGetLocalizationPackageVersion) + $(NuGetPackagingPackageVersion) + $(NuGetProjectModelPackageVersion) + $(NuGetProtocolPackageVersion) + $(NuGetVersioningPackageVersion) + $(SystemCodeDomPackageVersion) + $(SystemCommandLinePackageVersion) + $(SystemComponentModelCompositionPackageVersion) + $(SystemCompositionAttributedModelPackageVersion) + $(SystemCompositionConventionPackageVersion) + $(SystemCompositionHostingPackageVersion) + $(SystemCompositionRuntimePackageVersion) + $(SystemCompositionTypedPartsPackageVersion) + $(SystemConfigurationConfigurationManagerPackageVersion) + $(SystemDiagnosticsDiagnosticSourcePackageVersion) + $(SystemFormatsAsn1PackageVersion) + $(SystemIOHashingPackageVersion) + $(SystemReflectionMetadataLoadContextPackageVersion) + $(SystemResourcesExtensionsPackageVersion) + $(SystemSecurityCryptographyPkcsPackageVersion) + $(SystemSecurityCryptographyProtectedDataPackageVersion) + $(SystemSecurityCryptographyXmlPackageVersion) + $(SystemSecurityPermissionsPackageVersion) + $(SystemServiceProcessServiceControllerPackageVersion) + $(SystemTextEncodingCodePagesPackageVersion) + $(SystemTextJsonPackageVersion) + $(SystemWindowsExtensionsPackageVersion) + + $(MicrosoftTestingPlatformPackageVersion) + $(MSTestPackageVersion) + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 25d8b3f5e48f..3a7cdb3a56c8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,634 +1,577 @@ + - - https://github.com/dotnet/templating - 34a5893f3ec336db55d3da5621a96106b418db5b - - - https://github.com/dotnet/templating - 34a5893f3ec336db55d3da5621a96106b418db5b - - - - https://github.com/dotnet/templating - b73682307aa0128c5edbec94c2e6a070d13ae6bb - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - - https://github.com/dotnet/emsdk - fb1326b0f4622f04f21584dc133f1c71f7554509 - - - - https://github.com/dotnet/emsdk - fb1326b0f4622f04f21584dc133f1c71f7554509 - - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - - https://github.com/dotnet/msbuild - 2a0eb78b31025538b6e749ecd80dfabfcfa43a42 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6a953e76162f3f079405f80e28664fa51b136740 + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - - - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - f3d1a3c90c44fd18aecd8fb8a7006807f64b2710 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 72d4e0415ec4ae0771a5df3e05260691a5d6775b - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - 9399df09f8f8a187dcf1941b1d07a538ca197171 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 72d4e0415ec4ae0771a5df3e05260691a5d6775b - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/roslyn-analyzers - 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn-analyzers - 04fb1b300056f8ef08045c4aed1bbb0a876ea9b8 - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - - - https://github.com/dotnet/source-build-externals - 71dbdccd13f28cfd1a35649263b55ebbeab26ee7 - - - - - https://github.com/dotnet/source-build-reference-packages - 6092b62b7f35fddbd6bf31e19b2ab64bbe2443ae - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - baa6b294e728e6171378b4e8c52e42e7c4d4ed63 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - - https://github.com/dotnet/arcade - 01c94b66e75697e9298eb79a49db74489f8d343e - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 19c07820cb72aafc554c3bc8fe3c54010f5123f0 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/scenario-tests - 0f750c53b3052a593c6daacc0d60eb8c0d2d9cf1 - - - - https://github.com/dotnet/scenario-tests - 0f750c53b3052a593c6daacc0d60eb8c0d2d9cf1 - - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + + https://github.com/microsoft/testfx + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + + + https://github.com/microsoft/testfx + cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + + + https://github.com/dotnet/dotnet + 6165bd7ac3499cb712ca489f2ce44bb665174a1a diff --git a/eng/common/CIBuild.cmd b/eng/common/CIBuild.cmd index 56c2f25ac22f..ac1f72bf94e0 100644 --- a/eng/common/CIBuild.cmd +++ b/eng/common/CIBuild.cmd @@ -1,2 +1,2 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" \ No newline at end of file +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 792b60b49d42..65ed3a8adef0 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -1,13 +1,14 @@ # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # # See example call for this script below. # # - task: PowerShell@2 -# displayName: Setup Private Feeds Credentials +# displayName: Setup internal Feeds Credentials # condition: eq(variables['Agent.OS'], 'Windows_NT') # inputs: # filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 @@ -34,19 +35,28 @@ Set-StrictMode -Version 2.0 . $PSScriptRoot\tools.ps1 +# Adds or enables the package source with the given name +function AddOrEnablePackageSource($sources, $disabledPackageSources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { + if ($disabledPackageSources -eq $null -or -not (EnableInternalPackageSource -DisabledPackageSources $disabledPackageSources -Creds $creds -PackageSourceName $SourceName)) { + AddPackageSource -Sources $sources -SourceName $SourceName -SourceEndPoint $SourceEndPoint -Creds $creds -Username $userName -pwd $Password + } +} + # Add source entry to PackageSources function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']") if ($packageSource -eq $null) { + Write-Host "Adding package source $SourceName" + $packageSource = $doc.CreateElement("add") $packageSource.SetAttribute("key", $SourceName) $packageSource.SetAttribute("value", $SourceEndPoint) $sources.AppendChild($packageSource) | Out-Null } else { - Write-Host "Package source $SourceName already present." + Write-Host "Package source $SourceName already present and enabled." } AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd @@ -59,6 +69,8 @@ function AddCredential($creds, $source, $username, $pwd) { return; } + Write-Host "Inserting credential for feed: " $source + # Looks for credential configuration for the given SourceName. Create it if none is found. $sourceElement = $creds.SelectSingleNode($Source) if ($sourceElement -eq $null) @@ -91,24 +103,27 @@ function AddCredential($creds, $source, $username, $pwd) { $passwordElement.SetAttribute("value", $pwd) } -function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) { - $maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]") - - Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds." - - ForEach ($PackageSource in $maestroPrivateSources) { - Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key - AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd +# Enable all darc-int package sources. +function EnableMaestroInternalPackageSources($DisabledPackageSources, $Creds) { + $maestroInternalSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") + ForEach ($DisabledPackageSource in $maestroInternalSources) { + EnableInternalPackageSource -DisabledPackageSources $DisabledPackageSources -Creds $Creds -PackageSourceName $DisabledPackageSource.key } } -function EnablePrivatePackageSources($DisabledPackageSources) { - $maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") - ForEach ($DisabledPackageSource in $maestroPrivateSources) { - Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource" +# Enables an internal package source by name, if found. Returns true if the package source was found and enabled, false otherwise. +function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSourceName) { + $DisabledPackageSource = $DisabledPackageSources.SelectSingleNode("add[@key='$PackageSourceName']") + if ($DisabledPackageSource) { + Write-Host "Enabling internal source '$($DisabledPackageSource.key)'." + # Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries $DisabledPackageSources.RemoveChild($DisabledPackageSource) + + AddCredential -Creds $creds -Source $DisabledPackageSource.Key -Username $userName -pwd $Password + return $true } + return $false } if (!(Test-Path $ConfigFile -PathType Leaf)) { @@ -121,15 +136,17 @@ $doc = New-Object System.Xml.XmlDocument $filename = (Get-Item $ConfigFile).FullName $doc.Load($filename) -# Get reference to or create one if none exist already +# Get reference to - fail if none exist $sources = $doc.DocumentElement.SelectSingleNode("packageSources") if ($sources -eq $null) { - $sources = $doc.CreateElement("packageSources") - $doc.DocumentElement.AppendChild($sources) | Out-Null + Write-PipelineTelemetryError -Category 'Build' -Message "Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 } $creds = $null +$feedSuffix = "v3/index.json" if ($Password) { + $feedSuffix = "v2" # Looks for a node. Create it if none is found. $creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials") if ($creds -eq $null) { @@ -138,34 +155,35 @@ if ($Password) { } } +$userName = "dn-bot" + # Check for disabledPackageSources; we'll enable any darc-int ones we find there $disabledSources = $doc.DocumentElement.SelectSingleNode("disabledPackageSources") if ($disabledSources -ne $null) { Write-Host "Checking for any darc-int disabled package sources in the disabledPackageSources node" - EnablePrivatePackageSources -DisabledPackageSources $disabledSources + EnableMaestroInternalPackageSources -DisabledPackageSources $disabledSources -Creds $creds } - -$userName = "dn-bot" - -# Insert credential nodes for Maestro's private feeds -InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password - -# 3.1 uses a different feed url format so it's handled differently here -$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']") -if ($dotnet31Source -ne $null) { - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password -} - -$dotnetVersions = @('5','6','7','8','9') +$dotnetVersions = @('5','6','7','8','9','10') foreach ($dotnetVersion in $dotnetVersions) { $feedPrefix = "dotnet" + $dotnetVersion; $dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']") if ($dotnetSource -ne $null) { - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password } } +# Check for dotnet-eng and add dotnet-eng-internal if present +$dotnetEngSource = $sources.SelectSingleNode("add[@key='dotnet-eng']") +if ($dotnetEngSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-eng-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + +# Check for dotnet-tools and add dotnet-tools-internal if present +$dotnetToolsSource = $sources.SelectSingleNode("add[@key='dotnet-tools']") +if ($dotnetToolsSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-tools-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + $doc.Save($filename) diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh old mode 100644 new mode 100755 index facb415ca6ff..b2163abbe71b --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # @@ -52,81 +53,139 @@ if [[ `uname -s` == "Darwin" ]]; then TB='' fi -# Ensure there is a ... section. -grep -i "" $ConfigFile -if [ "$?" != "0" ]; then - echo "Adding ... section." - ConfigNodeHeader="" - PackageSourcesTemplate="${TB}${NL}${TB}" +# Enables an internal package source by name, if found. Returns 0 if found and enabled, 1 if not found. +EnableInternalPackageSource() { + local PackageSourceName="$1" + + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return 1 # No disabled sources section + fi + + # Check if this source name is disabled + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Enabling internal source '$PackageSourceName'." + # Remove the disabled entry (including any surrounding comments or whitespace on the same line) + sed -i.bak "//d" "$ConfigFile" + + # Add the source name to PackageSources for credential handling + PackageSources+=("$PackageSourceName") + return 0 # Found and enabled + fi + + return 1 # Not found in disabled sources +} + +# Add source entry to PackageSources +AddPackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Check if source already exists + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Package source $SourceName already present and enabled." + PackageSources+=("$SourceName") + return + fi + + echo "Adding package source $SourceName" + PackageSourcesNodeFooter="" + PackageSourceTemplate="${TB}" + + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" "$ConfigFile" + PackageSources+=("$SourceName") +} + +# Adds or enables the package source with the given name +AddOrEnablePackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Try to enable if disabled, if not found then add new source + EnableInternalPackageSource "$SourceName" + if [ "$?" != "0" ]; then + AddPackageSource "$SourceName" "$SourceEndPoint" + fi +} - sed -i.bak "s|$ConfigNodeHeader|$ConfigNodeHeader${NL}$PackageSourcesTemplate|" $ConfigFile -fi +# Enable all darc-int package sources +EnableMaestroInternalPackageSources() { + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return # No disabled sources section + fi + + # Find all darc-int disabled sources + local DisabledDarcIntSources=() + DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' "$ConfigFile" | tr -d '"') + + for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do + if [[ $DisabledSourceName == darc-int* ]]; then + EnableInternalPackageSource "$DisabledSourceName" + fi + done +} -# Ensure there is a ... section. -grep -i "" $ConfigFile +# Ensure there is a ... section. +grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding ... section." - - PackageSourcesNodeFooter="" - PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile + Write-PipelineTelemetryError -Category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 fi PackageSources=() -# Ensure dotnet3.1-internal and dotnet3.1-internal-transport are in the packageSources if the public dotnet3.1 feeds are present -grep -i "... section. + grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + echo "Adding ... section." - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=('dotnet3.1-internal') - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal-transport to the packageSources." PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile fi - PackageSources+=('dotnet3.1-internal-transport') fi -DotNetVersions=('5' '6' '7' '8' '9') +# Check for disabledPackageSources; we'll enable any darc-int ones we find there +grep -i "" $ConfigFile > /dev/null +if [ "$?" == "0" ]; then + echo "Checking for any darc-int disabled package sources in the disabledPackageSources node" + EnableMaestroInternalPackageSources +fi + +DotNetVersions=('5' '6' '7' '8' '9' '10') for DotNetVersion in ${DotNetVersions[@]} ; do FeedPrefix="dotnet${DotNetVersion}"; - grep -i " /dev/null if [ "$?" == "0" ]; then - grep -i "" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal") - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding $FeedPrefix-internal-transport to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal-transport") + AddOrEnablePackageSource "$FeedPrefix-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal/nuget/$FeedSuffix" + AddOrEnablePackageSource "$FeedPrefix-internal-transport" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal-transport/nuget/$FeedSuffix" fi done +# Check for dotnet-eng and add dotnet-eng-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-eng-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$FeedSuffix" +fi + +# Check for dotnet-tools and add dotnet-tools-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-tools-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$FeedSuffix" +fi + # I want things split line by line PrevIFS=$IFS IFS=$'\n' @@ -139,29 +198,12 @@ if [ "$CredToken" ]; then # Check if there is no existing credential for this FeedName grep -i "<$FeedName>" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding credentials for $FeedName." + echo " Inserting credential for feed: $FeedName" PackageSourceCredentialsNodeFooter="" - NewCredential="${TB}${TB}<$FeedName>${NL}${NL}${NL}" + NewCredential="${TB}${TB}<$FeedName>${NL}${TB}${NL}${TB}${TB}${NL}${TB}${TB}" sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" $ConfigFile fi done fi - -# Re-enable any entries in disabledPackageSources where the feed name contains darc-int -grep -i "" $ConfigFile -if [ "$?" == "0" ]; then - DisabledDarcIntSources=() - echo "Re-enabling any disabled \"darc-int\" package sources in $ConfigFile" - DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' $ConfigFile | tr -d '"') - for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do - if [[ $DisabledSourceName == darc-int* ]] - then - OldDisableValue="" - NewDisableValue="" - sed -i.bak "s|$OldDisableValue|$NewDisableValue|" $ConfigFile - echo "Neutralized disablePackageSources entry for '$DisabledSourceName'" - fi - done -fi diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 438f9920c43e..8cfee107e7a3 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -7,6 +7,7 @@ Param( [string] $msbuildEngine = $null, [bool] $warnAsError = $true, [bool] $nodeReuse = $true, + [switch] $buildCheck = $false, [switch][Alias('r')]$restore, [switch] $deployDeps, [switch][Alias('b')]$build, @@ -20,6 +21,7 @@ Param( [switch] $publish, [switch] $clean, [switch][Alias('pb')]$productBuild, + [switch]$fromVMR, [switch][Alias('bl')]$binaryLog, [switch][Alias('nobl')]$excludeCIBinarylog, [switch] $ci, @@ -71,6 +73,9 @@ function Print-Usage() { Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." Write-Host " -excludePrereleaseVS Set to exclude build engines in prerelease versions of Visual Studio" 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." @@ -97,6 +102,7 @@ function Build { $bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' } $platformArg = if ($platform) { "/p:Platform=$platform" } else { '' } + $check = if ($buildCheck) { '/check' } else { '' } if ($projects) { # Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons. @@ -113,6 +119,7 @@ function Build { MSBuild $toolsetBuildProj ` $bl ` $platformArg ` + $check ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` /p:Restore=$restore ` @@ -122,11 +129,13 @@ 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 ` /p:Publish=$publish ` + /p:RestoreStaticGraphEnableBinaryLogger=$binaryLog ` @properties } diff --git a/eng/common/build.sh b/eng/common/build.sh index ac1ee8620cd2..9767bb411a4f 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -42,6 +42,8 @@ usage() echo " --prepareMachine Prepare machine for CI run, clean up processes after build" 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." @@ -63,6 +65,7 @@ restore=false build=false source_build=false product_build=false +from_vmr=false rebuild=false test=false integration_test=false @@ -76,6 +79,7 @@ clean=false warn_as_error=true node_reuse=true +build_check=false binary_log=false exclude_ci_binary_log=false pipelines_log=false @@ -87,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 @@ -127,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 ;; @@ -173,6 +180,9 @@ while [[ $# > 0 ]]; do node_reuse=$2 shift ;; + -buildcheck) + build_check=true + ;; -runtimesourcefeed) runtime_source_feed=$2 shift @@ -182,7 +192,7 @@ while [[ $# > 0 ]]; do shift ;; *) - properties="$properties $1" + properties+=("$1") ;; esac @@ -216,7 +226,7 @@ function Build { InitializeCustomToolset if [[ ! -z "$projects" ]]; then - properties="$properties /p:Projects=$projects" + properties+=("/p:Projects=$projects") fi local bl="" @@ -224,15 +234,21 @@ function Build { bl="/bl:\"$log_dir/Build.binlog\"" fi + local check="" + if [[ "$build_check" == true ]]; then + check="/check" + fi + MSBuild $_InitializeToolset \ $bl \ + $check \ /p:Configuration=$configuration \ /p:RepoRoot="$repo_root" \ /p:Restore=$restore \ /p:Build=$build \ - /p:DotNetBuildRepo=$product_build \ - /p:ArcadeBuildFromSource=$source_build \ + /p:DotNetBuild=$product_build \ /p:DotNetBuildSourceOnly=$source_build \ + /p:DotNetBuildFromVMR=$from_vmr \ /p:Rebuild=$rebuild \ /p:Test=$test \ /p:Pack=$pack \ @@ -240,7 +256,8 @@ function Build { /p:PerformanceTest=$performance_test \ /p:Sign=$sign \ /p:Publish=$publish \ - $properties + /p:RestoreStaticGraphEnableBinaryLogger=$binary_log \ + ${properties[@]+"${properties[@]}"} ExitWithExitCode 0 } diff --git a/eng/common/cibuild.sh b/eng/common/cibuild.sh index 1a02c0dec8fd..66e3b0ac61c3 100755 --- a/eng/common/cibuild.sh +++ b/eng/common/cibuild.sh @@ -13,4 +13,4 @@ while [[ -h $source ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" -. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ \ No newline at end of file +. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml index 8da43d3b5837..5ce518406198 100644 --- a/eng/common/core-templates/job/job.yml +++ b/eng/common/core-templates/job/job.yml @@ -19,11 +19,11 @@ parameters: # publishing defaults artifacts: '' enableMicrobuild: false + enableMicrobuildForMacAndLinux: false microbuildUseESRP: true enablePublishBuildArtifacts: false enablePublishBuildAssets: false enablePublishTestResults: false - enablePublishUsingPipelines: false enableBuildRetry: false mergeTestResults: false testRunTitle: '' @@ -74,9 +74,6 @@ jobs: - ${{ if ne(parameters.enableTelemetry, 'false') }}: - name: DOTNET_CLI_TELEMETRY_PROFILE value: '$(Build.Repository.Uri)' - - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: - - name: EnableRichCodeNavigation - value: 'true' # Retry signature validation up to three times, waiting 2 seconds between attempts. # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY @@ -128,23 +125,12 @@ jobs: - ${{ preStep }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - task: MicroBuildSigningPlugin@4 - displayName: Install MicroBuild plugin - inputs: - signType: $(_SignType) - zipSources: false - feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - ${{ if eq(parameters.microbuildUseESRP, true) }}: - ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea - ${{ else }}: - ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca - env: - TeamName: $(_TeamName) - MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' + - template: /eng/common/core-templates/steps/install-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} + microbuildUseESRP: ${{ parameters.microbuildUseESRP }} continueOnError: ${{ parameters.continueOnError }} - condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}: - task: NuGetAuthenticate@1 @@ -160,27 +146,15 @@ jobs: - ${{ each step in parameters.steps }}: - ${{ step }} - - ${{ if eq(parameters.enableRichCodeNavigation, true) }}: - - task: RichCodeNavIndexer@0 - displayName: RichCodeNav Upload - inputs: - languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} - environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }} - richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin - uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} - continueOnError: true - - ${{ each step in parameters.componentGovernanceSteps }}: - ${{ step }} - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: MicroBuildCleanup@1 - displayName: Execute Microbuild cleanup tasks - condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/core-templates/steps/cleanup-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} continueOnError: ${{ parameters.continueOnError }} - env: - TeamName: $(_TeamName) # Publish test results - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}: diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index edefa789d360..eefed3b667a4 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -4,7 +4,7 @@ parameters: # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool pool: '' - + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex GithubPat: $(BotAccount-dotnet-bot-repo-PAT) @@ -27,7 +27,7 @@ parameters: is1ESPipeline: '' jobs: - job: OneLocBuild${{ parameters.JobNameSuffix }} - + dependsOn: ${{ parameters.dependsOn }} displayName: OneLocBuild${{ parameters.JobNameSuffix }} @@ -52,13 +52,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows steps: @@ -86,8 +86,7 @@ jobs: isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }} ${{ if eq(parameters.CreatePr, true) }}: isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }} - ${{ if eq(parameters.RepoType, 'gitHub') }}: - isShouldReusePrSelected: ${{ parameters.ReusePr }} + isShouldReusePrSelected: ${{ parameters.ReusePr }} packageSourceAuth: patAuth patVariable: ${{ parameters.CeapexPat }} ${{ if eq(parameters.RepoType, 'gitHub') }}: @@ -100,22 +99,20 @@ jobs: mirrorBranch: ${{ parameters.MirrorBranch }} condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml - parameters: - is1ESPipeline: ${{ parameters.is1ESPipeline }} - args: - displayName: Publish Localization Files - pathToPublish: '$(Build.ArtifactStagingDirectory)/loc' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} + # Copy the locProject.json to the root of the Loc directory, then publish a pipeline artifact + - task: CopyFiles@2 + displayName: Copy LocProject.json + inputs: + SourceFolder: '$(System.DefaultWorkingDirectory)/eng/Localize/' + Contents: 'LocProject.json' + TargetFolder: '$(Build.ArtifactStagingDirectory)/loc' + condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml + - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: - displayName: Publish LocProject.json - pathToPublish: '$(System.DefaultWorkingDirectory)/eng/Localize/' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} \ No newline at end of file + targetPath: '$(Build.ArtifactStagingDirectory)/loc' + artifactName: 'Loc' + displayName: 'Publish Localization Files' + condition: ${{ parameters.condition }} diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 3cb20fb5041f..9afcb8ae1590 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -20,9 +20,6 @@ parameters: # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. runAsPublic: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing - publishUsingPipelines: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing publishAssetsImmediately: false @@ -32,6 +29,15 @@ parameters: is1ESPipeline: '' + # 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' + repositoryAlias: self officialBuildId: '' @@ -68,13 +74,13 @@ jobs: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: @@ -84,18 +90,44 @@ jobs: - checkout: ${{ parameters.repositoryAlias }} fetchDepth: 3 clean: true - - - task: DownloadBuildArtifacts@0 - displayName: Download artifact - inputs: - artifactName: AssetManifests - downloadPath: '$(Build.StagingDirectory)/Download' - checkDownloadedFiles: true - condition: ${{ parameters.condition }} - continueOnError: ${{ parameters.continueOnError }} + + - ${{ if eq(parameters.isAssetlessBuild, 'false') }}: + - ${{ 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 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + - task: AzureCLI@2 displayName: Publish Build Assets inputs: @@ -104,10 +136,13 @@ jobs: scriptLocation: scriptPath scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet - /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' + /p:ManifestsPath='$(Build.StagingDirectory)/AssetManifests' + /p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }} /p:MaestroApiEndpoint=https://maestro.dot.net - /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} /p:OfficialBuildId=$(OfficialBuildId) + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' + condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} @@ -129,6 +164,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 }} @@ -138,7 +184,7 @@ jobs: publishLocation: Container artifactName: ReleaseConfigs - - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: + - ${{ if or(eq(parameters.publishAssetsImmediately, 'true'), eq(parameters.isAssetlessBuild, 'true')) }}: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: BARBuildId: ${{ parameters.BARBuildId }} @@ -164,6 +210,9 @@ jobs: -WaitPublishingFinish true -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: - template: /eng/common/core-templates/steps/publish-logs.yml diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index d943748ac10e..1997c2ae00d7 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -12,9 +12,10 @@ parameters: # The name of the job. This is included in the job ID. # targetRID: '' # The name of the target RID to use, instead of the one auto-detected by Arcade. - # nonPortable: false + # portableBuild: false # Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than - # linux-x64), and compiling against distro-provided packages rather than portable ones. + # linux-x64), and compiling against distro-provided packages rather than portable ones. The + # default is portable mode. # skipPublishValidation: false # Disables publishing validation. By default, a check is performed to ensure no packages are # published by source-build. @@ -33,9 +34,6 @@ parameters: # container and pool. platform: {} - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -62,7 +60,7 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals build.ubuntu.2004.amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] image: build.azurelinux.3.amd64 @@ -71,10 +69,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} @@ -96,4 +94,3 @@ jobs: parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} platform: ${{ parameters.platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} diff --git a/eng/common/core-templates/job/source-index-stage1.yml b/eng/common/core-templates/job/source-index-stage1.yml index ddf8c2e00d80..76baf5c27258 100644 --- a/eng/common/core-templates/job/source-index-stage1.yml +++ b/eng/common/core-templates/job/source-index-stage1.yml @@ -1,8 +1,5 @@ parameters: runAsPublic: false - sourceIndexUploadPackageVersion: 2.0.0-20250425.2 - sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2 - sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" preSteps: [] binlogPath: artifacts/log/Debug/Build.binlog @@ -16,12 +13,6 @@ jobs: dependsOn: ${{ parameters.dependsOn }} condition: ${{ parameters.condition }} variables: - - name: SourceIndexUploadPackageVersion - value: ${{ parameters.sourceIndexUploadPackageVersion }} - - name: SourceIndexProcessBinlogPackageVersion - value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }} - - name: SourceIndexPackageSource - value: ${{ parameters.sourceIndexPackageSource }} - name: BinlogPath value: ${{ parameters.binlogPath }} - template: /eng/common/core-templates/variables/pool-providers.yml @@ -34,12 +25,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $(DncEngPublicBuildPool) - image: 1es-windows-2022-open - os: windows + image: windows.vs2026preview.scout.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 - os: windows + image: windows.vs2026preview.scout.amd64 steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: @@ -47,35 +36,9 @@ jobs: - ${{ each preStep in parameters.preSteps }}: - ${{ preStep }} - - - task: UseDotNet@2 - displayName: Use .NET 8 SDK - inputs: - packageType: sdk - version: 8.0.x - installationPath: $(Agent.TempDirectory)/dotnet - workingDirectory: $(Agent.TempDirectory) - - - script: | - $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - displayName: Download Tools - # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. - workingDirectory: $(Agent.TempDirectory) - - script: ${{ parameters.sourceIndexBuildCommand }} displayName: Build Repository - - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output - displayName: Process Binlog into indexable sln - - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: AzureCLI@2 - displayName: Log in to Azure and upload stage1 artifacts to source index - inputs: - azureSubscription: 'SourceDotNet Stage1 Publish' - addSpnToEnvironment: true - scriptType: 'ps' - scriptLocation: 'inlineScript' - inlineScript: | - $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 + - template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + binLogPath: ${{ parameters.binLogPath }} diff --git a/eng/common/core-templates/jobs/codeql-build.yml b/eng/common/core-templates/jobs/codeql-build.yml index 4571a7864df6..dbc14ac580a2 100644 --- a/eng/common/core-templates/jobs/codeql-build.yml +++ b/eng/common/core-templates/jobs/codeql-build.yml @@ -15,7 +15,6 @@ jobs: enablePublishBuildArtifacts: false enablePublishTestResults: false enablePublishBuildAssets: false - enablePublishUsingPipelines: false enableTelemetry: true variables: diff --git a/eng/common/core-templates/jobs/jobs.yml b/eng/common/core-templates/jobs/jobs.yml index bf33cdc2cc77..01ada7476651 100644 --- a/eng/common/core-templates/jobs/jobs.yml +++ b/eng/common/core-templates/jobs/jobs.yml @@ -5,9 +5,6 @@ parameters: # Optional: Include PublishBuildArtifacts task enablePublishBuildArtifacts: false - # Optional: Enable publishing using release pipelines - enablePublishUsingPipelines: false - # Optional: Enable running the source-build jobs to build repo from source enableSourceBuild: false @@ -30,6 +27,9 @@ parameters: # Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage. publishAssetsImmediately: false + # Optional: 🌤️ or not the build has assets it wants to publish to BAR + isAssetlessBuild: false + # Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml) artifactsPublishingAdditionalParameters: '' signingValidationAdditionalParameters: '' @@ -85,7 +85,6 @@ jobs: - template: /eng/common/core-templates/jobs/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} - allCompletedJobId: Source_Build_Complete ${{ each parameter in parameters.sourceBuildParameters }}: ${{ parameter.key }}: ${{ parameter.value }} @@ -98,7 +97,7 @@ jobs: ${{ parameter.key }}: ${{ parameter.value }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, ''), eq(parameters.isAssetlessBuild, true)) }}: - template: ../job/publish-build-assets.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} @@ -110,12 +109,10 @@ jobs: - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: - ${{ each job in parameters.jobs }}: - ${{ job.job }} - - ${{ if eq(parameters.enableSourceBuild, true) }}: - - Source_Build_Complete runAsPublic: ${{ parameters.runAsPublic }} - publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} - publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }} + publishAssetsImmediately: ${{ or(parameters.publishAssetsImmediately, parameters.isAssetlessBuild) }} + isAssetlessBuild: ${{ parameters.isAssetlessBuild }} enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} diff --git a/eng/common/core-templates/jobs/source-build.yml b/eng/common/core-templates/jobs/source-build.yml index 0b408a67bd51..d92860cba208 100644 --- a/eng/common/core-templates/jobs/source-build.yml +++ b/eng/common/core-templates/jobs/source-build.yml @@ -2,28 +2,19 @@ parameters: # This template adds arcade-powered source-build to CI. A job is created for each platform, as # well as an optional server job that completes when all platform jobs complete. - # The name of the "join" job for all source-build platforms. If set to empty string, the job is - # not included. Existing repo pipelines can use this job depend on all source-build jobs - # completing without maintaining a separate list of every single job ID: just depend on this one - # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'. - allCompletedJobId: '' - # See /eng/common/core-templates/job/source-build.yml jobNamePrefix: 'Source_Build' # This is the default platform provided by Arcade, intended for use by a managed-only repo. defaultManagedPlatform: name: 'Managed' - container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-amd64' # Defines the platforms on which to run build jobs. One job is created for each platform, and the # object in this array is sent to the job template as 'platform'. If no platforms are specified, # one job runs on 'defaultManagedPlatform'. platforms: [] - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -34,23 +25,12 @@ parameters: jobs: -- ${{ if ne(parameters.allCompletedJobId, '') }}: - - job: ${{ parameters.allCompletedJobId }} - displayName: Source-Build Complete - pool: server - dependsOn: - - ${{ each platform in parameters.platforms }}: - - ${{ parameters.jobNamePrefix }}_${{ platform.name }} - - ${{ if eq(length(parameters.platforms), 0) }}: - - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }} - - ${{ each platform in parameters.platforms }}: - template: /eng/common/core-templates/job/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} - ${{ if eq(length(parameters.platforms), 0) }}: @@ -59,5 +39,4 @@ jobs: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ parameters.defaultManagedPlatform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 864427d9694a..2df4acb76859 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -60,6 +60,11 @@ parameters: artifactNames: '' downloadArtifacts: true + - name: isAssetlessBuild + type: boolean + displayName: Is Assetless Build + default: false + # These parameters let the user customize the call to sdk-task.ps1 for publishing # symbols & general artifacts as well as for signing validation - name: symbolPublishingAdditionalParameters @@ -115,18 +120,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: windows.vs2022.amd64 + image: windows.vs2026preview.scout.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml @@ -159,18 +164,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -188,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 @@ -223,18 +225,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -284,18 +286,18 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO - image: 1ESPT-Windows2022 + image: 1ESPT-Windows2025 demands: Cmd os: windows # If it's not devdiv, it's dnceng ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2026.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -305,6 +307,13 @@ stages: - task: NuGetAuthenticate@1 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + # Darc is targeting 8.0, so make sure it's installed - task: UseDotNet@2 inputs: @@ -325,3 +334,6 @@ stages: -RequireDefaultChannels ${{ parameters.requireDefaultChannels }} -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' diff --git a/eng/common/core-templates/steps/cleanup-microbuild.yml b/eng/common/core-templates/steps/cleanup-microbuild.yml new file mode 100644 index 000000000000..c0fdcd3379d7 --- /dev/null +++ b/eng/common/core-templates/steps/cleanup-microbuild.yml @@ -0,0 +1,28 @@ +parameters: + # Enable cleanup tasks for MicroBuild + enableMicrobuild: false + # Enable cleanup tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - task: MicroBuildCleanup@1 + displayName: Execute Microbuild cleanup tasks + condition: and( + always(), + or( + and( + eq(variables['Agent.Os'], 'Windows_NT'), + in(variables['_SignType'], 'real', 'test') + ), + and( + ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }}, + ne(variables['Agent.Os'], 'Windows_NT'), + eq(variables['_SignType'], 'real') + ) + )) + continueOnError: ${{ parameters.continueOnError }} + env: + TeamName: $(_TeamName) diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml index 7f5b84c4cb82..c05f65027979 100644 --- a/eng/common/core-templates/steps/generate-sbom.yml +++ b/eng/common/core-templates/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 9.0.0 + PackageVersion: 10.0.0 BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom diff --git a/eng/common/core-templates/steps/get-delegation-sas.yml b/eng/common/core-templates/steps/get-delegation-sas.yml index 9db5617ea7de..d2901470a7f0 100644 --- a/eng/common/core-templates/steps/get-delegation-sas.yml +++ b/eng/common/core-templates/steps/get-delegation-sas.yml @@ -31,16 +31,7 @@ steps: # Calculate the expiration of the SAS token and convert to UTC $expiry = (Get-Date).AddHours(${{ parameters.expiryInHours }}).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - # Temporarily work around a helix issue where SAS tokens with / in them will cause incorrect downloads - # of correlation payloads. https://github.com/dotnet/dnceng/issues/3484 - $sas = "" - do { - $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to generate SAS token." - exit 1 - } - } while($sas.IndexOf('/') -ne -1) + $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv if ($LASTEXITCODE -ne 0) { Write-Error "Failed to generate SAS token." diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml new file mode 100644 index 000000000000..553fce66b940 --- /dev/null +++ b/eng/common/core-templates/steps/install-microbuild.yml @@ -0,0 +1,110 @@ +parameters: + # Enable install tasks for MicroBuild + enableMicrobuild: false + # Enable install tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + # Determines whether the ESRP service connection information should be passed to the signing plugin. + # This overlaps with _SignType to some degree. We only need the service connection for real signing. + # It's important that the service connection not be passed to the MicroBuildSigningPlugin task in this place. + # Doing so will cause the service connection to be authorized for the pipeline, which isn't allowed and won't work for non-prod. + # Unfortunately, _SignType can't be used to exclude the use of the service connection in non-real sign scenarios. The + # variable is not available in template expression. _SignType has a very large proliferation across .NET, so replacing it is tough. + microbuildUseESRP: true + # Microbuild installation directory + microBuildOutputFolder: $(Agent.TempDirectory)/MicroBuild + + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}: + # Needed to download the MicroBuild plugin nupkgs on Mac and Linux when nuget.exe is unavailable + - task: UseDotNet@2 + displayName: Install .NET 8.0 SDK for MicroBuild Plugin + inputs: + packageType: sdk + version: 8.0.x + installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + set -euo pipefail + + # UseDotNet@2 prepends the dotnet executable path to the PATH variable, so we can call dotnet directly + version=$(dotnet --version) + cat << 'EOF' > ${{ parameters.microBuildOutputFolder }}/global.json + { + "sdk": { + "version": "$version", + "paths": [ + "${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild" + ], + "errorMessage": "The .NET SDK version $version is required to install the MicroBuild signing plugin." + } + } + EOF + displayName: 'Add global.json to MicroBuild Installation path' + workingDirectory: ${{ parameters.microBuildOutputFolder }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + REM Check if ESRP is disabled while SignType is real + if /I "${{ parameters.microbuildUseESRP }}"=="false" if /I "$(_SignType)"=="real" ( + echo Error: ESRP must be enabled when SignType is real. + exit /b 1 + ) + displayName: 'Validate ESRP usage (Windows)' + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT')) + - script: | + # Check if ESRP is disabled while SignType is real + if [ "${{ parameters.microbuildUseESRP }}" = "false" ] && [ "$(_SignType)" = "real" ]; then + echo "Error: ESRP must be enabled when SignType is real." + exit 1 + fi + displayName: 'Validate ESRP usage (Non-Windows)' + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + # Two different MB install steps. This is due to not being able to use the agent OS during + # YAML expansion, and Windows vs. Linux/Mac uses different service connections. However, + # we can avoid including the MB install step if not enabled at all. This avoids a bunch of + # extra pipeline authorizations, since most pipelines do not sign on non-Windows. + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test')) + + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}: + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (non-Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + workingDirectory: ${{ parameters.microBuildOutputFolder }} + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ${{ else }}: + ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real')) diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 0623ac6e1123..a9ea99ba6aaa 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -26,15 +26,18 @@ steps: # If the file exists - sensitive data for redaction will be sourced from it # (single entry per line, lines starting with '# ' are considered comments and skipped) arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs' - -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -BinlogToolVersion '${{parameters.BinlogToolVersion}}' -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' '$(publishing-dnceng-devdiv-code-r-build-re)' - '$(MaestroAccessToken)' '$(dn-bot-all-orgs-artifact-feeds-rw)' '$(akams-client-id)' '$(microsoft-symbol-server-pat)' '$(symweb-symbol-server-pat)' + '$(dnceng-symbol-server-pat)' '$(dn-bot-all-orgs-build-rw-code-rw)' + '$(System.AccessToken)' ${{parameters.CustomSensitiveDataList}} continueOnError: true condition: always() @@ -45,6 +48,7 @@ steps: SourceFolder: '$(System.DefaultWorkingDirectory)/PostBuildLogs' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/PostBuildLogs' + condition: always() - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml index 7846584d2a77..b9c86c18ae42 100644 --- a/eng/common/core-templates/steps/source-build.yml +++ b/eng/common/core-templates/steps/source-build.yml @@ -11,10 +11,6 @@ parameters: # for details. The entire object is described in the 'job' template for simplicity, even though # the usage of the properties on this object is split between the 'job' and 'steps' templates. platform: {} - - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: false steps: @@ -23,25 +19,12 @@ steps: set -x df -h - # If file changes are detected, set CopyWipIntoInnerSourceBuildRepo to copy the WIP changes into the inner source build repo. - internalRestoreArgs= - if ! git diff --quiet; then - internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true' - # The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo. - # This only works if there is a username/email configured, which won't be the case in most CI runs. - git config --get user.email - if [ $? -ne 0 ]; then - git config user.email dn-bot@microsoft.com - git config user.name dn-bot - fi - fi - # If building on the internal project, the internal storage variable may be available (usually only if needed) # In that case, add variables to allow the download of internal runtimes if the specified versions are not found # in the default public locations. internalRuntimeDownloadArgs= if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey '$(dotnetbuilds-internal-container-read-token-base64)'' fi buildConfig=Release @@ -50,88 +33,33 @@ steps: buildConfig='$(_BuildConfig)' fi - officialBuildArgs= - if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then - officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)' - fi - targetRidArgs= if [ '${{ parameters.platform.targetRID }}' != '' ]; then targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' fi - runtimeOsArgs= - if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then - runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' - fi - - baseOsArgs= - if [ '${{ parameters.platform.baseOS }}' != '' ]; then - baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' - fi - - publishArgs= - if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then - publishArgs='--publish' - fi - - assetManifestFileName=SourceBuild_RidSpecific.xml - if [ '${{ parameters.platform.name }}' != '' ]; then - assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml + portableBuildArgs= + if [ '${{ parameters.platform.portableBuild }}' != '' ]; then + portableBuildArgs='/p:PortableBuild=${{ parameters.platform.portableBuild }}' fi ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \ --configuration $buildConfig \ - --restore --build --pack $publishArgs -bl \ + --restore --build --pack -bl \ + --source-build \ ${{ parameters.platform.buildArguments }} \ - $officialBuildArgs \ $internalRuntimeDownloadArgs \ - $internalRestoreArgs \ $targetRidArgs \ - $runtimeOsArgs \ - $baseOsArgs \ - /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ - /p:ArcadeBuildFromSource=true \ - /p:DotNetBuildSourceOnly=true \ - /p:DotNetBuildRepo=true \ - /p:AssetManifestFileName=$assetManifestFileName + $portableBuildArgs \ displayName: Build -# Upload build logs for diagnosis. -- task: CopyFiles@2 - displayName: Prepare BuildLogs staging directory - inputs: - SourceFolder: '$(System.DefaultWorkingDirectory)' - Contents: | - **/*.log - **/*.binlog - artifacts/sb/prebuilt-report/** - TargetFolder: '$(Build.StagingDirectory)/BuildLogs' - CleanTargetFolder: true - continueOnError: true - condition: succeededOrFailed() - - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: displayName: Publish BuildLogs - targetPath: '$(Build.StagingDirectory)/BuildLogs' + targetPath: artifacts/log/${{ coalesce(variables._BuildConfig, 'Release') }} artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) continueOnError: true condition: succeededOrFailed() sbomEnabled: false # we don't need SBOM for logs - -# Manually inject component detection so that we can ignore the source build upstream cache, which contains -# a nupkg cache of input packages (a local feed). -# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir' -# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets -- template: /eng/common/core-templates/steps/component-governance.yml - parameters: - displayName: Component Detection (Exclude upstream cache) - is1ESPipeline: ${{ parameters.is1ESPipeline }} - ${{ if eq(length(parameters.componentGovernanceIgnoreDirectories), 0) }}: - componentGovernanceIgnoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache' - ${{ else }}: - componentGovernanceIgnoreDirectories: ${{ join(',', parameters.componentGovernanceIgnoreDirectories) }} - disableComponentGovernance: ${{ eq(variables['System.TeamProject'], 'public') }} diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..e9a694afa58e --- /dev/null +++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,35 @@ +parameters: + sourceIndexUploadPackageVersion: 2.0.0-20250818.1 + sourceIndexProcessBinlogPackageVersion: 1.0.1-20250818.1 + sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json + binlogPath: artifacts/log/Debug/Build.binlog + +steps: +- task: UseDotNet@2 + displayName: "Source Index: Use .NET 9 SDK" + inputs: + packageType: sdk + version: 9.0.x + installationPath: $(Agent.TempDirectory)/dotnet + workingDirectory: $(Agent.TempDirectory) + +- script: | + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + displayName: "Source Index: Download netsourceindex Tools" + # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. + workingDirectory: $(Agent.TempDirectory) + +- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output + displayName: "Source Index: Process Binlog into indexable sln" + +- ${{ if and(ne(parameters.runAsPublic, 'true'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: AzureCLI@2 + displayName: "Source Index: Upload Source Index stage1 artifacts to Azure" + inputs: + azureSubscription: 'SourceDotNet Stage1 Publish' + addSpnToEnvironment: true + scriptType: 'ps' + scriptLocation: 'inlineScript' + inlineScript: | + $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 diff --git a/eng/common/cross/arm64/tizen/tizen.patch b/eng/common/cross/arm64/tizen/tizen.patch index af7c8be05906..2cebc547382e 100644 --- a/eng/common/cross/arm64/tizen/tizen.patch +++ b/eng/common/cross/arm64/tizen/tizen.patch @@ -5,5 +5,5 @@ diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-littleaarch64) --GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) ) +-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-aarch64.so.1 ) ) +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-aarch64.so.1 ) ) diff --git a/eng/common/cross/build-android-rootfs.sh b/eng/common/cross/build-android-rootfs.sh index 7e9ba2b75ed3..fbd8d80848a6 100755 --- a/eng/common/cross/build-android-rootfs.sh +++ b/eng/common/cross/build-android-rootfs.sh @@ -6,10 +6,11 @@ usage() { echo "Creates a toolchain and sysroot used for cross-compiling for Android." echo - echo "Usage: $0 [BuildArch] [ApiLevel]" + echo "Usage: $0 [BuildArch] [ApiLevel] [--ndk NDKVersion]" echo echo "BuildArch is the target architecture of Android. Currently only arm64 is supported." echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html" + echo "NDKVersion is the version of Android NDK. The default is r21. See https://developer.android.com/ndk/downloads/revision_history" echo echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior" echo "by setting the TOOLCHAIN_DIR environment variable" @@ -25,10 +26,15 @@ __BuildArch=arm64 __AndroidArch=aarch64 __AndroidToolchain=aarch64-linux-android -for i in "$@" - do - lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" - case $lowerI in +while :; do + if [[ "$#" -le 0 ]]; then + break + fi + + i=$1 + + lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" + case $lowerI in -?|-h|--help) usage exit 1 @@ -43,6 +49,10 @@ for i in "$@" __AndroidArch=arm __AndroidToolchain=arm-linux-androideabi ;; + --ndk) + shift + __NDK_Version=$1 + ;; *[0-9]) __ApiLevel=$i ;; @@ -50,8 +60,17 @@ for i in "$@" __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i" ;; esac + shift done +if [[ "$__NDK_Version" == "r21" ]] || [[ "$__NDK_Version" == "r22" ]]; then + __NDK_File_Arch_Spec=-x86_64 + __SysRoot=sysroot +else + __NDK_File_Arch_Spec= + __SysRoot=toolchains/llvm/prebuilt/linux-x86_64/sysroot +fi + # Obtain the location of the bash script to figure out where the root of the repo is. __ScriptBaseDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -78,6 +97,7 @@ fi echo "Target API level: $__ApiLevel" echo "Target architecture: $__BuildArch" +echo "NDK version: $__NDK_Version" echo "NDK location: $__NDK_Dir" echo "Target Toolchain location: $__ToolchainDir" @@ -85,8 +105,8 @@ echo "Target Toolchain location: $__ToolchainDir" if [ ! -d $__NDK_Dir ]; then echo Downloading the NDK into $__NDK_Dir mkdir -p $__NDK_Dir - wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip - unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__CrossDir + wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux$__NDK_File_Arch_Spec.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux.zip + unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux.zip -d $__CrossDir fi if [ ! -d $__lldb_Dir ]; then @@ -116,16 +136,11 @@ for path in $(wget -qO- https://packages.termux.dev/termux-main-21/dists/stable/ fi done -cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/sysroot/usr/" +cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/$__SysRoot/usr/" # Generate platform file for build.sh script to assign to __DistroRid echo "Generating platform file..." -echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/sysroot/android_platform - -echo "Now to build coreclr, libraries and installers; run:" -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory coreclr -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory libraries -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory installer +echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/$__SysRoot/android_platform + +echo "Now to build coreclr, libraries and host; run:" +echo ROOTFS_DIR=$(realpath $__ToolchainDir/$__SysRoot) ./build.sh clr+libs+host --cross --arch $__BuildArch diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 4b5e8d7166bd..8abfb71f7275 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -5,7 +5,7 @@ set -e usage() { echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir ]" - echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86" + echo "BuildArch can be: arm(default), arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64, x86" echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine" echo " for alpine can be specified with version: alpineX.YY or alpineedge" echo " for FreeBSD can be: freebsd13, freebsd14" @@ -15,6 +15,7 @@ usage() echo "llvmx[.y] - optional, LLVM version for LLVM related packages." echo "--skipunmount - optional, will skip the unmount of rootfs folder." echo "--skipsigcheck - optional, will skip package signature checks (allowing untrusted packages)." + echo "--skipemulation - optional, will skip qemu and debootstrap requirement when building environment for debian based systems." echo "--use-mirror - optional, use mirror URL to fetch resources, when available." echo "--jobs N - optional, restrict to N jobs." exit 1 @@ -52,28 +53,27 @@ __UbuntuPackages+=" symlinks" __UbuntuPackages+=" libicu-dev" __UbuntuPackages+=" liblttng-ust-dev" __UbuntuPackages+=" libunwind8-dev" -__UbuntuPackages+=" libnuma-dev" __AlpinePackages+=" gettext-dev" __AlpinePackages+=" icu-dev" __AlpinePackages+=" libunwind-dev" __AlpinePackages+=" lttng-ust-dev" __AlpinePackages+=" compiler-rt" -__AlpinePackages+=" numactl-dev" # runtime libraries' dependencies __UbuntuPackages+=" libcurl4-openssl-dev" __UbuntuPackages+=" libkrb5-dev" __UbuntuPackages+=" libssl-dev" __UbuntuPackages+=" zlib1g-dev" +__UbuntuPackages+=" libbrotli-dev" __AlpinePackages+=" curl-dev" __AlpinePackages+=" krb5-dev" __AlpinePackages+=" openssl-dev" __AlpinePackages+=" zlib-dev" -__FreeBSDBase="13.3-RELEASE" -__FreeBSDPkg="1.17.0" +__FreeBSDBase="13.4-RELEASE" +__FreeBSDPkg="1.21.3" __FreeBSDABI="13" __FreeBSDPackages="libunwind" __FreeBSDPackages+=" icu" @@ -91,18 +91,18 @@ __HaikuPackages="gcc_syslibs" __HaikuPackages+=" gcc_syslibs_devel" __HaikuPackages+=" gmp" __HaikuPackages+=" gmp_devel" -__HaikuPackages+=" icu66" -__HaikuPackages+=" icu66_devel" +__HaikuPackages+=" icu[0-9]+" +__HaikuPackages+=" icu[0-9]*_devel" __HaikuPackages+=" krb5" __HaikuPackages+=" krb5_devel" __HaikuPackages+=" libiconv" __HaikuPackages+=" libiconv_devel" -__HaikuPackages+=" llvm12_libunwind" -__HaikuPackages+=" llvm12_libunwind_devel" +__HaikuPackages+=" llvm[0-9]*_libunwind" +__HaikuPackages+=" llvm[0-9]*_libunwind_devel" __HaikuPackages+=" mpfr" __HaikuPackages+=" mpfr_devel" -__HaikuPackages+=" openssl" -__HaikuPackages+=" openssl_devel" +__HaikuPackages+=" openssl3" +__HaikuPackages+=" openssl3_devel" __HaikuPackages+=" zlib" __HaikuPackages+=" zlib_devel" @@ -128,10 +128,12 @@ __AlpineKeys=' 616adfeb:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU\npNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X\n0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6\nADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ\nraQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy\nKLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj\n/QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H\nKuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs\nmFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1\n/J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq\nXIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4\nVORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== 616ae350:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0\nXkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ\npiM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46\nxLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP\nODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM\nEyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr\nDzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+\nf53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF\nHwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk\nOk9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6\n9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT\nJZDr++FjKrnnijbyNF8b98UCAwEAAQ== 616db30d:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0\nlIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm\na6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw\ntO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C\nUS/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP\nhP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv\nLSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0\nx9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF\nwmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG\nLPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV\nGZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C\n8CM1S15HxV78s9dFntEqIokCAwEAAQ== +66ba20fe:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfB12w4ZgqsXWZDfUAV/\n6Y4aHUKIu3q4SXrNZ7CXF9nXoAVYrS7NAxJdAodsY3vPCN0g5O8DFXR+390LdOuQ\n+HsGKCc1k5tX5ZXld37EZNTNSbR0k+NKhd9h6X3u6wqPOx7SIKxwAQR8qeeFq4pP\nrt9GAGlxtuYgzIIcKJPwE0dZlcBCg+GnptCUZXp/38BP1eYC+xTXSL6Muq1etYfg\nodXdb7Yl+2h1IHuOwo5rjgY5kpY7GcAs8AjGk3lDD/av60OTYccknH0NCVSmPoXK\nvrxDBOn0LQRNBLcAfnTKgHrzy0Q5h4TNkkyTgxkoQw5ObDk9nnabTxql732yy9BY\ns+hM9+dSFO1HKeVXreYSA2n1ndF18YAvAumzgyqzB7I4pMHXq1kC/8bONMJxwSkS\nYm6CoXKyavp7RqGMyeVpRC7tV+blkrrUml0BwNkxE+XnwDRB3xDV6hqgWe0XrifD\nYTfvd9ScZQP83ip0r4IKlq4GMv/R5shcCRJSkSZ6QSGshH40JYSoiwJf5FHbj9ND\n7do0UAqebWo4yNx63j/wb2ULorW3AClv0BCFSdPsIrCStiGdpgJDBR2P2NZOCob3\nG9uMj+wJD6JJg2nWqNJxkANXX37Qf8plgzssrhrgOvB0fjjS7GYhfkfmZTJ0wPOw\nA8+KzFseBh4UFGgue78KwgkCAwEAAQ== ' __Keyring= __KeyringFile="/usr/share/keyrings/ubuntu-archive-keyring.gpg" __SkipSigCheck=0 +__SkipEmulation=0 __UseMirror=0 __UnprocessedBuildArgs= @@ -162,9 +164,13 @@ while :; do armel) __BuildArch=armel __UbuntuArch=armel - __UbuntuRepo="http://ftp.debian.org/debian/" - __CodeName=jessie + __UbuntuRepo="http://archive.debian.org/debian/" + __CodeName=buster __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __LLDB_Package="liblldb-6.0-dev" + __UbuntuPackages="${__UbuntuPackages// libomp-dev/}" + __UbuntuPackages="${__UbuntuPackages// libomp5/}" + __UbuntuSuites= ;; armv6) __BuildArch=armv6 @@ -180,6 +186,18 @@ while :; do __Keyring="--keyring $__KeyringFile" fi ;; + loongarch64) + __BuildArch=loongarch64 + __AlpineArch=loongarch64 + __QEMUArch=loongarch64 + __UbuntuArch=loong64 + __UbuntuSuites=unreleased + __LLDB_Package="liblldb-19-dev" + + if [[ "$__CodeName" == "sid" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; riscv64) __BuildArch=riscv64 __AlpineArch=riscv64 @@ -264,44 +282,21 @@ while :; do ;; xenial) # Ubuntu 16.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=xenial - fi - ;; - zesty) # Ubuntu 17.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=zesty - fi + __CodeName=xenial ;; bionic) # Ubuntu 18.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=bionic - fi + __CodeName=bionic ;; focal) # Ubuntu 20.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=focal - fi + __CodeName=focal ;; jammy) # Ubuntu 22.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=jammy - fi + __CodeName=jammy ;; noble) # Ubuntu 24.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=noble - fi - if [[ -n "$__LLDB_Package" ]]; then - __LLDB_Package="liblldb-18-dev" - fi - ;; - jessie) # Debian 8 - __CodeName=jessie - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" - - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __CodeName=noble + if [[ -z "$__LLDB_Package" ]]; then + __LLDB_Package="liblldb-19-dev" fi ;; stretch) # Debian 9 @@ -319,7 +314,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="http://archive.debian.org/debian/" fi ;; bullseye) # Debian 11 @@ -340,10 +335,28 @@ while :; do ;; sid) # Debian sid __CodeName=sid - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __UbuntuSuites= - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + # Debian-Ports architectures need different values + case "$__UbuntuArch" in + amd64|arm64|armel|armhf|i386|mips64el|ppc64el|riscv64|s390x) + __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.debian.org/debian/" + fi + ;; + *) + __KeyringFile="/usr/share/keyrings/debian-ports-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; + esac + + if [[ -e "$__KeyringFile" ]]; then + __Keyring="--keyring $__KeyringFile" fi ;; tizen) @@ -370,7 +383,7 @@ while :; do ;; freebsd14) __CodeName=freebsd - __FreeBSDBase="14.0-RELEASE" + __FreeBSDBase="14.2-RELEASE" __FreeBSDABI="14" __SkipUnmount=1 ;; @@ -388,6 +401,9 @@ while :; do --skipsigcheck) __SkipSigCheck=1 ;; + --skipemulation) + __SkipEmulation=1 + ;; --rootfsdir|-rootfsdir) shift __RootfsDir="$1" @@ -420,16 +436,15 @@ case "$__AlpineVersion" in elif [[ "$__AlpineArch" == "x86" ]]; then __AlpineVersion=3.17 # minimum version that supports lldb-dev __AlpinePackages+=" llvm15-libs" - elif [[ "$__AlpineArch" == "riscv64" ]]; then + elif [[ "$__AlpineArch" == "riscv64" || "$__AlpineArch" == "loongarch64" ]]; then + __AlpineVersion=3.21 # minimum version that supports lldb-dev + __AlpinePackages+=" llvm19-libs" + elif [[ -n "$__AlpineMajorVersion" ]]; then + # use whichever alpine version is provided and select the latest toolchain libs __AlpineLlvmLibsLookup=1 - __AlpineVersion=edge # minimum version with APKINDEX.tar.gz (packages archive) else __AlpineVersion=3.13 # 3.13 to maximize compatibility __AlpinePackages+=" llvm10-libs" - - if [[ "$__AlpineArch" == "armv7" ]]; then - __AlpinePackages="${__AlpinePackages//numactl-dev/}" - fi fi esac @@ -439,15 +454,6 @@ if [[ "$__AlpineVersion" =~ 3\.1[345] ]]; then __AlpinePackages="${__AlpinePackages/compiler-rt/compiler-rt-static}" fi -if [[ "$__BuildArch" == "armel" ]]; then - __LLDB_Package="lldb-3.5-dev" -fi - -if [[ "$__CodeName" == "xenial" && "$__UbuntuArch" == "armhf" ]]; then - # libnuma-dev is not available on armhf for xenial - __UbuntuPackages="${__UbuntuPackages//libnuma-dev/}" -fi - __UbuntuPackages+=" ${__LLDB_Package:-}" if [[ -z "$__UbuntuRepo" ]]; then @@ -496,7 +502,7 @@ if [[ "$__CodeName" == "alpine" ]]; then arch="$(uname -m)" ensureDownloadTool - + if [[ "$__hasWget" == 1 ]]; then wget -P "$__ApkToolsDir" "https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v$__ApkToolsVersion/$arch/apk.static" else @@ -512,11 +518,6 @@ if [[ "$__CodeName" == "alpine" ]]; then echo "$__ApkToolsSHA512SUM $__ApkToolsDir/apk.static" | sha512sum -c chmod +x "$__ApkToolsDir/apk.static" - if [[ -f "/usr/bin/qemu-$__QEMUArch-static" ]]; then - mkdir -p "$__RootfsDir"/usr/bin - cp -v "/usr/bin/qemu-$__QEMUArch-static" "$__RootfsDir/usr/bin" - fi - if [[ "$__AlpineVersion" == "edge" ]]; then version=edge else @@ -536,6 +537,10 @@ if [[ "$__CodeName" == "alpine" ]]; then __ApkSignatureArg="--keys-dir $__ApkKeysDir" fi + if [[ "$__SkipEmulation" == "1" ]]; then + __NoEmulationArg="--no-scripts" + fi + # initialize DB # shellcheck disable=SC2086 "$__ApkToolsDir/apk.static" \ @@ -557,7 +562,7 @@ if [[ "$__CodeName" == "alpine" ]]; then "$__ApkToolsDir/apk.static" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ - -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \ + -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" $__NoEmulationArg \ add $__AlpinePackages rm -r "$__ApkToolsDir" @@ -573,7 +578,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then curl -SL "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version fi echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf - echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf + echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf mkdir -p "$__RootfsDir"/tmp # get and build package manager if [[ "$__hasWget" == 1 ]]; then @@ -681,7 +686,7 @@ elif [[ "$__CodeName" == "haiku" ]]; then ensureDownloadTool - echo "Downloading Haiku package tool" + echo "Downloading Haiku package tools" git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 "$__RootfsDir/tmp/script" if [[ "$__hasWget" == 1 ]]; then wget -O "$__RootfsDir/tmp/download/hosttools.zip" "$("$__RootfsDir/tmp/script/fetch.sh" --hosttools)" @@ -691,34 +696,42 @@ elif [[ "$__CodeName" == "haiku" ]]; then unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin" - DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg" - HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuPortsBaseUrl="https://eu.hpkg.haiku-os.org/haikuports/master/$__HaikuArch/current" + + echo "Downloading HaikuPorts package repository index..." + if [[ "$__hasWget" == 1 ]]; then + wget -P "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + else + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + fi - # Download Haiku packages echo "Downloading Haiku packages" read -ra array <<<"$__HaikuPackages" for package in "${array[@]}"; do echo "Downloading $package..." - # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60 - # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598 + hpkgFilename="$(LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package_repo" list -f "$__RootfsDir/tmp/download/repo" | + grep -E "${package}-" | sort -V | tail -n 1 | xargs)" + if [ -z "$hpkgFilename" ]; then + >&2 echo "ERROR: package $package missing." + exit 1 + fi + echo "Resolved filename: $hpkgFilename..." + hpkgDownloadUrl="$HaikuPortsBaseUrl/packages/$hpkgFilename" if [[ "$__hasWget" == 1 ]]; then - hpkgDownloadUrl="$(wget -qO- --post-data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" else - hpkgDownloadUrl="$(curl -sSL -XPOST --data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" fi done for package in haiku haiku_devel; do echo "Downloading $package..." if [[ "$__hasWget" == 1 ]]; then - hpkgVersion="$(wget -qO- "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(wget -qO- "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + wget -P "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" else - hpkgVersion="$(curl -sSL "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(curl -sSL "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" fi done @@ -744,25 +757,67 @@ elif [[ "$__CodeName" == "haiku" ]]; then popd rm -rf "$__RootfsDir/tmp" elif [[ -n "$__CodeName" ]]; then + __Suites="$__CodeName $(for suite in $__UbuntuSuites; do echo -n "$__CodeName-$suite "; done)" + + if [[ "$__SkipEmulation" == "1" ]]; then + if [[ -z "$AR" ]]; then + if command -v ar &>/dev/null; then + AR="$(command -v ar)" + elif command -v llvm-ar &>/dev/null; then + AR="$(command -v llvm-ar)" + else + echo "Unable to find ar or llvm-ar on PATH, add them to PATH or set AR environment variable pointing to the available AR tool" + exit 1 + fi + fi + + PYTHON=${PYTHON_EXECUTABLE:-python3} + + # shellcheck disable=SC2086,SC2046 + echo running "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + + # shellcheck disable=SC2086,SC2046 + "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + exit 0 + fi + + __UpdateOptions= if [[ "$__SkipSigCheck" == "0" ]]; then __Keyring="$__Keyring --force-check-gpg" + else + __Keyring= + __UpdateOptions="--allow-unauthenticated --allow-insecure-repositories" fi # shellcheck disable=SC2086 echo running debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" - debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" + # shellcheck disable=SC2086 + if ! debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"; then + echo "debootstrap failed! dumping debootstrap.log" + cat "$__RootfsDir/debootstrap/debootstrap.log" + exit 1 + fi + + rm -rf "$__RootfsDir"/etc/apt/*.{sources,list} "$__RootfsDir"/etc/apt/sources.list.d mkdir -p "$__RootfsDir/etc/apt/sources.list.d/" + + # shellcheck disable=SC2086 cat > "$__RootfsDir/etc/apt/sources.list.d/$__CodeName.sources" < token2) - (token1 < token2) + else: + return -1 if isinstance(token1, str) else 1 + + return len(tokens1) - len(tokens2) + +def compare_debian_versions(version1, version2): + """Compare two Debian package versions.""" + epoch1, upstream1, revision1 = parse_debian_version(version1) + epoch2, upstream2, revision2 = parse_debian_version(version2) + + if epoch1 != epoch2: + return epoch1 - epoch2 + + result = compare_upstream_version(upstream1, upstream2) + if result != 0: + return result + + return compare_upstream_version(revision1, revision2) + +def resolve_dependencies(packages, aliases, desired_packages): + """Recursively resolves dependencies for the desired packages.""" + resolved = [] + to_process = deque(desired_packages) + + while to_process: + current = to_process.popleft() + resolved_package = current if current in packages else aliases.get(current, [None])[0] + + if not resolved_package: + print(f"Error: Package '{current}' was not found in the available packages.") + sys.exit(1) + + if resolved_package not in resolved: + resolved.append(resolved_package) + + deps = packages.get(resolved_package, {}).get("Depends", "") + if deps: + deps = [dep.split(' ')[0] for dep in deps.split(', ') if dep] + for dep in deps: + if dep not in resolved and dep not in to_process and dep in packages: + to_process.append(dep) + + return resolved + +def parse_package_index(content): + """Parses the Packages.gz file and returns package information.""" + packages = {} + aliases = {} + entries = re.split(r'\n\n+', content) + + for entry in entries: + fields = dict(re.findall(r'^(\S+): (.+)$', entry, re.MULTILINE)) + if "Package" in fields: + package_name = fields["Package"] + version = fields.get("Version") + filename = fields.get("Filename") + depends = fields.get("Depends") + provides = fields.get("Provides", None) + + # Only update if package_name is not in packages or if the new version is higher + if package_name not in packages or compare_debian_versions(version, packages[package_name]["Version"]) > 0: + packages[package_name] = { + "Version": version, + "Filename": filename, + "Depends": depends + } + + # Update aliases if package provides any alternatives + if provides: + provides_list = [x.strip() for x in provides.split(",")] + for alias in provides_list: + # Strip version specifiers + alias_name = re.sub(r'\s*\(=.*\)', '', alias) + if alias_name not in aliases: + aliases[alias_name] = [] + if package_name not in aliases[alias_name]: + aliases[alias_name].append(package_name) + + return packages, aliases + +def install_packages(mirror, packages_info, aliases, tmp_dir, extract_dir, ar_tool, desired_packages): + """Downloads .deb files and extracts them.""" + resolved_packages = resolve_dependencies(packages_info, aliases, desired_packages) + print(f"Resolved packages (including dependencies): {resolved_packages}") + + packages_to_download = {} + + for pkg in resolved_packages: + if pkg in packages_info: + packages_to_download[pkg] = packages_info[pkg] + + if pkg in aliases: + for alias in aliases[pkg]: + if alias in packages_info: + packages_to_download[alias] = packages_info[alias] + + asyncio.run(download_deb_files_parallel(mirror, packages_to_download, tmp_dir)) + + package_to_deb_file_map = {} + for pkg in resolved_packages: + pkg_info = packages_info.get(pkg) + if pkg_info: + deb_filename = pkg_info.get("Filename") + if deb_filename: + deb_file_path = os.path.join(tmp_dir, os.path.basename(deb_filename)) + package_to_deb_file_map[pkg] = deb_file_path + + for pkg in reversed(resolved_packages): + deb_file = package_to_deb_file_map.get(pkg) + if deb_file and os.path.exists(deb_file): + extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool) + + print("All done!") + +def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): + """Extract .deb file contents""" + + os.makedirs(extract_dir, exist_ok=True) + + with tempfile.TemporaryDirectory(dir=tmp_dir) as tmp_subdir: + result = subprocess.run(f"{ar_tool} t {os.path.abspath(deb_file)}", cwd=tmp_subdir, check=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + tar_filename = None + for line in result.stdout.decode().splitlines(): + if line.startswith("data.tar"): + tar_filename = line.strip() + break + + if not tar_filename: + raise FileNotFoundError(f"Could not find 'data.tar.*' in {deb_file}.") + + tar_file_path = os.path.join(tmp_subdir, tar_filename) + print(f"Extracting {tar_filename} from {deb_file}..") + + subprocess.run(f"{ar_tool} p {os.path.abspath(deb_file)} {tar_filename} > {tar_file_path}", check=True, shell=True) + + file_extension = os.path.splitext(tar_file_path)[1].lower() + + if file_extension == ".xz": + mode = "r:xz" + elif file_extension == ".gz": + mode = "r:gz" + elif file_extension == ".zst": + # zstd is not supported by standard library yet + decompressed_tar_path = tar_file_path.replace(".zst", "") + with open(tar_file_path, "rb") as zst_file, open(decompressed_tar_path, "wb") as decompressed_file: + dctx = zstandard.ZstdDecompressor() + dctx.copy_stream(zst_file, decompressed_file) + + tar_file_path = decompressed_tar_path + mode = "r" + else: + raise ValueError(f"Unsupported compression format: {file_extension}") + + with tarfile.open(tar_file_path, mode) as tar: + tar.extractall(path=extract_dir, filter='fully_trusted') + +def finalize_setup(rootfsdir): + lib_dir = os.path.join(rootfsdir, 'lib') + usr_lib_dir = os.path.join(rootfsdir, 'usr', 'lib') + + if os.path.exists(lib_dir): + if os.path.islink(lib_dir): + os.remove(lib_dir) + else: + os.makedirs(usr_lib_dir, exist_ok=True) + + for item in os.listdir(lib_dir): + src = os.path.join(lib_dir, item) + dest = os.path.join(usr_lib_dir, item) + + if os.path.isdir(src): + shutil.copytree(src, dest, dirs_exist_ok=True) + else: + shutil.copy2(src, dest) + + shutil.rmtree(lib_dir) + + os.symlink(usr_lib_dir, lib_dir) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Generate rootfs for .NET runtime on Debian-like OS") + parser.add_argument("--distro", required=False, help="Distro name (e.g., debian, ubuntu, etc.)") + parser.add_argument("--arch", required=True, help="Architecture (e.g., amd64, loong64, etc.)") + parser.add_argument("--rootfsdir", required=True, help="Destination directory.") + parser.add_argument('--suite', required=True, action='append', help='Specify one or more repository suites to collect index data.') + parser.add_argument("--mirror", required=False, help="Mirror (e.g., http://ftp.debian.org/debian-ports etc.)") + parser.add_argument("--artool", required=False, default="ar", help="ar tool to extract debs (e.g., ar, llvm-ar etc.)") + parser.add_argument("packages", nargs="+", help="List of package names to be installed.") + + args = parser.parse_args() + + if args.mirror is None: + if args.distro == "ubuntu": + args.mirror = "http://archive.ubuntu.com/ubuntu" if args.arch in ["amd64", "i386"] else "http://ports.ubuntu.com/ubuntu-ports" + elif args.distro == "debian": + args.mirror = "http://ftp.debian.org/debian-ports" + else: + raise Exception("Unsupported distro") + + DESIRED_PACKAGES = args.packages + [ # base packages + "dpkg", + "busybox", + "libc-bin", + "base-files", + "base-passwd", + "debianutils" + ] + + print(f"Creating rootfs. rootfsdir: {args.rootfsdir}, distro: {args.distro}, arch: {args.arch}, suites: {args.suite}, mirror: {args.mirror}") + + package_index_content = asyncio.run(download_package_index_parallel(args.mirror, args.arch, args.suite)) + + packages_info, aliases = parse_package_index(package_index_content) + + with tempfile.TemporaryDirectory() as tmp_dir: + install_packages(args.mirror, packages_info, aliases, tmp_dir, args.rootfsdir, args.artool, DESIRED_PACKAGES) + + finalize_setup(args.rootfsdir) diff --git a/eng/common/cross/tizen-build-rootfs.sh b/eng/common/cross/tizen-build-rootfs.sh old mode 100644 new mode 100755 diff --git a/eng/common/cross/tizen-fetch.sh b/eng/common/cross/tizen-fetch.sh old mode 100644 new mode 100755 index 28936ceef3a7..37c3a61f1de8 --- a/eng/common/cross/tizen-fetch.sh +++ b/eng/common/cross/tizen-fetch.sh @@ -156,13 +156,8 @@ fetch_tizen_pkgs() done } -if [ "$TIZEN_ARCH" == "riscv64" ]; then - BASE="Tizen-Base-RISCV" - UNIFIED="Tizen-Unified-RISCV" -else - BASE="Tizen-Base" - UNIFIED="Tizen-Unified" -fi +BASE="Tizen-Base" +UNIFIED="Tizen-Unified" Inform "Initialize ${TIZEN_ARCH} base" fetch_tizen_pkgs_init standard $BASE diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index 9a7ecfbd42c5..0ff85cf0367e 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -67,6 +67,13 @@ elseif(TARGET_ARCH_NAME STREQUAL "armv6") else() set(TOOLCHAIN "arm-linux-gnueabihf") endif() +elseif(TARGET_ARCH_NAME STREQUAL "loongarch64") + set(CMAKE_SYSTEM_PROCESSOR "loongarch64") + if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/loongarch64-alpine-linux-musl) + set(TOOLCHAIN "loongarch64-alpine-linux-musl") + else() + set(TOOLCHAIN "loongarch64-linux-gnu") + endif() elseif(TARGET_ARCH_NAME STREQUAL "ppc64le") set(CMAKE_SYSTEM_PROCESSOR ppc64le) if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl) @@ -118,7 +125,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86") set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu") endif() else() - message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!") + message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64 and x86 are supported!") endif() if(DEFINED ENV{TOOLCHAIN}) @@ -148,6 +155,25 @@ if(TIZEN) include_directories(SYSTEM ${TIZEN_TOOLCHAIN_PATH}/include/c++/${TIZEN_TOOLCHAIN}) endif() +function(locate_toolchain_exec exec var) + set(TOOLSET_PREFIX ${TOOLCHAIN}-) + string(TOUPPER ${exec} EXEC_UPPERCASE) + if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") + set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) + return() + endif() + + find_program(EXEC_LOCATION_${exec} + NAMES + "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" + "${TOOLSET_PREFIX}${exec}") + + if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") + message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") + endif() + set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) +endfunction() + if(ANDROID) if(TARGET_ARCH_NAME STREQUAL "arm") set(ANDROID_ABI armeabi-v7a) @@ -178,66 +204,24 @@ elseif(FREEBSD) set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld") elseif(ILLUMOS) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") + set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") include_directories(SYSTEM ${CROSS_ROOTFS}/include) - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") - locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") elseif(HAIKU) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin") - - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") - # let CMake set up the correct search paths include(Platform/Haiku) else() @@ -307,7 +291,7 @@ endif() # Specify compile options -if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) +if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|loongarch64|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN}) diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh index 36dbd45e1ce8..e889f439b8dc 100755 --- a/eng/common/darc-init.sh +++ b/eng/common/darc-init.sh @@ -68,7 +68,7 @@ function InstallDarcCli { fi fi - local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" + local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" echo "Installing Darc CLI version $darcVersion..." echo "You may need to restart your command shell if this is the first dotnet tool you have installed." diff --git a/eng/common/dotnet.cmd b/eng/common/dotnet.cmd new file mode 100644 index 000000000000..527fa4bb38fb --- /dev/null +++ b/eng/common/dotnet.cmd @@ -0,0 +1,7 @@ +@echo off + +:: This script is used to install the .NET SDK. +:: It will also invoke the SDK with any provided arguments. + +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet.ps1""" %*" +exit /b %ErrorLevel% diff --git a/eng/common/dotnet.ps1 b/eng/common/dotnet.ps1 new file mode 100644 index 000000000000..45e5676c9ebd --- /dev/null +++ b/eng/common/dotnet.ps1 @@ -0,0 +1,11 @@ +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +. $PSScriptRoot\tools.ps1 +$dotnetRoot = InitializeDotNetCli -install:$true + +# Invoke acquired SDK with args if they are provided +if ($args.count -gt 0) { + $env:DOTNET_NOLOGO=1 + & "$dotnetRoot\dotnet.exe" $args +} diff --git a/eng/common/dotnet.sh b/eng/common/dotnet.sh new file mode 100755 index 000000000000..2ef68235675f --- /dev/null +++ b/eng/common/dotnet.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +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 )" + +source $scriptroot/tools.sh +InitializeDotNetCli true # install + +# Invoke acquired SDK with args if they are provided +if [[ $# > 0 ]]; then + __dotnetDir=${_InitializeDotNetCli} + dotnetPath=${__dotnetDir}/dotnet + ${dotnetPath} "$@" +fi diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1 index 524aaa57f2b7..fa1cdc2b3007 100644 --- a/eng/common/generate-locproject.ps1 +++ b/eng/common/generate-locproject.ps1 @@ -33,15 +33,27 @@ $jsonTemplateFiles | ForEach-Object { $jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern +$wxlFilesV3 = @() +$wxlFilesV5 = @() $wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them if (-not $wxlFiles) { $wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files if ($wxlEnFiles) { - $wxlFiles = @() - $wxlEnFiles | ForEach-Object { - $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" - $wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru - } + $wxlFiles = @() + $wxlEnFiles | ForEach-Object { + $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" + $content = Get-Content $_.FullName -Raw + + # Split files on schema to select different parser settings in the generated project. + if ($content -like "*http://wixtoolset.org/schemas/v4/wxl*") + { + $wxlFilesV5 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + elseif ($content -like "*http://schemas.microsoft.com/wix/2006/localization*") + { + $wxlFilesV3 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + } } } @@ -114,7 +126,32 @@ $locJson = @{ CloneLanguageSet = "WiX_CloneLanguages" LssFiles = @( "wxl_loc.lss" ) LocItems = @( - $wxlFiles | ForEach-Object { + $wxlFilesV3 | ForEach-Object { + $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" + $continue = $true + foreach ($exclusion in $exclusions.Exclusions) { + if ($_.FullName.Contains($exclusion)) { + $continue = $false + } + } + $sourceFile = ($_.FullName | Resolve-Path -Relative) + if ($continue) + { + return @{ + SourceFile = $sourceFile + CopyOption = "LangIDOnPath" + OutputPath = $outputPath + } + } + } + ) + }, + @{ + LanguageSet = $LanguageSet + CloneLanguageSet = "WiX_CloneLanguages" + LssFiles = @( "P210WxlSchemaV4.lss" ) + LocItems = @( + $wxlFilesV5 | ForEach-Object { $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" $continue = $true foreach ($exclusion in $exclusions.Exclusions) { diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh old mode 100644 new mode 100755 diff --git a/eng/common/native/install-dependencies.sh b/eng/common/native/install-dependencies.sh new file mode 100755 index 000000000000..477a44f335be --- /dev/null +++ b/eng/common/native/install-dependencies.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +set -e + +# This is a simple script primarily used for CI to install necessary dependencies +# +# Usage: +# +# ./install-dependencies.sh + +os="$(echo "$1" | tr "[:upper:]" "[:lower:]")" + +if [ -z "$os" ]; then + . "$(dirname "$0")"/init-os-and-arch.sh +fi + +case "$os" in + linux) + if [ -e /etc/os-release ]; then + . /etc/os-release + fi + + if [ "$ID" = "debian" ] || [ "$ID_LIKE" = "debian" ]; then + apt update + + apt install -y build-essential gettext locales cmake llvm clang lld lldb liblldb-dev libunwind8-dev libicu-dev liblttng-ust-dev \ + libssl-dev libkrb5-dev pigz cpio + + localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 + elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ]; then + pkg_mgr="$(command -v tdnf 2>/dev/null || command -v dnf)" + $pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio + elif [ "$ID" = "alpine" ]; then + apk add build-base cmake bash curl clang llvm-dev lld lldb krb5-dev lttng-ust-dev icu-dev openssl-dev pigz cpio + else + echo "Unsupported distro. distro: $ID" + exit 1 + fi + ;; + + osx|maccatalyst|ios|iossimulator|tvos|tvossimulator) + echo "Installed xcode version: $(xcode-select -p)" + + export HOMEBREW_NO_INSTALL_CLEANUP=1 + export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 + # Skip brew update for now, see https://github.com/actions/setup-python/issues/577 + # brew update --preinstall + brew bundle --no-upgrade --file=- < Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." + Write-Host " -excludeCIBinaryLog When running on CI, allow no binary log (short: -nobl)" Write-Host "" Write-Host "Command line arguments not listed above are passed thru to msbuild." } @@ -34,10 +39,11 @@ function Print-Usage() { function Build([string]$target) { $logSuffix = if ($target -eq 'Execute') { '' } else { ".$target" } $log = Join-Path $LogDir "$task$logSuffix.binlog" + $binaryLogArg = if ($binaryLog) { "/bl:$log" } else { "" } $outputPath = Join-Path $ToolsetDir "$task\" MSBuild $taskProject ` - /bl:$log ` + $binaryLogArg ` /t:$target ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` @@ -64,7 +70,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.12.0" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "18.0.0" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh new file mode 100755 index 000000000000..3270f83fa9a7 --- /dev/null +++ b/eng/common/sdk-task.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash + +show_usage() { + echo "Common settings:" + echo " --task Name of Arcade task (name of a project in SdkTasks directory of the Arcade SDK package)" + echo " --restore Restore dependencies" + echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]" + echo " --help Print help and exit" + echo "" + + echo "Advanced settings:" + echo " --excludeCIBinarylog Don't output binary log (short: -nobl)" + echo " --noWarnAsError Do not warn as error" + echo "" + echo "Command line arguments not listed above are passed thru to msbuild." +} + +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 )" + +Build() { + local target=$1 + local log_suffix="" + [[ "$target" != "Execute" ]] && log_suffix=".$target" + local log="$log_dir/$task$log_suffix.binlog" + local binaryLogArg="" + [[ $binary_log == true ]] && binaryLogArg="/bl:$log" + local output_path="$toolset_dir/$task/" + + MSBuild "$taskProject" \ + $binaryLogArg \ + /t:"$target" \ + /p:Configuration="$configuration" \ + /p:RepoRoot="$repo_root" \ + /p:BaseIntermediateOutputPath="$output_path" \ + /v:"$verbosity" \ + $properties +} + +binary_log=true +configuration="Debug" +verbosity="minimal" +exclude_ci_binary_log=false +restore=false +help=false +properties='' +warnAsError=true + +while (($# > 0)); do + lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")" + case $lowerI in + --task) + task=$2 + shift 2 + ;; + --restore) + restore=true + shift 1 + ;; + --verbosity) + verbosity=$2 + shift 2 + ;; + --excludecibinarylog|--nobl) + binary_log=false + exclude_ci_binary_log=true + shift 1 + ;; + --noWarnAsError) + warnAsError=false + shift 1 + ;; + --help) + help=true + shift 1 + ;; + *) + properties="$properties $1" + shift 1 + ;; + esac +done + +ci=true + +if $help; then + show_usage + exit 0 +fi + +. "$scriptroot/tools.sh" +InitializeToolset + +if [[ -z "$task" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'MissingTask' -Message "Missing required parameter '-task '" + ExitWithExitCode 1 +fi + +taskProject=$(GetSdkTaskProject "$task") +if [[ ! -e "$taskProject" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'UnknownTask' -Message "Unknown task: $task" + ExitWithExitCode 1 +fi + +if $restore; then + Build "Restore" +fi + +Build "Execute" + + +ExitWithExitCode 0 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-official/job/job.yml b/eng/common/templates-official/job/job.yml index 81ea7a261f2d..92a0664f5647 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -31,6 +31,7 @@ jobs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked continueOnError: true - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - output: pipelineArtifact @@ -39,6 +40,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if eq(parameters.enablePublishBuildArtifacts, true) }}: @@ -46,7 +48,7 @@ jobs: displayName: Publish Logs PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() sbomEnabled: false # we don't need SBOM for logs diff --git a/eng/common/templates-official/steps/publish-build-artifacts.yml b/eng/common/templates-official/steps/publish-build-artifacts.yml index 100a3fc98493..fcf6637b2ebc 100644 --- a/eng/common/templates-official/steps/publish-build-artifacts.yml +++ b/eng/common/templates-official/steps/publish-build-artifacts.yml @@ -24,6 +24,10 @@ parameters: - name: is1ESPipeline type: boolean default: true + +- name: retryCountOnTaskFailure + type: string + default: 10 steps: - ${{ if ne(parameters.is1ESPipeline, true) }}: @@ -38,4 +42,5 @@ steps: PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: ArtifactName: ${{ parameters.artifactName }} - + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates-official/steps/source-index-stage1-publish.yml b/eng/common/templates-official/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..9b8b80942b5c --- /dev/null +++ b/eng/common/templates-official/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: true + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates-official/variables/pool-providers.yml b/eng/common/templates-official/variables/pool-providers.yml index 1f308b24efc4..2cc3ae305d5a 100644 --- a/eng/common/templates-official/variables/pool-providers.yml +++ b/eng/common/templates-official/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# image: 1es-windows-2022 +# image: windows.vs2026.amd64 variables: # Coalesce the target and source branches so we know when a PR targets a release branch diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 5bdd3dd85fd2..238fa0818f7b 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -46,6 +46,7 @@ jobs: artifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: @@ -56,6 +57,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: @@ -66,7 +68,7 @@ jobs: displayName: Publish Logs pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() diff --git a/eng/common/templates/steps/publish-build-artifacts.yml b/eng/common/templates/steps/publish-build-artifacts.yml index 6428a98dfef6..605e602e94d1 100644 --- a/eng/common/templates/steps/publish-build-artifacts.yml +++ b/eng/common/templates/steps/publish-build-artifacts.yml @@ -25,6 +25,10 @@ parameters: type: string default: 'Container' +- name: retryCountOnTaskFailure + type: string + default: 10 + steps: - ${{ if eq(parameters.is1ESPipeline, true) }}: - 'eng/common/templates cannot be referenced from a 1ES managed template': error @@ -37,4 +41,6 @@ steps: PublishLocation: ${{ parameters.publishLocation }} PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: - ArtifactName: ${{ parameters.artifactName }} \ No newline at end of file + ArtifactName: ${{ parameters.artifactName }} + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates/steps/source-index-stage1-publish.yml b/eng/common/templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..182cec33a7bb --- /dev/null +++ b/eng/common/templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: false + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml new file mode 100644 index 000000000000..eb619c502683 --- /dev/null +++ b/eng/common/templates/steps/vmr-sync.yml @@ -0,0 +1,186 @@ +### 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: | + 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/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 18693ea120d5..587770f0add4 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2022.amd64 +# demands: ImageOverride -equals windows.vs2026.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml new file mode 100644 index 000000000000..2f3694fa1323 --- /dev/null +++ b/eng/common/templates/vmr-build-pr.yml @@ -0,0 +1,43 @@ +# This pipeline is used for running the VMR verification of the PR changes in repo-level PRs. +# +# It will run a full set of verification jobs defined in: +# https://github.com/dotnet/dotnet/blob/10060d128e3f470e77265f8490f5e4f72dae738e/eng/pipelines/templates/stages/vmr-build.yml#L27-L38 +# +# For repos that do not need to run the full set, you would do the following: +# +# 1. Copy this YML file to a repo-specific location, i.e. outside of eng/common. +# +# 2. Add `verifications` parameter to VMR template reference +# +# Examples: +# - For source-build stage 1 verification, add the following: +# verifications: [ "source-build-stage1" ] +# +# - For Windows only verifications, add the following: +# verifications: [ "unified-build-windows-x64", "unified-build-windows-x86" ] + +trigger: none +pr: none + +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 + ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into + +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 a06513a59407..977a2d4b1039 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -65,10 +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 } - -[String[]]$properties = if (Test-Path variable:properties) { $properties } else { @() } +# 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 @@ -259,7 +257,20 @@ function Retry($downloadBlock, $maxRetries = 5) { function GetDotNetInstallScript([string] $dotnetRoot) { $installScript = Join-Path $dotnetRoot 'dotnet-install.ps1' + $shouldDownload = $false + if (!(Test-Path $installScript)) { + $shouldDownload = $true + } else { + # Check if the script is older than 30 days + $fileAge = (Get-Date) - (Get-Item $installScript).LastWriteTime + if ($fileAge.Days -gt 30) { + Write-Host "Existing install script is too old, re-downloading..." + $shouldDownload = $true + } + } + + if ($shouldDownload) { Create-Directory $dotnetRoot $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit $uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1" @@ -383,8 +394,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.12.0 - $defaultXCopyMSBuildVersion = '17.12.0' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/18.0.0 + $defaultXCopyMSBuildVersion = '18.0.0' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { @@ -533,7 +544,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (Get-Member -InputObject $GlobalJson.tools -Name 'vswhere') { $vswhereVersion = $GlobalJson.tools.vswhere } else { - $vswhereVersion = '2.5.2' + # keep this in sync with the VSWhereVersion in DefaultVersions.props + $vswhereVersion = '3.1.7' } $vsWhereDir = Join-Path $ToolsDir "vswhere\$vswhereVersion" @@ -541,7 +553,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (!(Test-Path $vsWhereExe)) { Create-Directory $vsWhereDir - Write-Host 'Downloading vswhere' + Write-Host "Downloading vswhere $vswhereVersion" + $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit Retry({ Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -UseBasicParsing -OutFile $vswhereExe }) @@ -611,14 +624,7 @@ function InitializeBuildTool() { } $dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') - # Use override if it exists - commonly set by source-build - if ($null -eq $env:_OverrideArcadeInitializeBuildToolFramework) { - $initializeBuildToolFramework="net9.0" - } else { - $initializeBuildToolFramework=$env:_OverrideArcadeInitializeBuildToolFramework - } - - $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = $initializeBuildToolFramework } + $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net' } } elseif ($msbuildEngine -eq "vs") { try { $msbuildPath = InitializeVisualStudioMSBuild -install:$restore @@ -627,7 +633,7 @@ function InitializeBuildTool() { ExitWithExitCode 1 } - $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "net472"; ExcludePrereleaseVS = $excludePrereleaseVS } + $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "netframework"; ExcludePrereleaseVS = $excludePrereleaseVS } } else { Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Unexpected value of -msbuildEngine: '$msbuildEngine'." ExitWithExitCode 1 @@ -660,7 +666,6 @@ function GetNuGetPackageCachePath() { $env:NUGET_PACKAGES = Join-Path $env:UserProfile '.nuget\packages\' } else { $env:NUGET_PACKAGES = Join-Path $RepoRoot '.packages\' - $env:RESTORENOHTTPCACHE = $true } } @@ -782,26 +787,13 @@ function MSBuild() { $toolsetBuildProject = InitializeToolset $basePath = Split-Path -parent $toolsetBuildProject - $possiblePaths = @( - # new scripts need to work with old packages, so we need to look for the old names/versions - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.Arcade.Sdk.dll')) - ) - $selectedPath = $null - foreach ($path in $possiblePaths) { - if (Test-Path $path -PathType Leaf) { - $selectedPath = $path - break - } - } + $selectedPath = Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll') + if (-not $selectedPath) { - Write-PipelineTelemetryError -Category 'Build' -Message 'Unable to find arcade sdk logger assembly.' + Write-PipelineTelemetryError -Category 'Build' -Message "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 } + $args += "/logger:$selectedPath" } @@ -832,6 +824,11 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + if ($env:MSBUILD_MT_ENABLED -eq "1") { + $cmdArgs += ' -mt' + } + if ($warnAsError) { $cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true' } @@ -864,8 +861,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 -and -not($properties -like "*DotNetBuildRepo=true*")) { + # 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 01b09b65796c..1b296f646c23 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -5,6 +5,9 @@ # CI mode - set to true on CI server for PR validation build or official build. ci=${ci:-false} +# Build mode +source_build=${source_build:-false} + # Set to true to use the pipelines logger which will enable Azure logging output. # https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md # This flag is meant as a temporary opt-opt for the feature while validate it across @@ -58,7 +61,8 @@ use_installed_dotnet_cli=${use_installed_dotnet_cli:-true} dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'} # True to use global NuGet cache instead of restoring packages to repository-local directory. -if [[ "$ci" == true ]]; then +# Keep in sync with NuGetPackageroot in Arcade SDK's RepositoryLayout.props. +if [[ "$ci" == true || "$source_build" == true ]]; then use_global_nuget_cache=${use_global_nuget_cache:-false} else use_global_nuget_cache=${use_global_nuget_cache:-true} @@ -68,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 { @@ -296,8 +300,29 @@ function GetDotNetInstallScript { local root=$1 local install_script="$root/dotnet-install.sh" local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" + local timestamp_file="$root/.dotnet-install.timestamp" + local should_download=false if [[ ! -a "$install_script" ]]; then + should_download=true + elif [[ -f "$timestamp_file" ]]; then + # Check if the script is older than 30 days using timestamp file + local download_time=$(cat "$timestamp_file" 2>/dev/null || echo "0") + local current_time=$(date +%s) + local age_seconds=$((current_time - download_time)) + + # 30 days = 30 * 24 * 60 * 60 = 2592000 seconds + if [[ $age_seconds -gt 2592000 ]]; then + echo "Existing install script is too old, re-downloading..." + should_download=true + fi + else + # No timestamp file exists, assume script is old and re-download + echo "No timestamp found for existing install script, re-downloading..." + should_download=true + fi + + if [[ "$should_download" == true ]]; then mkdir -p "$root" echo "Downloading '$install_script_url'" @@ -324,6 +349,9 @@ function GetDotNetInstallScript { ExitWithExitCode $exit_code } fi + + # Create timestamp file to track download time in seconds from epoch + date +%s > "$timestamp_file" fi # return value _GetDotNetInstallScript="$install_script" @@ -339,22 +367,14 @@ function InitializeBuildTool { # return values _InitializeBuildTool="$_InitializeDotNetCli/dotnet" _InitializeBuildToolCommand="msbuild" - # use override if it exists - commonly set by source-build - if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then - _InitializeBuildToolFramework="net9.0" - else - _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" - fi } -# 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 @@ -451,25 +471,13 @@ function MSBuild { fi local toolset_dir="${_InitializeToolset%/*}" - # new scripts need to work with old packages, so we need to look for the old names/versions - local selectedPath= - local possiblePaths=() - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - for path in "${possiblePaths[@]}"; do - if [[ -f $path ]]; then - selectedPath=$path - break - fi - done + local selectedPath="$toolset_dir/net/Microsoft.DotNet.ArcadeLogging.dll" + if [[ -z "$selectedPath" ]]; then - Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly." + Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 fi + args+=( "-logger:$selectedPath" ) fi @@ -506,8 +514,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 && "$properties" != *"DotNetBuildRepo=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 @@ -518,7 +526,13 @@ function MSBuild-Core { } } - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + local mt_switch="" + if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then + mt_switch="-mt" + fi + + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { @@ -530,6 +544,13 @@ 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. +function GetSdkTaskProject { + taskName=$1 + echo "$(dirname $_InitializeToolset)/SdkTasks/$taskName.proj" } ResolvePath "${BASH_SOURCE[0]}" diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 new file mode 100755 index 000000000000..b37992d91cf0 --- /dev/null +++ b/eng/common/vmr-sync.ps1 @@ -0,0 +1,164 @@ +<# +.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 +$env:DOTNET_ROOT = $dotnetRoot +$darc = Get-Darc + +Highlight "Starting the synchronization of VMR.." + +# Synchronize the VMR +$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path +[xml]$versionDetails = Get-Content -Path $versionDetailsPath +$repoName = $versionDetails.SelectSingleNode('//Source').Mapping +if (-not $repoName) { + Fail "Failed to resolve repo mapping from $versionDetailsPath" + exit 1 +} + +$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 { + Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..." + git -C $vmrDir reset --hard + + $resetArgs = ( + "vmr", "reset", + "${repoName}:HEAD", + "--vmr", $vmrDir, + "--tmp", $tmpDir, + "--additional-remotes", "${repoName}:${repoRoot}" + ) + + & "$darc" $resetArgs + + if ($LASTEXITCODE -eq 0) { + Highlight "Successfully reset the VMR using 'darc vmr reset'" + } + 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..198caec59bd4 --- /dev/null +++ b/eng/common/vmr-sync.sh @@ -0,0 +1,227 @@ +#!/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 + +version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml +repo_name=$(grep -m 1 ' Date: Tue, 14 Apr 2026 09:03:20 +0000 Subject: [PATCH 29/31] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 4 +- eng/Version.Details.props | 266 +++++++-------- eng/Version.Details.xml | 673 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 475 insertions(+), 474 deletions(-) diff --git a/NuGet.config b/NuGet.config index e226baf9b0b6..903609549285 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -39,6 +39,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 94492476bae6..1a73d58a3c79 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,139 +8,139 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-preview.26203.109 - 10.0.6 - 10.0.6 - 18.0.11 - 18.0.11-servicing-26203-109 - 7.0.2-rc.20409 - 10.0.106 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.0-preview.26203.109 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 2.0.0-preview.1.26203.109 - 2.2.6 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6-servicing.26203.109 - 10.0.0-beta.26203.109 - 10.0.0-beta.26203.109 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 14.0.106-servicing.26203.109 - 10.0.6 - 5.0.0-2.26203.109 - 5.0.0-2.26203.109 - 10.0.6-servicing.26203.109 - 10.0.6 - 10.0.6 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4-servicing.26119.110 + 10.0.0-preview.26202.103 + 10.0.4 + 10.0.4 + 18.3.3 + 18.3.3-servicing-26202-103 + 7.3.0-rc.20303 + 10.0.202 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.0-preview.26202.103 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 2.0.0-preview.1.26119.110 + 2.2.4 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.0-beta.26202.103 + 10.0.0-beta.26202.103 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 15.2.202-servicing.26202.103 + 10.0.4 + 5.3.0-2.26202.103 + 5.3.0-2.26202.103 + 10.0.4-servicing.26119.110 + 10.0.4 + 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26203.109 - 10.0.6-servicing.26203.109 - 18.0.2-release-26203-109 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106-servicing.26203.109 - 10.0.106 - 10.0.106 - 10.0.106-servicing.26203.109 - 18.0.2-release-26203-109 - 18.0.2-release-26203-109 - 3.2.6 - 10.0.6 - 10.0.6-servicing.26203.109 - 10.0.6 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 7.0.2-rc.20409 - 10.0.6 - 2.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 - 10.0.6 + 10.0.0-preview.26202.103 + 10.0.4-servicing.26119.110 + 18.3.0-release-26202-103 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202-servicing.26202.103 + 10.0.202 + 10.0.202 + 10.0.202-servicing.26202.103 + 18.3.0-release-26202-103 + 18.3.0-release-26202-103 + 3.2.4 + 10.0.4 + 10.0.4-servicing.26119.110 + 10.0.4 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 7.3.0-rc.20303 + 10.0.4 + 2.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 2.3.0-preview.26202.5 4.3.0-preview.26202.5 @@ -185,6 +185,7 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) @@ -200,7 +201,6 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3a7cdb3a56c8..a1ff22313714 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - + https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + 0c538445912b51b36242aac75dd5e81265bbe37f - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 https://github.com/microsoft/testfx @@ -569,9 +568,9 @@ https://github.com/microsoft/testfx cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 - - https://github.com/dotnet/dotnet - 6165bd7ac3499cb712ca489f2ce44bb665174a1a + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 diff --git a/global.json b/global.json index 6f9207378ac4..0552121a41ea 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.105", + "dotnet": "10.0.201", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26203.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26203.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26202.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26202.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 6ddabc1bb960f4e41ff6be693cad15f3f7ed558b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 15 Apr 2026 00:33:37 +0000 Subject: [PATCH 30/31] Apply CI fixes: disable C++/CLI tests and skip net46 test pending toolset fix Agent-Logs-Url: https://github.com/dotnet/sdk/sessions/8e0aaefa-58b0-4318-9a34-e043019cf251 Co-authored-by: MiYanni <17788297+MiYanni@users.noreply.github.com> --- .../GivenThatWeWantToBuildACppCliProject.cs | 16 ++++++++-------- ...antToBuildACppCliProjectWithTransitiveDeps.cs | 6 +++--- .../Microsoft.NET.Build.Tests/SourceLinkTests.cs | 2 +- .../GivenThatWeWantToPackACppCliProject.cs | 2 +- ...ivenThatWeWantToPreserveCompilationContext.cs | 3 ++- .../GivenThatWeWantToPublishACppCliProject.cs | 2 +- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs index 83ff1a3553d6..3a2915cc928f 100644 --- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs +++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs @@ -13,7 +13,7 @@ public GivenThatWeWantToBuildACppCliProject(ITestOutputHelper log) : base(log) { } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_builds_and_runs() { var testAsset = _testAssetsManager @@ -49,7 +49,7 @@ public void It_builds_and_runs() .HaveStdOutContaining("Hello, World!"); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_builds_and_runs_with_package_reference() { var targetFramework = ToolsetInfo.CurrentTargetFramework + "-windows"; @@ -84,7 +84,7 @@ public void It_builds_and_runs_with_package_reference() } } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void Given_no_restore_It_builds_cpp_project() { var testAsset = _testAssetsManager @@ -98,7 +98,7 @@ public void Given_no_restore_It_builds_cpp_project() .Pass(); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void Given_Wpf_framework_reference_It_builds_cpp_project() { var testAsset = _testAssetsManager @@ -111,7 +111,7 @@ public void Given_Wpf_framework_reference_It_builds_cpp_project() .Pass(); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_fails_with_error_message_on_EnableComHosting() { var testAsset = _testAssetsManager @@ -139,7 +139,7 @@ public void It_fails_with_error_message_on_EnableComHosting() .HaveStdOutContaining(Strings.NoSupportCppEnableComHosting); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_fails_with_error_message_on_fullframework() { var testAsset = _testAssetsManager @@ -156,7 +156,7 @@ public void It_fails_with_error_message_on_fullframework() .HaveStdOutContaining(Strings.NETFrameworkWithoutUsingNETSdkDefaults); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_fails_with_error_message_on_tfm_lower_than_3_1() { var testAsset = _testAssetsManager @@ -173,7 +173,7 @@ public void It_fails_with_error_message_on_tfm_lower_than_3_1() .HaveStdOutContaining(Strings.CppRequiresTFMVersion31); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void When_run_with_selfcontained_It_fails_with_error_message() { var testAsset = _testAssetsManager diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProjectWithTransitiveDeps.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProjectWithTransitiveDeps.cs index 4808f781d25a..9bac9adf9619 100644 --- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProjectWithTransitiveDeps.cs +++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProjectWithTransitiveDeps.cs @@ -12,7 +12,7 @@ public GivenThatWeWantToBuildACppCliProjectWithTransitiveDeps(ITestOutputHelper private readonly Lazy _buildAsset; - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_can_generate_correct_depsJson_file() { TestAsset testAsset = _buildAsset.Value; @@ -23,7 +23,7 @@ public void It_can_generate_correct_depsJson_file() depsJsonContent.Should().Contain("NETCoreCppCliTestC.dll", "should contain transitive reference"); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_can_generate_all_runtimeconfig_files_to_output_folder() { TestAsset testAsset = _buildAsset.Value; @@ -35,7 +35,7 @@ public void It_can_generate_all_runtimeconfig_files_to_output_folder() }); } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_can_generate_all_depsjson_files_to_output_folder() { TestAsset testAsset = _buildAsset.Value; diff --git a/test/Microsoft.NET.Build.Tests/SourceLinkTests.cs b/test/Microsoft.NET.Build.Tests/SourceLinkTests.cs index 5fa880ec9812..544e18dbe2dd 100644 --- a/test/Microsoft.NET.Build.Tests/SourceLinkTests.cs +++ b/test/Microsoft.NET.Build.Tests/SourceLinkTests.cs @@ -290,7 +290,7 @@ public void SuppressImplicitGitSourceLink_ExplicitPackage(bool multitarget) } } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void Cpp() { var testAsset = _testAssetsManager diff --git a/test/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackACppCliProject.cs b/test/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackACppCliProject.cs index 28a9660ac8fb..10a8bdaaadc1 100644 --- a/test/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackACppCliProject.cs +++ b/test/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackACppCliProject.cs @@ -11,7 +11,7 @@ public GivenThatWeWantToPackACppCliProject(ITestOutputHelper log) : base(log) { } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void It_cannot_pack_the_cppcliproject() { var testAsset = _testAssetsManager diff --git a/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs b/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs index 1b4b5eaabcab..18dece1d353a 100644 --- a/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs +++ b/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs @@ -14,7 +14,8 @@ public GivenThatWeWantToPreserveCompilationContext(ITestOutputHelper log) : base } [Theory] - [InlineData("net46", "netstandard1.3", false)] + // Skip = "https://github.com/dotnet/sdk/issues/53796" + //[InlineData("net46", "netstandard1.3", false)] [InlineData("netcoreapp2.0", "netstandard2.0", false)] [InlineData("netcoreapp2.0", "netstandard2.0", true)] [InlineData("netcoreapp3.0", "netstandard2.0", false)] diff --git a/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishACppCliProject.cs b/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishACppCliProject.cs index 8a1408ba0e61..67d48f9712ef 100644 --- a/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishACppCliProject.cs +++ b/test/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishACppCliProject.cs @@ -11,7 +11,7 @@ public GivenThatWeWantToPublishACppCliProject(ITestOutputHelper log) : base(log) { } - [FullMSBuildOnlyFact] + [FullMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/53789")] public void When_referenced_by_csharp_project_it_publishes_and_runs() { var testAsset = _testAssetsManager From 5e98323b619a8618744e76c47847908f5aadd755 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 17:58:52 +0000 Subject: [PATCH 31/31] Reset files to release/10.0.3xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 1 - eng/Version.Details.props | 274 ++++++++++--------- eng/Version.Details.xml | 551 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 425 insertions(+), 407 deletions(-) diff --git a/NuGet.config b/NuGet.config index 612e59b10559..f3f728c95515 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 74e42fd4114f..40b8f31a30ed 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -8,142 +8,145 @@ This file should be imported by eng/Versions.props 2.1.0 - 10.0.4-servicing.26119.110 - 10.0.4-servicing.26119.110 - 10.0.4-servicing.26119.110 - 10.0.4-servicing.26119.110 - 10.0.4 - 10.0.4-servicing.26119.110 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26119.110 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26119.110 - 10.0.4 - 10.0.4-servicing.26119.110 - 10.0.4-servicing.26119.110 - 10.0.0-preview.26208.102 - 10.0.4 - 10.0.4 - 18.3.3 - 18.3.3-servicing-26208-102 - 7.3.0-rc.20902 - 10.0.202 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 10.0.0-preview.26208.102 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 2.0.0-preview.1.26119.110 - 2.2.4 - 10.0.0-beta.26208.102 - 10.0.0-beta.26208.102 - 10.0.0-beta.26208.102 - 10.0.0-beta.26208.102 - 10.0.0-beta.26208.102 - 10.0.0-beta.26208.102 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26119.110 - 10.0.0-beta.26208.102 - 10.0.0-beta.26208.102 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 15.2.202-servicing.26208.102 - 10.0.4 - 5.3.0-2.26208.102 - 5.3.0-2.26208.102 - 10.0.4-servicing.26119.110 - 10.0.4 - 10.0.4 + 10.0.5-servicing.26153.111 + 10.0.5-servicing.26153.111 + 10.0.5-servicing.26153.111 + 10.0.5-servicing.26153.111 + 10.0.5 + 10.0.5-servicing.26153.111 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5-servicing.26153.111 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5-servicing.26153.111 + 10.0.5 + 10.0.5-servicing.26153.111 + 10.0.5-servicing.26153.111 + 10.0.0-preview.26203.106 + 10.0.5 + 10.0.5 + 18.6.0-preview-26203-106 + 18.6.0-preview-26203-106 + 7.6.0-rc.20406 + 10.0.300-alpha.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 10.0.0-preview.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 2.0.0-preview.1.26153.111 + 2.2.5 + 10.0.0-beta.26203.106 + 10.0.0-beta.26203.106 + 10.0.0-beta.26203.106 + 10.0.0-beta.26203.106 + 10.0.0-beta.26203.106 + 10.0.0-beta.26203.106 + 10.0.5 + 10.0.5 + 10.0.5-servicing.26153.111 + 10.0.5-servicing.26153.111 + 10.0.0-beta.26203.106 + 10.0.0-beta.26203.106 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 15.2.300-servicing.26203.106 + 10.0.5 + 5.6.0-2.26203.106 + 5.6.0-2.26203.106 + 10.0.5-servicing.26153.111 + 10.0.5 + 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26208.102 - 10.0.4-servicing.26119.110 - 18.3.0-release-26208-102 - 10.0.4 - 10.0.4-servicing.26119.110 - 10.0.202 - 10.0.202 - 10.0.202 - 10.0.202 - 10.0.202 - 10.0.202 - 10.0.202 - 10.0.202 - 10.0.202-servicing.26208.102 - 10.0.202 - 10.0.202-servicing.26208.102 - 10.0.202 - 10.0.202 - 10.0.202-servicing.26208.102 - 18.3.0-release-26208-102 - 18.3.0-release-26208-102 - 3.2.4 - 10.0.4 - 10.0.4-servicing.26119.110 - 10.0.4 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 7.3.0-rc.20902 - 10.0.4 - 2.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 + 10.0.0-preview.26203.106 + 10.0.5-servicing.26153.111 + 18.3.0-release-26203-106 + 10.0.5 + 10.0.5-servicing.26153.111 + 10.0.300-alpha.26203.106 + 10.0.300-alpha.26203.106 + 10.0.300-alpha.26203.106 + 10.0.300-alpha.26203.106 + 10.0.300-alpha.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 10.0.300-preview.26203.106 + 18.3.0-release-26203-106 + 18.3.0-release-26203-106 + 3.2.5 + 10.0.5 + 10.0.5-servicing.26153.111 + 10.0.5 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 7.6.0-rc.20406 + 10.0.5 + 2.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 - 2.3.0-preview.26202.5 - 4.3.0-preview.26202.5 + 2.1.0-preview.25571.1 + 4.1.0-preview.25571.1 @@ -190,6 +193,7 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesMSBuildBuildHostPackageVersion) $(MicrosoftDeploymentDotNetReleasesPackageVersion) $(MicrosoftDiaSymReaderPackageVersion) $(MicrosoftDotNetArcadeSdkPackageVersion) @@ -201,9 +205,11 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion) $(MicrosoftExtensionsDependencyModelPackageVersion) $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ae26dac1d072..d144b971620b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 @@ -68,170 +68,174 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f + + + https://github.com/dotnet/dotnet + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + a612c2a1056fe3265387ae3ff7c94eba1505caf9 + + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f + + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://github.com/dotnet/dotnet - ca08b17aa41cb6c2cf159f3bb7925210147a9510 + f53e3a87c05e7d5ba77e7327dd453dc5fef64b7f - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 - + https://github.com/microsoft/testfx - cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + 43e592148ac1c7916908477bdffcf2a345affa6d - + https://github.com/microsoft/testfx - cc183c7df9aa41b4b27a1cc9d7d6f707ea51f4e3 + 43e592148ac1c7916908477bdffcf2a345affa6d - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 80d3e14f5e08b4888f464e3cd0d0b2445b63ec46 + a612c2a1056fe3265387ae3ff7c94eba1505caf9 diff --git a/global.json b/global.json index 80afb86eeaec..8fafeae1ec8a 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.201", + "dotnet": "10.0.105", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26208.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26208.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26203.106", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26203.106", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440"