The new VS 18.0 release includes numerous bug fixes.
Bumped to v18.3.0 where this bug in the builtin vcpkg is fixed.
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--006a51241073e994b41acfe9ec718e94-->
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33861.
<!--021abf342d371248e50ceaed478a90ca-->
See the guideline for information on the review process.
| Type | Reviewers |
|---|---|
| ACK | maflcko, hodlinator, janb84 |
If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--174a7506f384e20aa4161008e828411d-->
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.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
Seems a bit premature, if this is still waiting for multiple pieces of unreleased software? Could just wait for it to be shown as fixed in a nightly build?
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'
could remove the version/year here, as the docs and presets should already be clear on it? (no other ci task is having the version/year in the title)
Thanks! Updated.
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
are there any docs on this image?
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
Rebased and undrafted.
lgtm ACK f9d87636044117aa4b73bd417fac1cd2d77712e1
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)?
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.
Rebased to resolve a conflict with merged bitcoin/bitcoin#34500.
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
https://en.wikipedia.org/wiki/Speedup - though here I'd also write it separately
wikipedia article is about the noun, not the verb
Fixed.
Undrafted.
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 🍳
<details><summary>Show signature</summary>
Signature:
untrusted 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}"
RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
trusted comment: review ACK 452c743951fa69f25f09e42239d1e70a0acf5c2b 🍳
ZeJCBWwDHyoCA8wRnxzHw3u7Z53n/0v6sSrpFYt2KYUq7pvIQDOFtdDCPfVJGikBk4iLjOMdtgniYCEd9P0ACA==
</details>
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).
<details>
winget install --id Microsoft.VisualStudio.Community `
--override "--wait --quiet --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.Git --includeRecommended"
winget install python3
</details>
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
winget install --id Microsoft.VisualStudio.Community ` --override "--wait --quiet --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.Git --includeRecommended" winget 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.
Milestone
31.0