Move OneBranch pipelines to Windows Server 2025 / VSE 2026 image#41053
Draft
benhillis wants to merge 5 commits into
Draft
Move OneBranch pipelines to Windows Server 2025 / VSE 2026 image#41053benhillis wants to merge 5 commits into
benhillis wants to merge 5 commits into
Conversation
Switch the OneBranch container image from the Server 2022 / VS 2022 image to the Server 2025 / VS Enterprise 2026 image. This brings the LLVM/Clang toolset from 19.1.x up to 20.1.8. Per the OneBranch "2025 Infra Support" guidance, the Server 2025 host is selected via the structured featureFlags.WindowsHostVersion Version field rather than a host-name string. The top-level WindowsHostVersion pipeline variable was unreferenced and is removed. Co-authored-by: Copilot <[email protected]> Copilot-Session: c700591a-bd3e-4ae9-996e-61b14b693852
30bc2d7 to
c3cd27a
Compare
Member
Author
|
We also need to update our pool for the OSS pipelines, so this is not mergeable yet. |
…mage The OneBranch pipelines now run on the VSE2026 image, which ships clang-format 20.1.8 instead of VS2022's 19.1.5. Reformat the 52 files that 20.1.8 formats differently, and flip CMakeLists to prefer VS2026 (falling back to VS2022) so local formatting matches the pipeline again. This resolves the TODO to require VS2026 once CI supports it. Also replace the credential-looking example password in the WSLc C# API docs with a placeholder to clear a Credential Scanner (CSCAN-MSFT0090) hit. Co-authored-by: Copilot <[email protected]> Copilot-Session: d3de59ec-7508-440a-b7e5-1345aad2096a
The VS2026 CMake generator emits wsl.slnx instead of wsl.sln. The vendored NuGet 5.10 cannot auto-detect a .slnx solution, so 'nuget restore -NonInteractive' failed with 'Cannot determine the packages folder'. Pass -SolutionDirectory . so restore locates ./packages independent of solution format. Co-authored-by: Copilot <[email protected]> Copilot-Session: d3de59ec-7508-440a-b7e5-1345aad2096a
Co-authored-by: Copilot <[email protected]> Copilot-Session: 742a559b-56fb-4dcc-b795-f03e6a94a37b
The break statements following unconditional throw in two default switch cases are dead code (flagged in PR microsoft#41053 review). Remove them. Co-authored-by: Copilot <[email protected]> Copilot-Session: d3de59ec-7508-440a-b7e5-1345aad2096a
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.
Summary
Moves the OneBranch pipelines (PR, nightly, release) from the Windows Server 2022 / VS 2022 image to the Windows Server 2025 / VS 2026 image (
onebranch.azurecr.io/windows/ltsc2025/vse2026:latest), and makes the repo require Visual Studio 2026 for local builds.Motivation: the VS 2026 image ships LLVM/Clang 20.1.x (vs 19.1.x on VS 2022). An upcoming Linux SDK with a libc++ that needs Clang 20 requires this toolchain; VS 2022 only provides Clang 19. The WSL Linux components compile with the VS-bundled Clang, so the whole toolchain has to move to VS 2026.
Changes
Pipelines (all three
*-onebranch.yml)WindowsContainerImage->onebranch.azurecr.io/windows/ltsc2025/vse2026:latestfeatureFlags.WindowsHostVersion-> structuredVersion: 2025(documented way to select the Server 2025 host per OneBranch "2025 Infra Support"; altsc2025container requires a Server 2025 host)WindowsHostVersionpipeline variable, which was never referencedbuild-job.yml: NuGet restore now passes-SolutionDirectory .. The VS 2026 CMake generator emitswsl.slnx(the new XML solution format) instead ofwsl.sln, and the vendored NuGet 5.10 can't auto-detect.slnx, so restore needs an explicit solution directory to locate./packages.Require VS 2026 for build setup
CMakeLists.txt:find_vs_install_dirnow targets VS 2026 only ([18.0,19.0)) and hard-fails if it is not present. Dropped the VS 2022 fallback..config/*.winget,.vsconfig,tools/setup-dev-env.ps1, docs: install/require VS 2026 (package idMicrosoft.VisualStudio.<Edition>, channelVisualStudio.18.Release, toolset v145) and add the Clang toolset component.Clang-format baseline bump (19.1.5 -> 20.1.8)
FormatSource.ps1output matches the pipeline check.Misc
<password>placeholder.Validation
Nightly pipeline
wsl-github-nightlybuild 20260710.5 is green end to end on this branch: SDL (Credential Scanner), build_x64, build_arm64, package, nuget, and all wsl1 / wsl2 / wslc test phases (fe / ni / rs / vb) succeeded.