Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Windows-2022] Multiple VC Build Tools will be removed on May, 13 #9701

Closed
3 of 12 tasks
mikhailkoliada opened this issue Apr 16, 2024 · 5 comments
Closed
3 of 12 tasks

Comments

@mikhailkoliada
Copy link
Member

mikhailkoliada commented Apr 16, 2024

Breaking changes

We will commence the procedure of removing redundant Microsoft.VisualStudio.Component.VC components and leave only the latest available version of some oh them.

Target date

The images rollout process will start on May, 13 and take 3-4 days.

The motivation for the changes

Due to numerous reports regarding errors when using Visual Studio 2022 with multiple pre-installed versions of VC build tools, we are compelled to cease the distribution of alternative versions of the component. Detailed description of the problem can be found here. The list of previously opened issues: #9670, #9404, #9086, #8891, #7867, #7832, #6107, #6091. Therefore, starting from May 6th, we will commence the procedure of removing redundant VC components and leave only the latest available version. We'll possibly reconsider this decision once the problem is resolved.

List of the VC components which are expected to be installed (if you notice that some useful base VC component is missing - indicate that in the comments, we will consider adding it):

Package Version
Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM latest
Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 latest
Microsoft.VisualStudio.Component.VC.ASAN latest
Microsoft.VisualStudio.Component.VC.ATL latest
Microsoft.VisualStudio.Component.VC.ATL.ARM latest
Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre latest
Microsoft.VisualStudio.Component.VC.ATL.ARM64 latest
Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre latest
Microsoft.VisualStudio.Component.VC.ATL.Spectre latest
Microsoft.VisualStudio.Component.VC.ATLMFC latest
Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre latest
Microsoft.VisualStudio.Component.VC.CLI.Support latest
Microsoft.VisualStudio.Component.VC.CMake.Project latest
Microsoft.VisualStudio.Component.VC.CoreIde latest
Microsoft.VisualStudio.Component.VC.DiagnosticTools latest
Microsoft.VisualStudio.Component.VC.Llvm.Clang latest
Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset latest
Microsoft.VisualStudio.Component.VC.MFC.ARM latest
Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre latest
Microsoft.VisualStudio.Component.VC.MFC.ARM64 latest
Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre latest
Microsoft.VisualStudio.Component.VC.Modules.x86.x64 latest
Microsoft.VisualStudio.Component.VC.Redist.14.Latest latest
Microsoft.VisualStudio.Component.VC.Redist.MSM latest
Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre latest
Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre latest
Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre latest
Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre latest
Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest latest
Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest latest

Possible impact

Builds that require non-latest components missing from the list above will be broken.

Platforms affected

  • Azure DevOps
  • GitHub Actions

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • macOS 11
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • Windows Server 2019
  • Windows Server 2022

Mitigation ways

Missing workloads can be installed manually in runtime. We recommend to uninstall unsupported workloads before installing new, it might be done using this snippet.

    steps:
      - name: Delete components
        run: |
                Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
                $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
                $componentsToRemove= @(
                    "Microsoft.VisualStudio.Component.VC.ATL.ARM"
                    "Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre"
                )
                [string]$workloadArgs = $componentsToRemove | ForEach-Object {" --remove " +  $_}
                $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
                # should be run twice
                $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
                $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
      
      - name: Install components
        run: |
                Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
                $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
                $componentsToRemove= @(
                  "Microsoft.VisualStudio.Component.VC.14.39.17.9.ATL.ARM"
                  "Microsoft.VisualStudio.Component.VC.14.39.17.9.ATL.ARM.Spectre"
                )
                [string]$workloadArgs = $componentsToRemove | ForEach-Object {" --add " +  $_}
                $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
                # should be run twice
                $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
                $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
@malkia
Copy link

malkia commented May 6, 2024

I saw only Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM and Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 - but not x64 and x86.

14.29 is Visual Studio 2019 (v142)

@joel-nascimento
Copy link

C++ MFC for v142 build tools (x86 & x64)

mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
{"fail_fast": false, "matrix": [{"name": "Windows", "workflow": "windows", "wpt_layout": "none", "profile": "release", "unit_tests": true, "wpt_tests_to_run": ""}]}
mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
{"fail_fast": false, "matrix": [{"name": "Windows", "workflow": "windows", "wpt_layout": "none", "profile": "release", "unit_tests": true, "wpt_tests_to_run": ""}]}
mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
{"fail_fast": false, "matrix": [{"name": "Windows", "workflow": "windows", "wpt_layout": "none", "profile": "release", "unit_tests": true, "wpt_tests_to_run": ""}]}
mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
mrobinson added a commit to servo/servo that referenced this issue May 16, 2024
{"fail_fast": false, "matrix": [{"name": "Windows", "workflow": "windows", "wpt_layout": "none", "profile": "release", "unit_tests": true, "wpt_tests_to_run": ""}]}
mukilan pushed a commit to mukilan/servo that referenced this issue May 16, 2024
@erik-bershel
Copy link
Contributor

Heads up.
Latest windows-2022 image contains described list of VC tools. Please ping us if something went wrong.

@erik-bershel erik-bershel removed the awaiting-deployment Code complete; awaiting deployment and/or deployment in progress label May 16, 2024
@mikhailkoliada mikhailkoliada unpinned this issue May 16, 2024
@caesay
Copy link

caesay commented May 16, 2024

This change is is "very not ideal". Has broken all my fairly basic/standard Rust pipelines in a very non-obvious way (eg. builds succeed but now are producing invalid binaries). I assume that the new image is missing something which is critical for Rust. Microsoft.VisualStudio.Component.VC.Tools.x86.x64 for sure? probably more.

@erik-bershel
Copy link
Contributor

Hey @caesay!
Thank you for catching this bug. We'll add this component with the next windows-2022 image release. If you see that something else is missing, be sure to mention it - we will definitely try to add it.

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

No branches or pull requests

5 participants