Re: Adding more add-ons to the core


David Griffith
 

Dear Joseph

 

Thanks for confirming the likely future issues and also for the incredible work you and others have delivered for us.

Again I don’t know if this is technically possible but would it not be a good idea to provide a  User option  of running an add- on update  routine  to update version numbers in manifest.ini   when we are likely to encounter the annual mass breakage of add-ons as you have described?

I think the logical code would be just find and replace, find version number and replace subsequent text?

I think I understand that amending the manifest in this  way would not be a cure all  for all add-ons and add-ons may well incorrectly report compatibility because of problems elsewhere in code requirements.

However with sufficient warnings for users taking this option it could at least rescue important functionality  for add-ons for a few more years.

I think we need to balance cutting edge with functionality.

Many of us are using older products with important access implications.  For example, I am using the Sapi 4 Eloquence provided by Kurzweil and I would hate to lose it as I consider it far better for my hearing than the purchased versions I also have. Mp3directCut is also long in the tooth but I know of no other free accessible alternative.

I know I can make time warps of portable versions but some security in an uncertain world of updates would reassure a lot of us I think.

David Griffith

 

 

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: 19 July 2021 15:07
To: nvda@nvda.groups.io
Subject: Re: [nvda] Adding more add-ons to the core

 

Hi,

actually, backward compatibility breaks will be an annual thing, according to NV Access. The reason being to modernize NVDA, to keep up with technology and market conditions, and in case we move to newer Python and dependencies, to take advantage of features offered in newer releases.

For now modifying the manifest will suffice. But as I hinted in this thread, the next big thing for add-ons community is already in the works, and when that happens, add-on code itself must be modified. Specifically, a crucial part of many add-ons will receive a syntax update due to internal changes to how specific constants are represented, and as a result, the old way of doing things is going away next year. This change partly stems from a desire for NVDA to conform more closely with certain programming practices, namely using a more elegant way of displaying a collection of constants or flags called an enumeration (enum for short). Old NvDA releases could not take advantage of it as enumerations were not introduced until Python 3.4, so in a way, NVDA source code is still in the midst of a Python 3.7 transition ,although focused on modernizing things.

Making things a bit complicated is that Python developers decided that the programming language will receive annual updates. Ideally NVDA should be on Python 3.9 by now, but during the course of a brief experiment with Python 3.8 earlier this year, critical issues with speech synthesizer support (specifically, SAPI4 support) and Windows 7 and 8.x support were found that prevented us (NVDA contributors) from moving to newer Python releases (for now). At some point I expect NVDA to move onto newer Python releases to take advantage of speed and code improvements, which will once again break add-ons, and since it is very risky to break compatibility in every release, NV Access decided that the best thing was limit compatibility breaks like this to once a year.

As for Golden Cursor (mentioned in another message): the closest equivalent is mouse Keys with mouse tracking from NVDA turned on. This works best if you've enabled beeps to indicate mouse position.

To answer Ella's question about Add-on Updater becoming part of NVDA Core: when I created this add-on three years ago, I intended that it will be part of NVDA Core eventually. Although it is too early to say, a variation is being planned by NV Access (more on that later).

Cheers,

Joseph

 

Join nvda@nvda.groups.io to automatically receive all group messages.