Community notice: upcoming NVDA 2019.3 and community add-ons
Hi NVDA community,
I’m Joseph Lee, a volunteer code contributor for NVDA screen reader project and the chief investigator for Python 3 work. First, I would like to thank my colleagues at NV Access and beyond for achieving a milestone in Python 3 work: alpha snapshots (master branch in source code) being powered by Python 3.
To the matter at hand: NVDA 2019.3 (Threshold, scheduled for later this year) will feature backwards incompatible changes, including speech refactor and Python 3. Because of this, many community add-ons (including add-ons hosted on addons.nvda-project.org) will need to be modified to take advantage of these changes, especially when it comes to supporting Python 3. Because Python 2 to 3 transition is a huge undertaking, I expect add-ons community will take several weeks to months (or longer) to transition vast majority of add-ons to Python 3, and collaboration is a key to success in this endeavor.
The following is a set of steps members of the community should take:
For add-on authors:
Frequently asked questions:
Q. Can I make an add-on “compatible” by editing the manifest file?
No. Although it’ll give you a sense of “assurance” that your add-on will be considered “compatible” by NVDA, you will need to obtain a version of an add-on compatible with Python 3, speech refactor, and other changes.
Q. I need to report issues with add-ons not found on community add-ons website.
For these (especially speech synthesizer add-ons), you must contact the authors listed under Add-ons Manager.
Q. I am using an add-on that is declared compatible, yet NVDA won’t load due to an error about configobj.
This is caused by manifest file encoding. Add-ons must now use UTF-8 (without BOM). Vocalizer (add-on 2.x) is affected by this bug and possibly others.
Q. When starting NVDA, I get a runtime error and it becomes silent.
The most likely cause is an add-on that uses a C extension (.pyd) module that won’t work properly on Python 3. Disabling the add-on will allow NVDA to proceed with startup. For add-ons affected by this, authors must now compile C extensions with Visual Studio 2017, the compiler used to compile Python 3.7.
Q. What about add-ons noted as end of life?
Please contact add-on authors about their plans to support Python 3. One such add-on is Control Usage Assistant, and I (Joseph Lee) will make an announcement about it very soon.
Thank you. And with that, let Python 3 porting begin!