Skip to content
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

Add ability to view new available add-ons #16681

Closed
nvdaes opened this issue Jun 12, 2024 · 28 comments · Fixed by #17091
Closed

Add ability to view new available add-ons #16681

nvdaes opened this issue Jun 12, 2024 · 28 comments · Fixed by #17091
Labels
feature/addon-store Features / behavior of the add-on Store p5 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Milestone

Comments

@nvdaes
Copy link
Collaborator

nvdaes commented Jun 12, 2024

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

Users may want to be notified when new add-ons are available from the store.

Describe the solution you'd like

  • A New add-ons tab maybe added to the store, where last compatible add-ons not cached would be presented.
  • A dialog or other means, like an ui.message or a toast notification, would notify users when new add-ons are available, for example at startup or at scheduled intervals (each hour may be reasonable.
  • The dialog will be the store focusing the New add-ons tab, where the description and other details, an an action to install add-ons, would be available.

Describe alternatives you've considered

An add-on maybe created to notify about new add-ons, but it maybe better to include this in the core adding a new tab to the store.

Additional context

A bot used on Mastodon, on a Feeds subgroup of the add-ons mailing list and on a spanish mailing list is used by some people to be notified about new add-ons:

@RuturajL
Copy link

This is a useful improvement and I believe a simple one.
It's exciting to know what are the latest/new addons that were made available to the comunity. This way, I don't have to go in to the entire available addons list, and see what's new available.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 12, 2024

RuturajL wrote:

This way, I don't have to go in to the entire available addons list, and see what's new available.

Perhaps, instead of creating a tab for new add-ons, a new checkbox to show just new add-ons maybe added for the Available add-ons tab. Then, when new add-ons are published, the store dialog focusing the Available add-ons tab with this checkbox selected, could be opened. Maybe an easier solution.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 14, 2024

Another aspect to discuss would be if new add-ons should be cached. I think it would be better. Otherwise, when the store dialog is closed and reopened, the list of new add-ons will be empty until new add-ons are published.

@seanbudd seanbudd added p5 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. feature/addon-store Features / behavior of the add-on Store labels Jun 18, 2024
@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 18, 2024

I see that this has been triaged. I'll try to create a PR for implementation.

@seanbudd
Copy link
Member

@nvdaes - can you go over your implementation plan first? My understanding is this will require server work for NV access to create a view for new add-ons

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 18, 2024

Sean wrote:

@nvdaes - can you go over your implementation plan first? My understanding is this will require server work for NV access to create a view for new add-ons

I have another plan: for each user, new add-ons will be different: just the difference between cached compatible add-ons and add-ons available. What do you think?

@seanbudd
Copy link
Member

That will be reset to no add-ons every 6 hours as the cache updates, is this desired?

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 18, 2024

That will be reset to no add-ons every 6 hours as the cache updates, is this desired?

No, but we may create an additional permanent cache.

@CyrilleB79
Copy link
Collaborator

I'd prefer Sean's proposal, i.e. last update date being the same for all users. This provides much more interesting information, i.e. is an add-on actively being maintained?

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 18, 2024

I'd prefer Sean's proposal, i.e. last update date being the same for all users. This provides much more interesting information, i.e. is an add-on actively being maintained?

Maybe a good idea. My proposal maybe reached with an add-on if desired.
Then I'll wait for Sean reply. If NV Access doesn't want to work on this, then I'll go on with my plan.

@seanbudd
Copy link
Member

seanbudd commented Jun 18, 2024

@nvdaes - we have no immediate plans to work on this, however I'd only start work if it is clear your proposed implementation is accepted by the community. I think more feedback is needed here on what the implementation should look like

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 18, 2024

@seanbudd, I prefer starting to work on my initial plan. The implementation requiring server work maybe discussed separately. I think this server implementation maybe done when it"s clearer how it should be done, for example, to show a fixed number of recent add-ons, or the add-ons published in the las week, for all channels, for example. My plan should be easier to implement, at least theoretically. I"ll start working and we can open a separate issoe for this.

@seanbudd
Copy link
Member

@nvdaes feel free to create a prototype but be warned that it is possible it may not be accepted if the design is unpopular

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 19, 2024

I think that finally I prefer to add a new add-ons tab instead of a checkbox to show just new add-ons in the available add-ons tab, so that the tab title is better perceived. I will create a prototype requesting for feedback on the add-ons mailing list ant to people who maybe interested.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 22, 2024

I've created a prototype in the linked pull request:

  • An Available new add-ons tab is added to the store, to show new add-ons. An add-on is considered new if it was not available when NVDA was exited for the last time.
  • A job configurable from NVDA's menu, Preferences, addd-on store settings panel, can be scheduled at startup opening the store to the Available new add-ons tab. Similar to add-on updates, this is enabled by default, but the job will not triggered the first time that NVDA is started with this new feature, to avoid showing all add-ons as new automatically, since old add-ons will be saved when NVDA exits.
  • Updatable add-ons are not considered new add-ons.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Jun 23, 2024

I have thought that it's also useful to notify about new add-ons when new versionns of not installed add-ons are available. Imo the main goal of this feature is to see descriptions to decide if a new add-on should be installed. But descriptions may also be modified in new versions.
I'll include this in the linked PR.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Aug 8, 2024

I see that the needs product decission and needs testing labels are removed, so I'll move forward this issue.

@seanbudd
Copy link
Member

seanbudd commented Aug 8, 2024

@nvdaes - the PR had those labels, not this issue. The PR is still needing feedback from the community I think

@nvdaes
Copy link
Collaborator Author

nvdaes commented Aug 8, 2024

the PR had those labels, not this issue.

OK. For any reason I didn't found the labels in the PR, but I see them now.
I'm not very happy with the proposed combo box. I preferred to use a new tab to implement functionality similar to add-on updates notification, so let's see what happens with this or if we should close it.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Aug 31, 2024

I created an approved PR in nvaccess/addon-datastore-validation#38 adding timestamps when add-ons are submitted to the store. This is not merged since NV Access will wait until other related PRs are ready, as mentioned there.
I'l create a new PR in NVDA repo with a new combo box in NVDA Preferences, Settings, in the add-on store panel, to show add-ons sorted by submission time. The combo box can have three options:

  • Descending order, to show new submitted add-ons first. I think that this should be the default options, since I think alphabetical order is less meaningfull and arbitrary.
  • Ascending order, to show older add-ons first.
  • Disabled, to show add-ons in alphabetical order.
    Add-ons submitted to the store before the PR to add a timestamp corresponding to the submission time is merged should be sorted alphabetically.

Also, my intention is that the PR created in NVDA repo, as done with other fields of add-ons metadata, shows the add-on submission time in the details panel, formatted as a date.

@XLTechie
Copy link
Collaborator

XLTechie commented Aug 31, 2024 via email

@nvdaes
Copy link
Collaborator Author

nvdaes commented Aug 31, 2024

Luke wrote:

@nvdaes, I suggest, instead of "disabled", you name it "Alphabetic, ascending", or something like that.

OK. When I create the PR you can review it more. I haven't started since seems on my local master branch tests aren't passing and I will try to fix it.

@CyrilleB79
Copy link
Collaborator

Not sure to have fully understood.

But as suggested by @XLTechie, I'd avoid adding new controls to sort the list. Couldn't we in the first place just create a new column in the list with the submission date? The list is already sortable thanks to its headers.

If we acknowledge that it's not very user friendly, and waiting for a general way to click list headers, we may add an item in the context menu "Sort by" and one sub-item per header. I'd recommend that it be discussed and implemented in a separate issue/PR though.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Aug 31, 2024

@CyrilleB79 , myidea is not about adding new controls to the list. It's to add a combo box in NVDA's Preferences menu, settings, add-on store, like the show add-on update notifications. I think this should be configurable, added in config.conf.
Imo, a different PR to sort the list by columns may also be created, but this option maybe permanent.
See my comment in nvaccess/addon-datastore-validation#38
I think that adding this to the add-on store panel will make the add-on store gui more simple, and that this may not be changed often.
Let me know what you think.

@nvdaes
Copy link
Collaborator Author

nvdaes commented Sep 1, 2024

I think that this feature shouldn't deppend on the ability to sort items by columns in the store, since the submissionTime is a timestamp, not friendly formatted for users. In contrast, the publication date can be formatted, but sorting items by publication date can produce different results, which may not match timestamp order.
In my local work in progress, I have added a parameter to a function responsible to get sorted field data, to determine if submissionTime should be used. So, if in the future the ability to sort by column fields is implemented, this may also be used.
For now, I'm showing the formatted publication date as the last column of the add-ons list when available, and in the details panel, and add-ons can be sortered by submission time. This would work even if we remove the publication date column.
I'll go ahead unless more feedback is provided agains this approvach.

@XLTechie
Copy link
Collaborator

XLTechie commented Sep 1, 2024 via email

@nvdaes nvdaes mentioned this issue Sep 1, 2024
5 tasks
@nvdaes
Copy link
Collaborator Author

nvdaes commented Sep 1, 2024

Feel free to comment in the linked PR, now a draft.

@nvdaes nvdaes changed the title Notify about new available add-ons Add ability to view new available add-ons Sep 1, 2024
@hwf1324
Copy link
Contributor

hwf1324 commented Sep 1, 2024

Related: #15278, #15277

@github-actions github-actions bot added this to the 2025.1 milestone Sep 17, 2024
seanbudd pushed a commit that referenced this issue Sep 19, 2024
Part of #16681, fixup of PR 17091

Summary of the issue:
Add-on submissionTime in json metadata files is in milliseconds, but it needs to be converted to seconds to be transformed in a publicationDate

Description of user facing changes
None

Description of development approach
Convert add-on submissionTime to seconds in addonStore/models/addon.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature/addon-store Features / behavior of the add-on Store p5 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants