Skip to content

[automated] Merge branch 'vs18.6' => 'vs18.7'#13998

Open
github-actions[bot] wants to merge 4 commits into
vs18.7from
merge/vs18.6-to-vs18.7
Open

[automated] Merge branch 'vs18.6' => 'vs18.7'#13998
github-actions[bot] wants to merge 4 commits into
vs18.7from
merge/vs18.6-to-vs18.7

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

I detected changes in the vs18.6 branch which have not been merged yet to vs18.7. I'm a robot and am configured to help you automatically keep vs18.7 up to date, so I've opened this PR.

This PR merges commits made on vs18.6 by the following committers:

Instructions for merging from UI

This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.

merge button instructions

If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.

Instructions for merging via command line

Run these commands to merge this pull request from the command line.

git fetch
git checkout vs18.6
git pull --ff-only
git checkout vs18.7
git pull --ff-only
git merge --no-ff vs18.6

# If there are merge conflicts, resolve them and then run git merge --continue to complete the merge
# Pushing the changes to the PR branch will re-trigger PR validation.
git push https://github.com/dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7
or if you are using SSH
git push git@github.com:dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7

After PR checks are complete push the branch

git push

Instructions for resolving conflicts

⚠️ If there are merge conflicts, you will need to resolve them manually before merging. You can do this using GitHub or using the command line.

Instructions for updating this pull request

Contributors to this repo have permission update this pull request by pushing to the branch 'merge/vs18.6-to-vs18.7'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.

git fetch
git checkout -b merge/vs18.6-to-vs18.7 origin/vs18.7
git pull https://github.com/dotnet/msbuild merge/vs18.6-to-vs18.7
(make changes)
git commit -m "Updated PR with my changes"
git push https://github.com/dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7
or if you are using SSH
git fetch
git checkout -b merge/vs18.6-to-vs18.7 origin/vs18.7
git pull git@github.com:dotnet/msbuild merge/vs18.6-to-vs18.7
(make changes)
git commit -m "Updated PR with my changes"
git push git@github.com:dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7

Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.

dotnet-maestro Bot and others added 3 commits June 8, 2026 11:54
Co-authored-by: Nguyen Huu Linh <huulinhnguyen99@gmail.com>
The MicroBuildBuildVSBootstrapper task only special-cases 'release'/'preview'
as public channels; any other name (including 'stable') is treated as an
internal channel and requires a vsdrop {prefix};{suffix} installer-manifest
URL. The public 'stable' channel manifest uses a download.visualstudio.microsoft.com
URL with no semicolon, so the task throws "drop url ... is invalid".

'stable' and 'release' resolve to the same public channel manifest
(VisualStudio.18.Release.chman), so this trains the same shipping bits while
fixing the bootstrapper build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…#13992)

### Problem
PR #13923 changed `VisualStudio.ChannelName` from `int.main` to `stable`
to stop OptProf training against the moving `int.main` channel (which
caused assembly-version drift, e.g. System.Text.Json 10.0.0.4). Since
then the official build fails at **OptProf - Build VS bootstrapper**:

> The drop url
https://download.visualstudio.microsoft.com/.../VisualStudio.vsman is
invalid. Expected the drop url to have the format {prefix};{suffix}

### Root cause
The MicroBuild `MicroBuildBuildVSBootstrapper` task only special-cases
the literal channel names **`release`** and **`preview`** as public
channels. **Any other value — including `stable` — is assumed to be an
*internal* channel** whose installer-manifest URL is a vsdrop drop in
`{prefix};{suffix}` form. The public `stable` channel resolves
(`aka.ms/vs/18/stable/channel`) to `VisualStudio.18.Release.chman`,
whose installer-manifest URL is the public CDN
`download.visualstudio.microsoft.com/.../VisualStudio.vsman` (no
semicolon) -> the task throws.

The relevant task logic (`CreateConfigFile`):
https://dev.azure.com/devdiv/Engineering/_git/MicroBuild?path=/src/Tasks/BuildVSBootstrapper/plugin.ps1&line=286&lineEnd=307&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents

### Fix
Use `release` instead of `stable`. Both resolve to the **same** public
channel manifest (`VisualStudio.18.Release.chman`), so OptProf trains
against the identical shipping bits — but `release` is one of the two
special-cased names, so the task uses the aka.ms config template instead
of attempting to parse a vsdrop URL.

No behavioral change to trained bits; this only unblocks the
bootstrapper build.

Companion to #13993 (vs18.7).
@github-actions github-actions Bot requested a review from a team as a code owner June 8, 2026 14:21

@JanProvaznik JanProvaznik left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wait

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants