[INTERNALS-WIN] Which Windows SDK versions to use for official builds?

[email protected] ("Christoph M. Becker") Tue, 6 Aug 2024 23:52:53 +0200
Newsgroups php.internals.win
Message-ID <[email protected]>
Hi all,

for a long time I'm wondering which version of the Windows SDK to use,
and if that should be fixed for the release cycle of a minor version?

That was less of an issue when there were dedicated build machines for
PHP and the PECL extensions, where the installed Visual Studio received
updates, but likely no new Windows SDK version was used during the
release cycle of any minor PHP version.  Although the winlibs had not
been build on these machines, and as such may have used different
Windows SDK versions.

However, nowadays there are multiple build systems, usually building on
hosted GH runners, where we have don't necessarily have control over
which Windows SDK version is being used, since these build systems
usually use just the latest available version.  If Github deploys a new
Windows SDK version for the hosted runners, that likely would be used
for new builds.

And while I'm not aware of any issues regarding different Windows SDK
versions (and we have no control over the used VS C++ runtime anyway),
it might be a good idea to consider to use a certain Windows SDK version
for all these environments (if not available out-of-the-box, it could be
installed upfront).

Of course, that wouldn't make sense if not coordinated across the
relevant builders, i.e.

* <https://github.com/php/php-windows-builder>
* <https://github.com/php/setup-php-sdk>
* <https://github.com/winlibs>
* <https://github.com/cmb69/php-ftw>

And if we decide to use dedicated Windows SDK versions, it might make
sense to add a flag to <https://github.com/php/php-sdk-binary-tools> to
be able to choose the appropriate Windows SDK version.  As it is now,
that is left to vcvarsall.bat (contained in Visual Studio tools), which
by default just uses the latest version.

Thoughts?

Christoph