Hi everyone,
For the past few weeks, one of the most talked about items in the add-ons
community was ability to check for add-on updates (issue 3208). After
talking to some add-on authors, I and Derek Riemer came up with a
preliminary design as follows:
Overall design: client/server - a partnership between a database and a
client UI, along with transport links utilizing a protocol similar to NVDA
Core's update check facility is envisioned. In order for this to work, a
scalable database is employed on the add-ons server that stores information
about add-ons, including add-on key, version, download URL and download
stats (if asked). The overall procedure is similar to NVDA Core's update
check facility and will be carried out as follows:
1. An add-on comes to add-ons server (after being reviewed).
2. Add-on is installed on the client side (NVDA user).
3. The add-ons database stores information about the add-on (server
side).
4. Client checks for add-on updates (automatic or manual), using a
dictionary.
5. Server (database) returns "true" if an update is available, and if
so, allows the client to fetch the results.
6. Client chooses an option (if yes, add-on will be downloaded; if
not, the version will be added to "do not ask" list).
7. This process repeats.
Issues:
* What: among various database packages, we should choose a robust
one that scales to the needs of the add-ons community. Note that the
database must run under Ubuntu, as this is the distro in use.
* When: anyone would like to help out when the time permits?
* How: how should add-on authors, community members, NV Access and
others take part in this project?
* Security: ideally, https should be employed.
* Scope: Jamie mentioned in issue 3208 that this should be limited
to add-ons posted on our community add-ons website
(addons.nvda-project.org).
* Other issues that may arise.
Issue link:
https://github.com/nvaccess/nvda/issues/3208
Thanks.
Cheers,
Joseph