Bootstrap Arcade tooling metadata - #1523
Conversation
Vendor eng/common from the pinned dotnet/dotnet Arcade build and add the minimal Maestro dependency metadata without importing Arcade into the existing build. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Bootstraps this repository for Maestro/Arcade-managed dependency flow by vendoring the eng/common infrastructure and adding the minimal metadata pins needed to track Microsoft.DotNet.Arcade.Sdk, while aiming to keep the existing Cake-based build behavior unchanged.
Changes:
- Add
Microsoft.DotNet.Arcade.SdkMSBuild SDK pin toglobal.json. - Introduce
eng/Version.Details.xmlto track the Arcade SDK dependency (URI + SHA). - Vendor a large
eng/commontree (scripts + pipeline templates) to enable Arcade/Maestro tooling and VMR sync scaffolding.
Reviewed changes
Copilot reviewed 152 out of 152 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| global.json | Pins Microsoft.DotNet.Arcade.Sdk as an MSBuild SDK alongside existing SDKs. |
| eng/Version.Details.xml | Adds Arcade SDK dependency metadata (URI/SHA) for Arcade/Maestro tracking. |
| eng/common/vmr-sync.sh | Adds Unix VMR synchronization helper script (darc forwardflow/reset). |
| eng/common/vmr-sync.ps1 | Adds Windows VMR synchronization helper script (darc forwardflow/reset). |
| eng/common/templates/vmr-build-pr.yml | Adds VMR PR verification pipeline template stub. |
| eng/common/templates/variables/pool-providers.yml | Adds pool-selection logic for public/internal/release branch routing. |
| eng/common/templates/steps/vmr-sync.yml | Adds pipeline steps to sync repo (and optional extra assets) into a local VMR checkout. |
| eng/common/templates/steps/source-index-stage1-publish.yml | Adds shim to core template for source-index stage1 publishing. |
| eng/common/templates/steps/source-build.yml | Adds shim to core template for source-build steps. |
| eng/common/templates/steps/send-to-helix.yml | Adds shim to core template for Helix submission steps. |
| eng/common/templates/steps/retain-build.yml | Adds shim to core template for build retention steps. |
| eng/common/templates/steps/publish-pipeline-artifacts.yml | Adds non-1ES PublishPipelineArtifact wrapper template. |
| eng/common/templates/steps/publish-logs.yml | Adds shim to core template for publishing logs. |
| eng/common/templates/steps/publish-build-artifacts.yml | Adds non-1ES PublishBuildArtifacts wrapper template. |
| eng/common/templates/steps/get-federated-access-token.yml | Adds shim to core template for federated token acquisition. |
| eng/common/templates/steps/get-delegation-sas.yml | Adds shim to core template for delegation SAS creation. |
| eng/common/templates/steps/generate-sbom.yml | Adds shim to core template for SBOM generation (legacy/deprecation wrapper). |
| eng/common/templates/steps/enable-internal-sources.yml | Adds shim to core template for internal feed enabling. |
| eng/common/templates/steps/enable-internal-runtimes.yml | Adds shim to core template for internal runtime access. |
| eng/common/templates/post-build/setup-maestro-vars.yml | Adds shim to core template for Maestro variable setup. |
| eng/common/templates/post-build/post-build.yml | Adds shim to core template for post-build stage. |
| eng/common/templates/post-build/common-variables.yml | Adds shim to core template for post-build variables. |
| eng/common/templates/jobs/source-build.yml | Adds shim to core template for source-build jobs. |
| eng/common/templates/jobs/jobs.yml | Adds shim to core template for standard job orchestration. |
| eng/common/templates/job/source-index-stage1.yml | Adds shim to core template for source-index stage1 job. |
| eng/common/templates/job/source-build.yml | Adds shim to core template for source-build job. |
| eng/common/templates/job/publish-build-assets.yml | Adds shim to core template for publish-build-assets job. |
| eng/common/templates/job/onelocbuild.yml | Adds shim to core template for OneLocBuild job. |
| eng/common/templates/job/job.yml | Adds shim to core template for single-job wrapper. |
| eng/common/templates-official/variables/pool-providers.yml | Adds 1ES-only pool provider variables template. |
| eng/common/templates-official/steps/source-index-stage1-publish.yml | Adds 1ES shim to core template for source-index stage1 publishing. |
| eng/common/templates-official/steps/source-build.yml | Adds 1ES shim to core template for source-build steps. |
| eng/common/templates-official/steps/send-to-helix.yml | Adds 1ES shim to core template for Helix submission steps. |
| eng/common/templates-official/steps/retain-build.yml | Adds 1ES shim to core template for build retention steps. |
| eng/common/templates-official/steps/publish-pipeline-artifacts.yml | Adds 1ES PublishPipelineArtifact wrapper template. |
| eng/common/templates-official/steps/publish-logs.yml | Adds 1ES shim to core template for publishing logs. |
| eng/common/templates-official/steps/publish-build-artifacts.yml | Adds 1ES PublishBuildArtifacts wrapper template. |
| eng/common/templates-official/steps/get-federated-access-token.yml | Adds 1ES shim to core template for federated token acquisition. |
| eng/common/templates-official/steps/get-delegation-sas.yml | Adds 1ES shim to core template for delegation SAS creation. |
| eng/common/templates-official/steps/generate-sbom.yml | Adds 1ES shim to core template for SBOM generation (legacy/deprecation wrapper). |
| eng/common/templates-official/steps/enable-internal-sources.yml | Adds 1ES shim to core template for internal feed enabling. |
| eng/common/templates-official/steps/enable-internal-runtimes.yml | Adds 1ES shim to core template for internal runtime access. |
| eng/common/templates-official/post-build/setup-maestro-vars.yml | Adds 1ES shim to core template for Maestro variable setup. |
| eng/common/templates-official/post-build/post-build.yml | Adds 1ES shim to core template for post-build stage. |
| eng/common/templates-official/post-build/common-variables.yml | Adds 1ES shim to core template for post-build variables. |
| eng/common/templates-official/jobs/source-build.yml | Adds 1ES shim to core template for source-build jobs. |
| eng/common/templates-official/jobs/jobs.yml | Adds 1ES shim to core template for standard job orchestration. |
| eng/common/templates-official/job/source-index-stage1.yml | Adds 1ES shim to core template for source-index stage1 job. |
| eng/common/templates-official/job/source-build.yml | Adds 1ES shim to core template for source-build job. |
| eng/common/templates-official/job/publish-build-assets.yml | Adds 1ES shim to core template for publish-build-assets job. |
| eng/common/templates-official/job/onelocbuild.yml | Adds 1ES shim to core template for OneLocBuild job. |
| eng/common/templates-official/job/job.yml | Adds 1ES shim to core template for single-job wrapper. |
| eng/common/template-guidance.md | Adds documentation describing how to consume the vendored Arcade templates. |
| eng/common/sdk-task.sh | Adds Unix wrapper to run Arcade “SDK tasks” via MSBuild. |
| eng/common/sdk-task.ps1 | Adds PowerShell wrapper to run Arcade “SDK tasks” via MSBuild. |
| eng/common/retain-build.ps1 | Adds helper to set AzDO build retention (“keep forever”). |
| eng/common/renovate.env | Adds shared Renovate environment configuration for self-hosted runs. |
| eng/common/README.md | Adds note that eng/common is automation-managed/vendor content. |
| eng/common/PSScriptAnalyzerSettings.psd1 | Adds PSScriptAnalyzer rule set for Arcade scripts. |
| eng/common/post-build/redact-logs.ps1 | Adds binlog/log redaction helper for post-build publishing. |
| eng/common/post-build/publish-using-darc.ps1 | Adds script to promote builds to channels using Darc. |
| eng/common/post-build/nuget-verification.ps1 | Adds NuGet package metadata verification script (VerifyMicrosoftPackage). |
| eng/common/post-build/nuget-validation.ps1 | Adds wrapper script to validate produced NuGet packages. |
| eng/common/post-build/check-channel-consistency.ps1 | Adds validation that BAR-provided channels match YAML configuration. |
| eng/common/pipeline-logging-functions.sh | Adds bash helpers for AzDO logging commands (task errors, variables, results). |
| eng/common/native/NativeAotSupported.props | Adds MSBuild props to compute NativeAOT support by OS/arch. |
| eng/common/native/LocateNativeCompiler.targets | Adds target to locate native compiler/linker via init-compiler.sh. |
| eng/common/native/install-tool.ps1 | Adds PowerShell helper to download/extract native build tools. |
| eng/common/native/install-dependencies.sh | Adds script to install native build dependencies by platform/distro. |
| eng/common/native/install-cmake.sh | Adds script to download/extract CMake for native builds. |
| eng/common/native/install-cmake-test.sh | Adds script to download/extract “cmake-test” tool. |
| eng/common/native/init-os-and-arch.sh | Adds shell helper to detect OS + CPU arch. |
| eng/common/native/init-distro-rid.sh | Adds shell helper to compute distro-specific RID / portable OS. |
| eng/common/native/init-compiler.sh | Adds shell helper to select C/C++ toolchain and linker flags. |
| eng/common/native/common-library.sh | Adds shell helper library for downloads/extraction/shims. |
| eng/common/msbuild.sh | Adds Unix entry point to run MSBuild with Arcade toolset init. |
| eng/common/msbuild.ps1 | Adds PowerShell entry point to run MSBuild with Arcade toolset init. |
| eng/common/loc/P22DotNetHtmlLocalization.lss | Adds Localization Studio settings file for HTML localization. |
| eng/common/internal/Tools.csproj | Adds internal toolset restore project (MicroBuild/manifest tooling). |
| eng/common/internal/NuGet.config | Adds internal-only NuGet feed config for Arcade internal tools. |
| eng/common/internal/Directory.Build.props | Adds internal build props importing Microsoft.DotNet.Arcade.Sdk. |
| eng/common/internal-feed-operations.sh | Adds bash helper for internal feed auth + Arcade restore workaround. |
| eng/common/internal-feed-operations.ps1 | Adds PowerShell helper for internal feed auth + Arcade restore workaround. |
| eng/common/init-tools-native.cmd | Adds CMD wrapper to bootstrap native tools on Windows. |
| eng/common/helixpublish.proj | Adds MSBuild project used to publish work items to Helix. |
| eng/common/enable-cross-org-publishing.ps1 | Adds script to set AzDO variables needed for cross-org publishing. |
| eng/common/dotnet.sh | Adds Unix helper to install .NET SDK via Arcade and optionally invoke it. |
| eng/common/dotnet.ps1 | Adds PowerShell helper to install .NET SDK via Arcade and optionally invoke it. |
| eng/common/dotnet.cmd | Adds CMD wrapper for dotnet.ps1. |
| eng/common/dotnet-install.sh | Adds Unix helper to install .NET SDK/runtime with Arcade plumbing. |
| eng/common/dotnet-install.ps1 | Adds PowerShell helper to install .NET SDK/runtime with Arcade plumbing. |
| eng/common/dotnet-install.cmd | Adds CMD wrapper for dotnet-install.ps1. |
| eng/common/darc-init.sh | Adds Unix helper to install Darc CLI (Maestro endpoint or pinned version). |
| eng/common/darc-init.ps1 | Adds PowerShell helper to install Darc CLI (Maestro endpoint or pinned version). |
| eng/common/cross/x86/tizen/tizen.patch | Adds Tizen rootfs patch for x86 cross builds. |
| eng/common/cross/x64/tizen/tizen.patch | Adds Tizen rootfs patch for x64 cross builds. |
| eng/common/cross/tizen-fetch.sh | Adds script to download Tizen RPMs for rootfs creation. |
| eng/common/cross/tizen-build-rootfs.sh | Adds script to construct and patch a Tizen rootfs. |
| eng/common/cross/riscv64/tizen/tizen.patch | Adds Tizen rootfs patch for riscv64 cross builds. |
| eng/common/cross/build-android-rootfs.sh | Adds script to build an Android sysroot/toolchain rootfs. |
| eng/common/cross/armel/tizen/tizen.patch | Adds Tizen rootfs patch for armel cross builds. |
| eng/common/cross/arm64/tizen/tizen.patch | Adds Tizen rootfs patch for arm64 cross builds. |
| eng/common/cross/arm/tizen/tizen.patch | Adds Tizen rootfs patch for arm cross builds. |
| eng/common/core-templates/variables/pool-providers.yml | Adds “core” redirect between official/non-official pool providers. |
| eng/common/core-templates/steps/source-index-stage1-publish.yml | Adds core logic for source-index stage1 tooling + upload. |
| eng/common/core-templates/steps/source-build.yml | Adds core logic for source-build execution and log publishing. |
| eng/common/core-templates/steps/send-to-helix.yml | Adds core logic to run Helix publish via msbuild wrappers. |
| eng/common/core-templates/steps/retain-build.yml | Adds core logic to set permanent build retention. |
| eng/common/core-templates/steps/publish-pipeline-artifacts.yml | Adds core redirect to official/non-official publish-pipeline-artifacts steps. |
| eng/common/core-templates/steps/publish-logs.yml | Adds core logic to move/redact/publish post-build logs. |
| eng/common/core-templates/steps/publish-build-artifacts.yml | Adds core redirect to official/non-official build artifact publishing. |
| eng/common/core-templates/steps/install-microbuild.yml | Adds core logic for installing MicroBuild plugin (incl. validation). |
| eng/common/core-templates/steps/install-microbuild-impl.yml | Adds core implementation selecting preview vs stable MicroBuild tasks. |
| eng/common/core-templates/steps/get-federated-access-token.yml | Adds core logic to acquire federated tokens via AzureCLI. |
| eng/common/core-templates/steps/get-delegation-sas.yml | Adds core logic to create storage delegation SAS tokens via AzureCLI. |
| eng/common/core-templates/steps/generate-sbom.yml | Adds deprecation warning step for legacy SBOM template usage. |
| eng/common/core-templates/steps/enable-internal-sources.yml | Adds core logic for internal feed enabling (legacy PAT or federated). |
| eng/common/core-templates/steps/enable-internal-runtimes.yml | Adds core logic for internal runtime SAS token setup. |
| eng/common/core-templates/steps/cleanup-microbuild.yml | Adds core logic to run MicroBuild cleanup tasks. |
| eng/common/core-templates/stages/renovate.yml | Adds core 1ES official pipeline stage template for Renovate. |
| eng/common/core-templates/post-build/setup-maestro-vars.yml | Adds core logic to derive/set Maestro/BAR variables post-build. |
| eng/common/core-templates/post-build/common-variables.yml | Adds core post-build variable group + defaults for tooling versions. |
| eng/common/core-templates/jobs/source-build.yml | Adds core logic to generate source-build jobs across platforms. |
| eng/common/core-templates/jobs/jobs.yml | Adds core job orchestration (incl. publish-build-assets integration). |
| eng/common/core-templates/job/source-index-stage1.yml | Adds core logic for source-index stage1 job composition. |
| eng/common/core-templates/job/source-build.yml | Adds core logic for a single source-build job. |
| eng/common/core-templates/job/onelocbuild.yml | Adds core logic for localization job (OneLocBuild). |
| eng/common/cibuild.sh | Adds Arcade-style CI build wrapper script (Unix). |
| eng/common/CIBuild.cmd | Adds Arcade-style CI build wrapper script (Windows). |
| eng/common/BuildConfiguration/build-configuration.json | Adds build retry configuration artifact content. |
| eng/common/build.cmd | Adds Windows wrapper for Arcade build.ps1. |
| eng/common/AGENTS.md | Adds brief doc indicating eng/common content is from Arcade and overwritten by automation. |
Suppressed comments (2)
eng/common/templates/steps/vmr-sync.yml:185
- The "Sync ... (Windows)" step is guarded by the non-Windows condition (
ne(...)), so it will run on Unix agents and skip on Windows. This also duplicates the Unix condition just above.
eng/common/template-guidance.md:17 - This line has a typo and a formatting issue: it refers to
templateIs1ESManaged1and is missing the closing backtick. It should reference thetemplateIs1ESManagedparameter consistently.
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
|
@dalexsoto review |
dalexsoto
left a comment
There was a problem hiding this comment.
The flowed Arcade files match their upstream source, but adding the Arcade SDK in global.json leaves the committed Executive Order build-tools inventory incomplete. The repository generator enumerates every msbuild-sdks entry, but docs/buildtoolsinventory.csv and docs/buildtoolsinventory.md do not include the new SDK. Please regenerate and commit both inventory files.
|
I don't think the files matter for .NET dependencies |
|
@dalexsoto stamp |
dalexsoto
left a comment
There was a problem hiding this comment.
Stamping as requested by @jonathanpeppers; no code review performed.
|
/azp run |
|
Azure Pipelines: No pipelines were found matching this branch/path. |
Bootstrap the repository for Maestro-managed Arcade dependency flow without changing the existing Cake-based build behavior.
eng/commontree from dotnet/dotnet commite2c1e00b3d0f96afb892fb261d5921565b400246.Microsoft.DotNet.Arcade.Sdk11.0.0-beta.26381.103ineng/Version.Details.xmlwith the matching source URI and SHA.global.jsonwhile preserving the existing Traversal and NoTargets SDK pins.Directory.Build.propsandDirectory.Build.targets; this PR does not alter build, signing, pipeline, or publishing behavior.Validation:
eng/commontree hash exactly matches the pinned upstream source tree.dotnet tool restore.dotnet cake --target=metadata-verify.