Skip to content

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

@josephsl

Description

@josephsl

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions