The new VS 18.0 release includes numerous bug fixes.
Bumped to v18.3.0 where this bug in the builtin vcpkg is fixed.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33861.
See the guideline for information on the review process.
| Type | Reviewers |
|---|---|
| ACK | maflcko, hodlinator, janb84 |
If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.
Reviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
218@@ -219,10 +219,10 @@ jobs:
219 include:
220 - job-type: standard
221 generate-options: '-DBUILD_BENCH=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DWERROR=ON'
222- job-name: 'Windows native, VS 2022'
223+ job-name: 'Windows native, VS 2026'
224 - job-type: fuzz
225 generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet" -DBUILD_GUI=OFF -DWITH_ZMQ=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
226- job-name: 'Windows native, fuzz, VS 2022'
227+ job-name: 'Windows native, fuzz, VS 2026'
203@@ -204,7 +204,7 @@ jobs:
204
205 windows-native-dll:
206 name: ${{ matrix.job-name }}
207- runs-on: windows-2022
208+ runs-on: windows-2025-vs2026
Yeah, https://github.com/actions/runner-images/tree/c218bde724e0ae9730d9ce101bca654a4c2e521d/images/windows/Windows2025-vs2026-Readme.md is a 404
I guess it doesn’t matter as long as ci is green here :shrug:
Yeah, https://github.com/actions/runner-images/tree/c218bde724e0ae9730d9ce101bca654a4c2e521d/images/windows/Windows2025-vs2026-Readme.md is a 404
It has been updated now: https://github.com/actions/runner-images/blob/9d993a88882958120cc141ad76008b50e94c40de/images/windows/Windows2025-VS2026-Readme.md
Also, according to #34515 this software is broken:
Also, moving to Visual Studio 2026 (Community edition) is currently not an option, it ships with a unusable vcpkg version.
but I guess this doesn’t effect us, or at least our usage in CI?
Also, according to #34515 this software is broken:
Also, moving to Visual Studio 2026 (Community edition) is currently not an option, it ships with a unusable vcpkg version.
but I guess this doesn’t effect us, or at least our usage in CI?
It affects the builtin vcpkg that is recommended in our docs. The CI uses an alternative vcpkg installation.
Converted to draft.
96@@ -97,7 +97,7 @@ cmake -B build --preset vs2022-static -DVCPKG_INSTALLED_DIR="C:\path_without_spa
97 One can skip vcpkg manifest default features to speedup the configuration step.
speedup -> speed up [verb phrase should be two words ("speed up") rather than the noun "speedup"; the current form is nonstandard in this context and may hinder clarity]
https://en.wikipedia.org/wiki/Speedup - though here I’d also write it separately
wikipedia article is about the noun, not the verb
I guess there’s no issue here with us assuming everyone compiling/developing on Windows is using an editor that is < 3 months old (https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-notes#november-update-1800)?
It shouldn’t be a blocker, as Visual Studio supports side-by-side installations. Anyone who needs VS 2022 can keep it installed alongside the new version.
The bug was fixed in Visual Studio 18.0.
review ACK 452c743951fa69f25f09e42239d1e70a0acf5c2b 🍳
Signature:
0untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
1RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
2trusted comment: review ACK 452c743951fa69f25f09e42239d1e70a0acf5c2b 🍳
3ZeJCBWwDHyoCA8wRnxzHw3u7Z53n/0v6sSrpFYt2KYUq7pvIQDOFtdDCPfVJGikBk4iLjOMdtgniYCEd9P0ACA==
crACK 452c743951fa69f25f09e42239d1e70a0acf5c2b
Thanks for removing the workaround I added! Searched to see if there are additional places with MSVC/2022 specific exceptions that could be removed but didn’t find any.
ACK 452c743951fa69f25f09e42239d1e70a0acf5c2b
Successfully build and tested using the (free) Visual Studio 2026 Community edition 18.3 using the new presets.
Given the changes in chainparams I also validated that a non-windows build still works
NB. All dependencies (python, git and VS 2026 Community edition ) can be installed with the following 2 winget commands (winget is preinstalled on windows 11).
0winget install --id Microsoft.VisualStudio.Community `
1 --override "--wait --quiet --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.Git --includeRecommended"
2
3winget install python3
NB. All dependencies (python, git and VS 2026 Community edition ) can be installed with the following 2 winget commands (winget is preinstalled on windows 11). Details
0winget install --id Microsoft.VisualStudio.Community ` 1 --override "--wait --quiet --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.Git --includeRecommended" 2 3winget install python3
Would you be willing to open a PR for the build docs to include these winget commands? It would help align the Windows instructions with the style of the other platforms.
I’ll be happy to review it.
hebasto
DrahtBot
fanquake
maflcko
l0rinc
hodlinator
janb84
Labels
Refactoring
Windows
Build system
Milestone
31.0