Add-on Updater: a proof of concept add-on to check for, download, and apply add-on updates


 

Hi all,

 

I’m delighted to announce the release of the source code form of Add-on Updater, a proof of concept add-on that lets you check for, download, and apply add-on updates.

 

Background: at the moment NVDA does not have ability to check for updates to community add-ons. Although some add-ons do have this built in (WeatherPlus, for example), it would be better to let NVDA itself take care of this.

 

How Add-on Updater works: basically, I have generalized my own add-on update code from StationPlaylist Studio and Windows 10 App Essentials add-ons to include checking for updates for add-ons hosted on community add-ons website (addons.nvda-project.org). This is similar in concept to NVDA Store add-on (hosted on French NVDA website) with the following differences:

 

  • Tested and proven: the code in Add-on Updater (mine) has been tested and proven to be a solid add-on update client for a while.
  • Ready for inclusion in NVDA Core: my code uses same standards and coding style as rest of NVDA, thus it is ready for inclusion into NVDA screen reader.
  • Based on an existing pull request: the code is powered by a pull request regarding add-on updates, so it can be used to validate this work more broadly.
  • Integrated into NVDA menu: Add-on Updater will add a new item in NVDA tools menu to let you check for add-on updates.

 

Future work:

 

  • Simulating various update fetching mechanisms: although the current add-on code relies on server infrastructure located on community add-ons website (a PHP file), it is ready to work with other update fetching methods, including JSON (Javascript Object Notation)+database+REST API.
  • Automatically check for add-on updates at startup: similar to NVDA’s own update mechanism, add-on updates will be checked every 24 hours if told to do so (not implemented yet, although foundation has been laid).
  • Selective add-on updates: you’ll be able to check which add-on to update when prompted to do so (this requires implementation of accessible check list box, which is being worked on by a third-party NVDA developer).

 

Limitations:

 

  • Not all add-ons hosted on add-ons server will be updated via this add-on. Specifically, if an add-on provides its own update check mechanism, they will be ignored by this add-on.
  • Only manual add-on update check is available at the moment.
  • Add-ons hosted on places other than community add-ons website won’t be consulted.

 

Relevant NVDA issue:

https://github.com/nvaccess/nvda/issues/3208

 

Add-on Updater source code:

https://github.com/josephsl/addonUpdater

 

I’ll release a development version of this add-on once add-on review passes.

 

IMPORTANT: this proof of concept add-on will be discontinued the day a stable version of NVDA that provides add-on update checking facility is released.

 

Cheers,

Joseph

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