josephsl/wintenApps

Install tasks and Windows release compatibility: use a list of supported builds when detecting Windows 10

Closed this issue · 3 comments

Hi,

Although the following will not be in place until later in 2022, it would be best to document this early:

Currently when checking for Windows release compatibility, a version comparison is made (previously builds were compared). If the current Windows build is older than the minimum supported release, the add-on will refuse to install. This was also checked when the global plugin portion of the add-on was started.

Between 1507 and 21H1, there was one to one correspondence between feature updates and build numbers. This changed in 21H2 where there are three releases bearing this name: Windows 10 (19044), Server 2022 (20348), and Windows 11 (22000). Since the add-on ends support for a feature update shortly before end of consumer support from Microsoft (Windows App Essentials follows consumer support policy i.e. 18 months max), this means 21H2 will be dropped in early 2023; this policy also applies to server counterpart (Windows Server 2022). Before then Windows 10/11 22H2 will be released, and based on latest build data from different platforms (PC, server, Xbox, etc.), it is likely that Windows 11 will use a higher build number whereas Windows 10 will be less than 20000. This creates a "hole" in the install tasks logic:

  • Windows 10: support 22H2 build
  • Windows 11: check if build number is above the earliest supported build

Several options are available:

  • Keep supporting Windows Server 2022 until Windows 10 leaves support in 2025. This allows most of the version comparison logic to remain in place with the only change being checking for Windows 11 versions.
  • End support for Server 2022 at the same time as Windows 10 Version 21H2. This allows support duration policy to remain intact until then but this issue must be revisited at that time to deal with Windows 10 versus 11 feature update checks.
  • Extend Windows Server 2022 support until Windows 11 Version 21H2 support ends in mid-2023. This allows version check logic to reflect Microsoft's intentions with Windows 10 in 2023 since it is in maintenance mode at the moment.

While Windows Server 2022 comes with Desktop Experience (DE) capability, Microsoft is promoting its cloud offerings such as running Windows Server instances inside Azure more than ever (Desktop Experience must be selected at install time). Coupled with the fact that Windows App Essentials is optimized for Windows 10/11 clients since the add-on deals with modern apps, and since support duration for clients and servers remained the same in its history, it makes sense to go with the second option.

Therefore, a gradual change will be introduced where if running on Windows 10, the add-on will present a list of supported builds instead of showing the oldest supported version if installation check fails. Specifically:

  • Milestone 1: add comments in install tasks and in the global plugin module to explain the three releases of 21H2. This will be part of "copper 1" milestone due in March 2022.
  • Milestone 2: add support for Windows 10/11 Version 22H2. With the existing version check mechanism, no changes are necessary apart from comments - 22H2 features will be supported in appropriate places such as new or changed app modules. The earliest this can be done will be by "copper 3" milestone (tentatively September 2022).
  • Milestone 3: introduce a new Windows 10 installation error message that will list supported feature updates and their builds (if space permits) for the purpose of receiving updated localization data. The earliest this can be done will depend on when Windows 10 Version 22H2 will be ready for Windows Insiders, but I estimate this will be done by "copper 4" milestone (tentatively by December 2022).
  • Milestone 4: switch to checking for builds on Windows 10, as well as officially present the new error message when installation fails. This depends on when Windows 10 Version 22H2 is released to the public, but I estimate this will be done at the same time as milestone 3 (tentatively December 2022).
  • Milestone 5: end support for Windows 10 Version 21H2 (build 19044) and Server 2022 (build 20348). This will be done in early 2023.

Ultimately, the above milestones depend on the nature of Windows 10 Version 22H2 (it could be build 19045, 19100, somewhere in the 20000 range, or a possibility that it might be 21000 or higher). The above assumes 19044 < 22H2 < 22000 (Windows 11), or more realistically, 19044 < 22H2 < 20348 (Windows Server 2022).

Thanks.

Hi,

March 2022 update: milestone 1 (comments) complete. With the introduction of Windows 11 Version 22H2 changes to beta channel Insiders on March 23, 2022 (build 22581), milestone 2 (22H2 features) will be done early with provisions for milestone 3 (Windows 10 support messages) via a toggle; in other words, he new message will be present but hidden by default and is meant to gather localization data early. Milestone 3 work will be toggled on once Windows 10 Version 22H2 makes its way to release preview Insiders on Windows 10, at which point work on milestone 4 (message presentation) will commence. Therefore, the updated milestones are:

  • Milestone 1: copper 1 (complete)
  • Milestone 2: copper 2 and 3
  • Milestone 3: copper 2, more likely copper 3
  • Milestone 4: copper 3 and 4
  • Milestone 5 (end of support for Windows 10 21H2/Server 2022): 2023

Thanks.

Hi,

June 2022 update: Windows 11 Version 22H2 (build 22621) was sent to beta and release preview Insiders, with the word being that Windows 10 Version 22H2 will indeed be build 19045. Therefore milestone 3 (message presentation) will commence with add-on 22.07 (copper 2) with build 19045 added to Windows 10 builds list in coper 3 and possibly backported to copper 2 once 22H2 comes to release preview Insiders.

Thanks.

Hi,

July 2022 update: Windows 10 Version 22H2 was released to release preview Insiders, with the build based on Vibranium. This confirms the need to use builds list in Windows 10. Therefore, this issue is resolved.

Thanks.