Skip to content

build: update to VS2026 toolchain#4303

Merged
lidavidm merged 2 commits into
apache:mainfrom
lidavidm:msvc
May 7, 2026
Merged

build: update to VS2026 toolchain#4303
lidavidm merged 2 commits into
apache:mainfrom
lidavidm:msvc

Conversation

@lidavidm
Copy link
Copy Markdown
Member

@lidavidm lidavidm commented May 6, 2026

The Windows images now use VS2026:
actions/runner-images#13638

@lidavidm
Copy link
Copy Markdown
Member Author

lidavidm commented May 6, 2026

It's not clear to me that we're actually targeting the VS2022 redistributable...but delvewheel also claims there are no external dependencies. Maybe we're good?

@lidavidm lidavidm marked this pull request as ready for review May 6, 2026 03:02
@lidavidm lidavidm requested review from kou and zeroshade as code owners May 6, 2026 03:02
@lidavidm lidavidm requested a review from amoeba May 6, 2026 03:03
Comment thread .github/workflows/packaging.yml Outdated
PLATFORM: ${{ matrix.os }}
run: |
if [[ "${PLATFORM}" == "Windows" ]]; then
# Target VS2022
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.

should this be VS2026?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

No. But I think this isn't needed so I'll just remove it.

Copy link
Copy Markdown
Member

@zeroshade zeroshade left a comment

Choose a reason for hiding this comment

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

just one nit question

Comment thread .github/workflows/packaging.yml
Comment on lines +30 to +32
set VCPKG_TARGET_TRIPLET=x64-windows-static
set VCPKG_TARGET_TRIPLET=x64-windows-static-2019
set VCPKG_DEFAULT_HOST_TRIPLET=x64-windows-static-2019
set VCPKG_OVERLAY_TRIPLETS=%source_dir%\ci\vcpkg\triplets
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.

Why the custom target? A comment would be good (esp. as I don't know).

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.

Ah, I think I'm caught up. We need to maintain a custom triplet definition so we can set a fixed toolchain which the default set of triplets don't do.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'm not actually sure we need to do this or that this actually has any effect. The runners only have 2026 installed, and vcpkg/cmake appear to fall back if it can't find the requested toolchain. Since everything is supposed to now be binary-compatible, I think just letting it use 2026 should be fine.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

We already use the static redistributable, so that shouldn't matter

set(VCPKG_CRT_LINKAGE static)
set(VCPKG_LIBRARY_LINKAGE static)

# Target VS2022
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.

Suggested change
# Target VS2022
# Target VS2019

This is what I expected this comment to be given https://learn.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170.

@lidavidm lidavidm changed the title build: target VS2022 using VS2026 toolchain build: update to VS2026 toolchain May 7, 2026
@lidavidm lidavidm merged commit c14c4d7 into apache:main May 7, 2026
79 checks passed
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.

3 participants