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
Contributor

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.

hebasto added a commit to hebasto/bitcoin that referenced this issue Jun 7, 2024
GHA Windows images previously had multiple VC Build Tools installed,
which required specifying the `VCPKG_PLATFORM_TOOLSET_VERSION`
explicitly to avoid linker errors. This issue has been resolved as per
actions/runner-images#9701.
fanquake added a commit to bitcoin/bitcoin that referenced this issue Jun 10, 2024
0d3ef83 ci: Use relative paths in `win64-native` CI job consistently (Hennadii Stepanov)
501acee ci: Remove no longer needed workaround for GHA Windows images (Hennadii Stepanov)

Pull request description:

  This PR:

  1. Removes no longer needed workaround for GHA Windows images.

  GHA Windows images previously had multiple VC Build Tools installed, which required specifying the `VCPKG_PLATFORM_TOOLSET_VERSION` explicitly to avoid linker errors. This issue has been resolved as per
  actions/runner-images#9701.

  2. Switches all references to temporary files to relative ones for consistency and readability.

ACKs for top commit:
  sipsorcery:
    ACK 0d3ef83.
  maflcko:
    ACK 0d3ef83

Tree-SHA512: e832b87fc6dee1e9d1eb452797f16b732e776c2ecdbe3dc9e64cc48ce9b5b89c569d5b96b999423ae1261ff4bf684b7003af84d8024ef5260682f531c4e8ff5e
bobeaton added a commit to silnrsi/silconverters that referenced this issue Jul 1, 2024
adding setup-dotnet action to see if that fixes this problem:
actions/runner-images#9701
KStocky added a commit to KStocky/ShaderTestFramework that referenced this issue Jul 14, 2024
cmb69 added a commit to winlibs/winlib-builder that referenced this issue Jul 16, 2024
This is needed to actually be able to do vs17 builds, since that
requires Visual Studio 2022, which is not available on the windows-
2019 runners.  That implies that vc15 builds are no longer possible
without additional changes[1], but that shouldn't be a concern because
none of the supported PHP versions require vc15 builds.

[1] <actions/runner-images#9701>
janus pushed a commit to BitgesellOfficial/bitgesell that referenced this issue Jul 26, 2024
GHA Windows images previously had multiple VC Build Tools installed,
which required specifying the `VCPKG_PLATFORM_TOOLSET_VERSION`
explicitly to avoid linker errors. This issue has been resolved as per
actions/runner-images#9701.
popescu-v added a commit to KhiopsML/khiops that referenced this issue Aug 1, 2024
…Hub runner

Thus, Ninja / VS interaction errors are partially mitigated.

See actions/runner-images#9701.
popescu-v added a commit to KhiopsML/khiops that referenced this issue Aug 8, 2024
…Hub runner

Thus, Ninja / VS interaction errors are partially mitigated.

See actions/runner-images#9701.
pablomartin4btc pushed a commit to pablomartin4btc/bitcoin-core-gui-qml that referenced this issue Aug 12, 2024
cmb69 added a commit to winlibs/winlib-builder that referenced this issue Sep 8, 2024
This is needed to actually be able to do vs17 builds, since that
requires Visual Studio 2022, which is not available on the windows-
2019 runners.  That implies that vc15 builds are no longer possible
without additional changes[1], but that shouldn't be a concern because
none of the supported PHP versions require vc15 builds.

[1] <actions/runner-images#9701>
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