-
-
Notifications
You must be signed in to change notification settings - Fork 659
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to automatically update add-ons #3208
Comments
Comment 1 by blindbhavya on 2014-09-07 08:27 |
Comment 3 by bhavyashah on 2015-01-01 07:44 |
Comment 5 by fastfinge on 2015-02-19 16:17 |
Comment 6 by jteh on 2015-02-20 01:17 For what it's worth, no one is disputing that add-on updates would be nice. It's just a matter of someone having the time to do it, including integration with the add-ons repository. |
Comment 7 by nvdakor on 2015-04-26 05:54 The big picture could be the following:
Issues to be resolved:
I think anyone can implement the client side, and Mesar knows more about the server side unless if Jamie has access to that server. We also need to hear from add-on authors so we can prepare our add-ons to take advantage of this idea in the future. |
Comment 8 by jteh (in reply to comment 7) on 2015-04-27 03:50
Ideally, that code should be refactored so that it can be reused rather than duplicating it. I started work on this a while ago (#3504), but never got around to finishing it.
Keep it simple. Just compare the old version with the new version. If it's different, consider it an update. This is all we do for NVDA updates. That doesn't account for someone running a versio that is newer than is available on the site, but if that happens, the user clearly is a developer and/or is working with one.
We should also consider automatic updates.
I'm leaning towards restricting this functionality to the official add-ons repository, which means we don't need a full update URL, just some key indicating that this can do updates.
See above. We don't need hashes for version identification. We do need hashes for verifying file integrity, but those can be generated automatically. Also, I don't think this needs to magically start working for existing add-ons. I think it's acceptable to require that users download a new version of the add-on initially to have it start updating.
We could do something similar to the current NVDA update check server script. The bigger issue is actually having a database on the server of add-ons and versions. Currently, as I understand it, version information is only listed in the Markdown for the website, which is not something we can reliably use.
The entire translation and add-ons system is now all running on the NV Access server. Mesar is pretty busy with other things these days and I haven't seen much from him lately, so I'm now handling everything related to this (unless Mesar wants to step in). I have a pretty good understanding of some parts of the system, though am still learning my way around others. |
Comment 9 by nvdakor (in reply to comment 8) on 2015-04-27 03:59
If you've started on this, then I think we should wait until #3504 is in place before returning to this ticket. Besides, update downloader and installer GUI has issues - for instance, the GUI for update downloader doesn't close automatically once an update has been downloaded and multiple update progress GUI may appear after a failed update is attempted.
Understood.
Sure. I'd say we the authors need at least three months time to adjust to the new routines once this ticket has been implemented; whatever major version of the add-on we were working on, that version or the version after that can implement needed changes, similar to what happened last fall when we started implementing add-on help functionality. |
Comment 10 by nvdakor on 2015-10-02 01:40
|
Comment 11 by jteh (in reply to comment 10) on 2015-10-02 08:29
I'm still thinking we should restrict this to the official add-on repository. Also, there are actually two URLs required in your proposed system: the URL for the manifest and the URL for the add-on itself.
As noted in comment:8, I think this is better done with a server script similar to the current update check server. This centralises things and allows for tracking of statistics (though that's of course not required for the first round).
This is going to be fragile. Honestly, I think dev versions should just increment the version number (like NVDA snapshots do) if users really are supposed to update. Thanks. |
Hi all, @derekriemer and I had a talk about how to implement the server side (client side can be done easily). @nvdaes said on the add-ons mailing list that a file that lists add-on keys and versions would be sufficient, but Derek believes a database would be much better (I agree). The questions are what (database), when (if someone has time), and how (procedure). CC @jcsteh |
Hi,
|
Also, a post request for this would be desired, with all the add-ons being specified. I.E. |
Could all the add on's be hosted on Git Hub and then someone uses the Git Hub server to keep the costs down? & would that be an easier way to have NVDA check for updates? |
This seemed to be quite an interesting ticket to read. Here are my thoughts.
|
I agree we want paid add-ons to get automatic updates. I imagined we would have them registered with our central repository, even though you probably wouldn't be able to actually purchase them from there. |
P3. This seems like it would take a large amount of time to implement, and is not currently stopping primary use cases. It would however be very convenient. @jcsteh Perhaps the priority should be higher if this is considered of strategic importance to NVDA? |
I think this is something we really do want, but there is just so much
other higher priority work that I can't justify making it p2 right now.
|
A lot of people have no idea where to get add on updates, though, or On 11/13/2016 11:29 PM, Reef Turner wrote:
|
Hi, After doing some more research and talking with @derekriemer, it appears the best possible server side implementation would be that of a table that includes info such as add-on name, description, version, download link and hash and so on, with another table reserved strictly for add-on updates. When the client looks up add-on updates, the client should specify add-on update channel, then the server should return update info such as version, download link and hash. For example, suppose we use the URL of the form: https://addons.nvaccess.org/updateCheck?name=addon_channel For instance, Windows 10 App Essentials dev version could say: The server should return nothing if the version is up to date or a response similar to how NVDA Core checks for new versions (version, download link, hash). For add-ons, a new manifest key named "addon_updateChannel" or something similar could be added, with the default value being "None" (no info). However, before the add-on updates database says that the specified add-on does not exist, the server would assume that one wants to update to the latest stable branch. Ideally, a new add-on that does include update name should be used. Additional comments are appreciated. Thanks. |
Note from @jcsteh:
Don't put description in that table, it's problematic for l10n. We'll
need another table for that.
We need to make the constraint unique across name-channel pairs.
…On 1/15/2017 7:19 PM, Joseph Lee wrote:
Hi,
After doing some more research and talking with @derekriemer
<https://github.com/DerekRiemer>, it appears the best possible server
side implementation would be that of a table that includes info such
as add-on name, description, version, download link and hash and so
on, with another table reserved strictly for add-on updates. When the
client looks up add-on updates, the client should specify add-on
update channel, then the server should return update info such as
version, download link and hash.
For example, suppose we use the URL of the form:
https://addons.nvaccess.org/updateCheck?name=addon_channel
For instance, Windows 10 App Essentials dev version could say:
https://addons.nvaccess.org/updateCheck?name=wintenApps-dev
The server should return nothing if the version is up to date or a
response similar to how NVDA Core checks for new versions (version,
download link, hash).
For add-ons, a new manifest key named "addon_updateChannel" or
something similar could be added, with the default value being "None"
(no info). However, before the add-on updates database says that the
specified add-on does not exist, the server would assume that one
wants to update to the latest stable branch. Ideally, a new add-on
that does include update name should be used.
Additional comments are appreciated. Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#3208 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFGiveFSOhB9tUP-F64Ygiq614BfXBuwks5rStPOgaJpZM4JXkpI>.
--
------------------------------------------------------------------------
Derek Riemer
* Department of computer science, third year undergraduate student.
* Proud user of the NVDA screen reader.
* Open source enthusiast.
* Member of Bridge Cu
* Avid skiier.
Websites:
Honors portfolio <http://derekriemer.com>
Awesome little hand built weather app!
<http://django.derekriemer.com/weather/>
email me at [email protected] <mailto:[email protected]>
Phone: (303) 906-2194
|
Two tables are being suggested here (one for the version info and one for
updates), but I think you only need one which is used for both. The unique
constraint ensures there's only ever one "current" version for each
channel. Even though the channel names can be arbitrary, I suggest the site
restrict it to well known names so that we know which to use by default,
etc.
|
Actually now we have comfort enough to see whether an Addon has updates or not:
@CyrilleB79 do you think there is anything else we need in this regard? Or should we close this issue? |
Hi, I advise keeping this issue open - the crux of the issue (updating add-ons without user intervention as demonstrated by Add-on Updater) is still on the table. Thanks. |
Does that behavior not have negative security implications if the add-on author changed something, the add-on becomes insecure, and it is updated automatically without users confirmation?
I would expect users should always confirm updates of add-ons as they do for NVDA itself.
cc: @gerald-hartig what do you think?
|
The initial description of this issue explicitly mentions users being prompted to install add-ons, and doesn't say anything about them being applied without any user intervention. I'd suggest that if someone has a strong case for such a feature, they make it in a separate issue. |
Hi, Even if an add-on is downloaded and installed automatically, the restart dialog should pop up to mitigate against security implications of automated add-on download and installation. However, as the originator of this issue (raised more than ten years ago), I think the point about confirmation makes sense as a safeguard - the question becomes at which point should the user be prompted to restart NVDA. The issue also touches psychology of human-software interaction - how users may not realize security implications when they respond "yes" when asked to restart the screen reader without giving it some thought. Based on the latest points raised (as of December 2024), I think it would be best to revisit this issue in a more concrete way a.k.a. creating a new issue with justifications. Even though I think I should close the issue (as the proposal writer), as NV Access marked this for 2025.1 milestone, I think we should hear from NV Access folks on their thoughts. Thanks. |
Yes, let's hear from NV Access on this topic. moreover, even without installing add-ons automatically without any user action, there is still a step that can be done to automate add-ons installation before full install: We can optionally allow NVDA to download add-on updates without any user action. Once the add-ons are downloaded and ready to be installed, NVDA can prompt the user for a confirmation to install the add-ons. For small add-ons and a fast connection, it does not change so much with respect to today's UX. But for big add-ons and/or slow connection, this makes the process smoother. |
@CyrilleB79 wrote:
I think before introducing this behavior to add-ons, NVDA should provide this for its own installer first. |
@Adriani90 there's still significant work remaining for this to be completed |
@seanbudd in terms of transparency, what is still to be done apart from the issues I referenced above? The milestone has been changed several times and there is an official position from NV Access is needed to continue this discussion constructively. Cc: |
@Adriani90 Please refrain from closing issues that are on milestones. In this case you asked for our feedback and then closed the issue before we responded. Was there any particular urgency in needing to close this issue? We appreciate the hard work of our community on managing these issues, but we also need to keep control of the product vision and release process - things that occur through github issues. |
I've outlined the remaining work in the issue now |
The original issue as it was written before, didn‘t contain the request for fully automated updates without user interaction, and this is perceived anyway as vulnerability as per discussion above. The part about less intrusive addon updates is covered in the referenced issues above. I thought closing this old issue which is partially fixed, in favor of the newer requests might give a better overview of what users expect. Imo the remaining work in the issue description is better suited in a discussion, but yeah feel free to let this open. I just wanted to make things easier for a better overview. |
More broadly we don't consider an issue titled as "ability to automatically update add-ons" complete until the remaining work outlined in the issue is complete. |
This comment was marked as off-topic.
This comment was marked as off-topic.
See also #15072. |
Part of #3208 Closes #15261 Summary of the issue: Add-ons currently only automatically update to the same channel with automatic updates enabled This is quite restrictive as many people may want the following scenarios: disabling specific add-ons from update, with automatic updates enabled by default enabling only specific add-ons from update, disabling automatic updates by default sticking to the latest version regardless of channel migrating back to a stable version from a beta/dev version sticking to the latest beta or dev version only migrating from an externally installed version Description of user facing changes Added an "update channel" submenu for add-ons on the installed/update tabs of the add-on store. This allows selecting a specific set of update channels on a per add-on basis. Added an item to the add-on store settings panel for selecting the default update channel for all add-ons Description of development approach Created an add-on store settings cache, which also stores add-on specific information. Migrated the "showWarning" setting to add-on store specific settings, so it can be saved independently of config profiles
Closes nvaccess#3208 Closes nvaccess#17162 Summary of the issue: To update add-ons automatically, users must click-through a dialog to confirm they wish to update all add-ons. Instead, this can be done in the background, and the user just needs to confirm whether to restart NVDA once add-on updates are complete. Additionally: - Users couldn't automatically update to incompatible add-ons. this is useful for alpha/beta testers testing add-on compatibility in breaking releases - The update notification was annoying - it queued too late and users should get a ding when it appeared. - If the add-on store server failed, users didn't receive displayable error messages when using automatic update notification - Since nvaccess#17597, the update notification panel will list all available updates for all channels. The update all button would update the add-on for each channel. Instead only the latest add-on version for any channel should be used/listed. Description of user facing changes - Added the ability to automatically update add-ons in the background. This can be changed in the "automatic updates" section. - Added the ability to update to incompatible add-ons. users can enable this via a new setting in the add-on store panel. - The update notification is now queued sooner (1 minute not 3 minutes) and provides a ding before focusing the panel - the update notification panel now only lists the most recent version of an add-on, rather than showing all add-ons that are newer across channels - Server errors now log an error message if the update notification fails to fetch data Description of development approach - Refactored update status tracking so devs can compare add-ons to see which is newer more easily - Re-designed message box tracking to make it work for pseudo-modals, e.g. the background update process - use a shorter starting offset for daily scheduled jobs Testing strategy: - Installed an old add-on - Tested automatic update notifications - Tested background automatic updates - Tested both of these without a server connection Known issues with pull request: None
Original report
Reported by nvdakor on 2013-05-08 07:08
Hi,
With the launch of the official NvDA add-ons page at addons.nvda-project.org, it became easier to search add-ons from one central location. Although this helps with downloading add-ons for the first time, a user who is running an add-on may find that he or she is running an older version of an add-on. So just like automatic NVDA update feature, there could be a feature where newer versions of add-ons would be downloaded automatically and prompt the user to install it without having to visit the addons site. Thanks.
Remaining work
update channel selection
Add-on store panel settings
The text was updated successfully, but these errors were encountered: