Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

winVersion: build 22000 is not recognized as Windows 11 #12626

Closed
josephsl opened this issue Jul 8, 2021 · 0 comments · Fixed by #12627
Closed

winVersion: build 22000 is not recognized as Windows 11 #12626

josephsl opened this issue Jul 8, 2021 · 0 comments · Fixed by #12627
Milestone

Comments

@josephsl
Copy link
Collaborator

josephsl commented Jul 8, 2021

Hi,

First concrete issue under #12585:

Background:

Since December 2019, Windows Insiders were testing builds not tied to a specific Windows release, eventually going through Manganese (mn), Iron (fe) and Cobalt (co) development cycles. It wasn't until June 24, 2021 that the builds Insiders were testing were revealed to be part of Windows 11 development cycle, with the first Insider Preview released on June 28th (build: 22000). Still, NVDA identifies build 22000 as Windows 10 due to the assumption that Windows NT 10.0 will always be called Windows 10 (see the discussion in #12544 for details).

Steps to reproduce:

  1. Install Windows 11 Insider Preview build 22000.51 or later (one must be a dev channel Insider).
  2. With latest alpha (23321,d304ed0c) installed, open Python Console and do:

import winVersion
winVersion.getWinVer()

Actual behavior:

NVDA says "Windows 10 21H2".

Expected behavior:

NVDA says "Windows 11 21H2".

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

alpha-23321,d304ed0c

Windows version:

Windows 11 preview (10.0.22000.65)

Name and version of other software in use when reproducing the issue:

None

Other information about your system:

An Insider Preview virtual machine

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

Prior to 2021.1: winVersion.getWinVer not implemented
2021.1: NvDA says "Windows 10 prerelease".

If add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Not applicable

Proposed solution:

In winVersion.getWinVer() function, say "Windows 11" if winVer (sys.getwindowsversion() tuple).build is 22000 or later, otherwise "Windows 10", no need to worry about doing this from winVersion.WinVersion class. Another option is defining an official WIN11/WIN11_21H2 constant in winVersion module and check against WIN11.build. Of these, I think the second solution is easier to read and understand.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Jul 8, 2021
…2626.

Despite the name, Windows 11 is powered by Windows 10 technologies internally (therefore major.minor is 10.0). The Windows 11 branding first appeared in build 22000 for Windows Insiders, therefore recognize 'Windows 10' build 22000 as Windows 11 (both the constant and release name were added).
josephsl added a commit to josephsl/nvda that referenced this issue Jul 8, 2021
…in use. Re nvaccess#12626.

Construct a minimum winVersion.WinVersion class (major, minor, build) and compare it against Windows 11 information. If running Windows 11 (build 22000) or later, set release name to 'Windows 11', otherwise 'Windows 10'.
seanbudd added a commit that referenced this issue Jul 9, 2021
* winVersion: recognize build 22000 as Windows 11 (21H2). Re #12626.

Despite the name, Windows 11 is powered by Windows 10 technologies internally (therefore major.minor is 10.0). The Windows 11 branding first appeared in build 22000 for Windows Insiders, therefore recognize 'Windows 10' build 22000 as Windows 11 (both the constant and release name were added).

* winVersion: set release name to 'Windows 11' if Windows 11 is indeed in use. Re #12626.

Construct a minimum winVersion.WinVersion class (major, minor, build) and compare it against Windows 11 information. If running Windows 11 (build 22000) or later, set release name to 'Windows 11', otherwise 'Windows 10'.

Co-authored-by: buddsean <sean@nvaccess.org>
@nvaccessAuto nvaccessAuto added this to the 2021.2 milestone Jul 9, 2021
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 a pull request may close this issue.

2 participants