[vs17.12] Disable OptProf bootstrapper - #14861
Merged
ViktorHofer merged 1 commit intoAug 28, 2026
Merged
Conversation
Disable fresh OptProf collection while continuing to apply existing optimization data. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a3e55e73-c65c-4e40-a051-c8de402438fb
AlesProkop
temporarily deployed
to
copilot-pat-pool
August 27, 2026 14:37 — with
GitHub Actions
Inactive
AlesProkop
temporarily deployed
to
copilot-pat-pool
August 27, 2026 14:37 — with
GitHub Actions
Inactive
AlesProkop
temporarily deployed
to
copilot-pat-pool
August 27, 2026 14:38 — with
GitHub Actions
Inactive
Contributor
There was a problem hiding this comment.
Pull request overview
Disables OptProf data collection by default on the vs17.12 servicing branch to avoid failures in the VS bootstrapper build step (managed-identity token acquisition), while keeping application of previously collected optimization data controlled by the existing pipeline variable.
Changes:
- Default
enableOptProftofalseto skip OptProf collection (including bootstrapper build) in official builds. - Gate
OptProf - Publish Artifact: MicroBuildOutputsonenableOptProfso the artifact publish doesn’t run when the bootstrapper output isn’t produced. - Bump
VersionPrefixto17.12.73.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
eng/Versions.props |
Bumps VersionPrefix for the branch build/versioning flow. |
azure-pipelines/.vsts-dotnet-build-jobs.yml |
Skips publishing MicroBuildOutputs when OptProf collection is disabled. |
.vsts-dotnet.yml |
Changes enableOptProf default to false and updates commentary around applying existing optimization data. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
ViktorHofer
approved these changes
Aug 27, 2026
AR-May
approved these changes
Aug 28, 2026
ViktorHofer
pushed a commit
that referenced
this pull request
Aug 28, 2026
Depends on #14867. Merge #14867 first so the downstream OptProf pipeline does not trigger for builds without OptProf artifacts. Related to #14861. ### Context The latest `vs17.11` official build ([15107183](https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=15107183&view=results)) fails before compilation while restoring optimization data: `No drops matching the specified prefix were returned` The requested prefix is `OptimizationData/DotNet-msbuild-Trusted/vs17.11`. Previous successful `vs17.11` Windows builds used `-officialSkipApplyOptimizationData true`, and this servicing branch no longer needs to collect fresh OptProf data. ### Changes Made - Changed `enableOptProf` to default to `false`. - Kept the existing behavior that sets `SkipApplyOptimizationData=true` when OptProf collection is disabled, avoiding the unavailable-data restore. - Gated `OptProf - Publish Artifact: MicroBuildOutputs` on `enableOptProf` because the bootstrapper output is not produced when collection is disabled. - Bumped `VersionPrefix` from `17.11.66` to `17.11.67`. ### Testing - Parsed `.vsts-dotnet.yml` and `azure-pipelines/.vsts-dotnet-build-jobs.yml` with `ConvertFrom-Yaml`. - Parsed `eng/Versions.props` as XML. - End-to-end validation requires the official pipeline run. ### Notes - We can skip the OptProf because this branch only inserts into .NET SDK and not VS, so there is no risk of introducing a performance regressions in VS. Copilot-Session: 1eca2b3e-1d22-46f4-aa2c-327ca9861c34
ViktorHofer
pushed a commit
that referenced
this pull request
Aug 28, 2026
Depends on #14867. Merge #14867 first so the downstream OptProf pipeline does not trigger for builds without OptProf artifacts. Related to #14861. ### Context The latest `vs17.8` official build ([15087653](https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=15087653&view=results)) fails before compilation while restoring optimization data: `No drops matching the specified prefix were returned` The requested prefix is `OptimizationData/DotNet-msbuild-Trusted/vs17.8`. All four official builds since August 17 have failed this way. An earlier build that got past restore then failed the OptProf bootstrapper because it could not obtain a VSDrop managed-identity token, so this servicing branch should stop both applying unavailable data and collecting fresh data. ### Changes Made - Added an `enableOptProf` parameter to the official pipeline and defaulted it to `false`. - Set `SkipApplyOptimizationData=true` when OptProf collection is disabled. - Gated the OptProf plugin, ProfilingInputs publish, bootstrapper, training-settings generation, `MicroBuildOutputs` publish, and `ready-for-training` tag on `enableOptProf`. - Kept the shared job-template default at `true` so the experimental pipeline preserves its existing OptProf behavior. - Bumped `VersionPrefix` from `17.8.58` to `17.8.59`. ### Testing - Parsed `.vsts-dotnet.yml`, `azure-pipelines/.vsts-dotnet-build-jobs.yml`, and the unchanged experimental caller with `ConvertFrom-Yaml`. - Parsed `eng/Versions.props` as XML. - End-to-end validation requires the official pipeline run. ### Notes - We can skip the OptProf because this branch only inserts into .NET SDK and not VS, so there is no risk of introducing a performance regressions in VS. Copilot-Session: 1eca2b3e-1d22-46f4-aa2c-327ca9861c34
ViktorHofer
added a commit
that referenced
this pull request
Sep 1, 2026
Fixes the `vs16.11` official build, which fails in `OptProf - Build VS bootstrapper` with `Failed to obtain an access token from the VSDrop Managed Identity` (e.g. [build 15153038](https://dev.azure.com/devdiv/DevDiv/_build/results?buildId=15153038)). Same fix as #14105 (vs17.14) and #14861 (vs17.12); `vs16.11` is the last branch without an `enableOptProf` switch. - Added an `enableOptProf` parameter to `.vsts-dotnet.yml`, defaulting to `false`, and threaded it to `.vsts-dotnet-build-jobs.yml`. - Gated the OptProf-collection steps on it: `MicroBuildOptProfPlugin@6`, ProfilingInputs publish, `MicroBuildBuildVSBootstrapper@3`, `VisualStudio.BuildIbcTrainingSettings`, `MicroBuildOutputs` publish, and the `ready-for-training` tag. - Bumped `VersionPrefix` to `16.11.21`. Unlike vs17.12/vs17.14, no `SkipApplyOptimizationData` change is needed: `.vsts-dotnet.yml` already forces it to `true` on this branch because there is no optimization data for vs16.11. VSSetup/packages are still produced, so VS insertion is unaffected. `enableOptProf` stays a queue-time parameter. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 083f8ce7-b343-4cc6-8bb2-ddc92f3d0117
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related to #14105
Context
The
vs17.12official build restores and compiles successfully, then fails inOptProf - Build VS bootstrapperbecauseVSEng-VSDrop-MIcannot obtain a managed-identity token.vs17.12is in servicing and no longer needs to collect fresh OptProf data.Changes Made
enableOptProfto default tofalse, disabling OptProf collection and the failing bootstrapper step.SkipApplyOptimizationDatagoverned by the pipeline variable.OptProf - Publish Artifact: MicroBuildOutputsonenableOptProfbecause the bootstrapper output is not produced when collection is disabled.VersionPrefixfrom17.12.72to17.12.73.Testing
.vsts-dotnet.ymlandazure-pipelines/.vsts-dotnet-build-jobs.ymlwithConvertFrom-Yamland parsedeng/Versions.propsas XML.$env:MSBUILDFORCEMULTITHREADED=1; .\build.cmd -v quiet; the locally bootstrapped .NET SDK lackedMicrosoft.NET.Sdk\tools\net472\Microsoft.NET.Build.Tasks.dll, causingMSB4062before compilation.Notes
MSBuild-OptProfdefinition17389may still resource-trigger withoutMicroBuildOutputs; its branch filtering is evaluated from itsmaindefault-branch configuration and requires a separate central change.