josephsl / wintenApps

Windows App Essentials NVDA add-on
GNU General Public License v2.0
24 stars 9 forks source link

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

Closed josephsl closed 2 years ago

josephsl commented 2 years ago

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:

Several options are available:

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:

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.

josephsl commented 2 years ago

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:

Thanks.

josephsl commented 2 years ago

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.

josephsl commented 2 years ago

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.