nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.09k stars 633 forks source link

Add-Ons Manager: Generating a List of Installed Add-ons and their states #14613

Open britechguy opened 1 year ago

britechguy commented 1 year ago

Is your feature request related to a problem? Please describe.

No

Describe the solution you'd like

Very often the question arises regarding what add-ons a given user has installed, and whether those are enabled or disabled. There is no automated way to have Add-On manager generate this, and doing it by hand gets very tedious, and error-prone. Adding a button to generate such a list in a plain text file should be added.

Describe alternatives you've considered

None.

Additional context

This would be really handy to have for debugging purposes or discussions between NVDA users where it's suspected that an add-on might be causing behavioral differences.

amirmahdifard commented 1 year ago

there is really not much point of doing this, in the addon manager dialog, you can see the status of addon if you focus on it.

britechguy commented 1 year ago

Actually, yes, there is, or I wouldn't have requested it. I need to know (or supply) a list of ALL the add-ons I have installed, and whether or not they're active, when engaged in technical support or debugging. I've needed to send, or receive, same on many occasions.

Creating them by hand, when it should be, "hit a button and a text file gets generated," since this is the information the Add-On manager presents is really tedious, and ridiculous.

If it were only for a single add-on, what you say would be true. But in debug/support situations you often need to have the full view of all add-ons that are installed, their versions, and their states (enabled/disabled).

CyrilleB79 commented 1 year ago

This is a totally valid request IMO with a clear use case.

Note that there is already a workaround to get an automated way to get the info regarding add-ons; you need to ask for a log at DEBUG mode and look at NVDA initialization. However, parsing the log is also tedious and having the add-on information (name, version and enabled/disabled state) in a synthetic way would really be a plus.

Side note: @britechguy, your feature request is clearly meant to respond to a problem, i.e. asking installed add-on information for support. You could have split your description with the first half in the first paragraph.

Brian1Gaff commented 1 year ago

When you attempt to install a new version of nvda, the system very quickly can list add ons that probably won't work and disables them, Could this little bit of code be reused to generate a list of all addons. After all the current system knows when an add on is disabled already, so maybe half the job is done, you just need to shove it to a text file. Brian

-- @. Sent via blueyonder.(Virgin media) Please address personal E-mail to:- @., putting 'Brian Gaff' in the display name field. ----- Original Message ----- From: "Cyrille Bougot" @.> To: "nvaccess/nvda" @.> Cc: "Subscribed" @.***> Sent: Tuesday, February 07, 2023 7:49 AM Subject: Re: [nvaccess/nvda] Add-Ons Manager: Generating a List of Installed Add-ons and their states (Issue #14613)

This is a totally valid request IMO with a clear use case.

Note that there is already a workaround to get an automated way to get the info regarding add-ons; you need to ask for a log at DEBUG mode and look at NVDA initialization. However, parsing the log is also tedious and having the add-on information (name, version and enabled/disabled state) in a synthetic way would really be a plus.

Side note: @britechguy, your feature request is clearly meant to respond to a problem, i.e. asking installed add-on information for support. You could have split your description with the first half in the first paragraph.

-- Reply to this email directly or view it on GitHub: https://github.com/nvaccess/nvda/issues/14613#issuecomment-1420336153 You are receiving this because you are subscribed to this thread.

Message ID: @.***>

CyrilleB79 commented 1 year ago

As another workaround, you may ask to open the Python console, copy/paste the following line: import addonHandler;print('\n'.join(f"{a.name} - {a.version} - {a.manifest['author']}" for a in addonHandler.getRunningAddons())) and copy the result seen in the console output.

Or better copy/past this line in the Python console: import addonHandler;api.copyToClip('\n'.join(f"{a.name} - {a.version} - {a.manifest['author']}" for a in addonHandler.getRunningAddons())) And you'll get the add-on list directly in your clipboard, ready to be pasted somewhere.

These two commands only list the currently running add-on, i.e. those who have an effect during the current run of NVDA. It include add-ons pending for disable or pending for removal, but it does not include add-ons pending for install, pending for enable or incompatible.

josephsl commented 1 year ago

Hi,

Note: this is similar to #11240 but raised after a use case was found, specifically confusion over feature source. There has been a discussion on the NVDA users list about potential workarounds, the one most suggested being looking at add-ons table from add-ons manager. This works on the local system, but imagine a remote or a tech support scenario where the developer and/or the tech support personnel may wish to get a better idea of the situation and try to isolate issues with add-ons by looking at add-ons data in a concise, compact way.

I think a compromise would be to do what Reef suggested in #11240: a debug command where info about NVDA's installation (with add-ons data added) would be copied to the clipboard for diagnosis provided that users are aware of privacy implications. I think it would be best to do it not as a command but a Python Console method to communicate to the public that this should be done when instructed by a developer or a tech support personnel, similar to the method used to prepare to generate crash dumps when NVDA freezes while using apps. Alternatively, a button could be added to NVDA's about dialog to generate diagnostic data, similar in concept to recent Windows releases where one can copy system information from Settings/System/About (Windows+Pause). These two methods helps NVDA keep screen reading front and center while giving folks a possibility to review diagnostic information when requested (after all, one of the highest priorities of NVDA is making sure users can access screen information in an efficient, effective, and user-friendly way; add-ons are important to the ecosystem, but when it comes to the mission of NVDA project, screen reading is on the highest priority list).

Thanks.

britechguy commented 1 year ago

Side note: @britechguy, your feature request is clearly meant to respond to a problem, i.e. asking installed add-on information for support. You could have split your description with the first half in the first paragraph.

Cyrille, I guess some of this comes from my own time as a developer on other software projects. "Problem"/"bug" was synonymous. If the ticket was not to address an active bug, it was a "feature request" and there was no "problem" to address.

But in light of all of the conversation, I have to say that you need to understand that this request comes from me, a sophisticated NVDA user, who frequently offers support to others. There are many more like me. I don't want to have to read debug logs nor have a user generate same for something like this. On my own machine, I can open the Add-Ons Manager and see, in tabular format, precisely what it is that I'm asking for. The information is already collected, and presented, but it's locked in Add-Ons manager. If someone has, say, 15 add-ons, and that's not unrealistic, hand compiling that information is extremely tedious. Assistants often ask the same thing that gets asked in the suggested NVDA bug report steps, one of which is starting NVDA with add-ons disabled, to see if it's an add-on that's causing whatever may be. But then it comes down to figuring out which one.

I take an approach not unlike the "clean boot" technique for Windows where you then enable half, see if the issue comes back, then if it doesn't enable the other half. This process is repeated, paring each half in half until you zero in on the one and only (add-on in NVDA's case) process that is the culprit.

There are things that assistants who are trying to help users, who are not a part of the NVDA development team, have every right to ask for and which also make abundant sense. I know that the answer may not end up being, "Sure," but I also know that it is entirely wrong for anyone to claim that there is not a valid use case for this function. Many assistants are not able to read a debug log, and I can assure you that many NVDA issues with add-ons end up being cured, via the manual version of "search and destroy" for a problematic add-on, that will never make it on to the NVDA radar screen in GitHub. Anything that makes it easier for self-helpers to accomplish this should be considered a major plus and given due consideration for inclusion in a later NVDA update.

michaelDCurran commented 1 year ago

Clearly there will be a positive impact for some, and I doubt that adding an extra button to the add-ons manager would cause a negative impact for those who never use it, as long as it is clearly labeled and explained in the user guide. I'm in support.

marrie commented 1 year ago

I'm 100 percent in support for this, I'm a 1 button kind of person when needed and since I have about 15 or so add ons I use almost on a daily basis, I would also love to see this, maybe located under settings and not easilygotten to so as not to confuse the newbie user.

britechguy commented 1 year ago

I would also love to see this, maybe located under settings and not easilygotten to so as not to confuse the newbie user.

If this were to come into existence, I really want it to be a button that's a part of add-ons manager. This is a case where tightly binding a feature to the existing interface that handles add-ons is key. Were the button to read, "Generate Add-Ons List," and do just that, even if a newbie user were to activate it, there's nothing done that is damaging in any way. I presume that a Save dialog would be presented and if they didn't intend to do this they'd just hit the Cancel button, as is pretty standard practice under Windows in general.

marrie commented 1 year ago

Sure, that sounds fair. I was going to recommend that as well. An additional pop up or totle of that save as dialogue could be “choose where to save add ons list” then a prefilled in name as usual with these things.

rperez030 commented 1 year ago

Rather than a button that opens a save dialog, I would have a button to copy the list to the clipboard so that the user being asked about it can easily paste it on to an email message, chat, comment or notepad

From: Sarah Alawami @.> Sent: Friday, February 10, 2023 2:54 PM To: nvaccess/nvda @.> Cc: Subscribed @.***> Subject: Re: [nvaccess/nvda] Add-Ons Manager: Generating a List of Installed Add-ons and their states (Issue #14613)

Sure, that sounds fair. I was going to recommend that as well. An additional pop up or totle of that save as dialogue could be "choose where to save add ons list" then a prefilled in name as usual with these things.

- Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnvaccess%2Fnvda%2Fissues%2F14613%23issuecomment-1426267349&data=05%7C01%7Crobertoperez%40microsoft.com%7C77ced41fb4b04fd8a46a08db0ba085a7%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638116556298939461%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=6MgW2FDyjqOXrbEv4P0Rvd8q5Pahi9HCkLIXVMOBMFg%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAJH5KGW5G7MXRL556LP33WLWW2MEVANCNFSM6AAAAAAUTEAIMU&data=05%7C01%7Crobertoperez%40microsoft.com%7C77ced41fb4b04fd8a46a08db0ba085a7%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638116556298939461%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=aHSU%2BNIWMLGkSkOzRiaptjMcJFPAt%2BROnW9qJMR%2FMu8%3D&reserved=0. You are receiving this because you are subscribed to this thread.Message ID: @.***>

josephsl commented 1 year ago

Hi, I think a copy to clipboard option (with a concise button label) would be a good implementation for it. I also think this is a good feature for a new developer to work on, possibly being mentored by seasoned contributors. Thanks.

britechguy commented 1 year ago

I have no objection to an implementation that places same on the clipboard. The only reason I suggested a file is that, for myself, I'll virtually always be pasting that information into something, and if it's for me, that would be a file. But since this information could be being sent to an assistant, being able to paste into an email message is useful, too.

The big goal is not having the user have to compile such a list to share by hand.

rperez030 commented 1 year ago

I've wanted to get involved with NVDA development for a while, so I'll be happy to take on it if Joseph or someone else wants to mentor me. I won't have time in my hands until March though. If someone decides to get started on it before, I'll find something else for me.

From: Joseph Lee @.> Sent: Friday, February 10, 2023 4:12 PM To: nvaccess/nvda @.> Cc: Roberto Perez @.>; Comment @.> Subject: Re: [nvaccess/nvda] Add-Ons Manager: Generating a List of Installed Add-ons and their states (Issue #14613)

Hi, I think a copy to clipboard option (with a concise button label) would be a good implementation for it. I also think this is a good feature for a new developer to work on, possibly being mentored by seasoned contributors. Thanks.

- Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnvaccess%2Fnvda%2Fissues%2F14613%23issuecomment-1426352576&data=05%7C01%7Crobertoperez%40microsoft.com%7Cc1700a8f256e494062aa08db0bab6886%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638116603044340539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=OSqUrWWsE1vs7N0TjStMUYE9eDitH2ldEE2tNUZzHnQ%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAJH5KGU56EEHHH26HOH5JU3WW2VI3ANCNFSM6AAAAAAUTEAIMU&data=05%7C01%7Crobertoperez%40microsoft.com%7Cc1700a8f256e494062aa08db0bab6886%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638116603044340539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=ZE9tTPNRp2S1uAnc2K4yFG1Pqo%2FMUNU4US%2Bzt%2F8i4Sg%3D&reserved=0. You are receiving this because you commented.Message ID: @.**@.>>