bitfocus / companion

Bitfocus Companion enables the reasonably priced Elgato Streamdeck and other controllers to be a professional shotbox surface for an increasing amount of different presentation switchers, video playback software and broadcast equipment.
http://bitfocus.io/companion
Other
1.46k stars 489 forks source link

[Feat] Companion Notification Service #2896

Open thedist opened 3 weeks ago

thedist commented 3 weeks ago

Is this a feature relevant to companion itself, and not a module?

Is there an existing issue for this?

Describe the feature

Similar to how Companion can make a request to check for version updates, I would like for some capability for Companion to check to see if there are any notifications either for Companion itself, or notifications submitted by module developers that would show to those who have connections for those modules.

If a module developer needs to let users know that there's an important change that requires them to update, there's currently no easy way to do that. We can alert users to changes with logging but that only helps after they update, it doesn't help communicate changes that need them to update.

The notifications should also be able to have some metadata to allow for targeting. For example if a module updates to support some new hardware, a notification could be submitted that's set to be visible to all users of that module prior to the update (users already on the update wouldn't need to see it, as they are up to date).

This may have an added benefit of encouraging users to stay up to date with future releases and not just stick to old versions if they see notifications of what has improved specifically with the modules they use.

Usecases

An example of where this would be beneficial is the Twitch module, which I'm doing a significant rewrite and changing to the Device Code Flow which was recently rolled out by Twitch. Such a change would require letting users know they would need to reauth, and also in the future I do plan to shut down my servers that have been handling the OAuth Authorization Code Flow process so far (the shutdown wont happen until plenty of time for migration has been given).

By having some sort of notification service I could submit a notification that will be shown to users of my module who haven't updated Companion that they would need to update Companion to use the new version of the module before some date.

Julusian commented 3 weeks ago

I am open to this, and I think this would be a portion of what would likely be done as part of having the module 'store' proposed in https://github.com/bitfocus/companion/issues/1002. So I think this is very tied to and perhaps dependent on that

bryce-seifert commented 3 weeks ago

I feel like there might also be some overlap with https://github.com/bitfocus/companion/issues/2319

thedist commented 3 weeks ago

2319 focuses on Change Logs, where as what I was suggesting could be used to deliver change logs it would not be limited to them and could be used for anything else, for example a simple notification that some online service the module is reliant on will be down for maintenance for x period of time, which may have nothing to do with change logs.

dnmeid commented 3 weeks ago

I would focus on the "update available" aspect and see this as a part of the module store.
In the store I'm all open for some user communication, like module reviews and comments, developer notes, whatsoever. But nothing pushed to the application GUI. In my opinion as a user I want my software to be as silent as possible and I would definitely not want any notifications pushed at me. I can imagine a small icon at the connection like a "!" if it is outdated and maybe a " :mega: " if there has been some activitiy on the store for this module in the past week.

But the user would have to actively look for it himself.

thedist commented 3 weeks ago

I was envisioning this as some sort of notification icon in some corner of the UI that would indicate that there's a notification (potentially a number of unread notification). When clicked it'd go to a page that has a list of notifications, and when read the notification icon would no longer be set to active.

It should require user interaction to go to the notifications page, there shouldn't be any popup modal in the middle of the screen or anything of that nature, but I also think hiding notifications through a store (which doesn't yet exist) and potentially multiple clicks for users to get to information about things such as service outages that would impact their use of a module or even Companion itself if it is an outage with Companion Cloud or some other Bitfocus service current or future, would be terrible user experience, and unacceptable design.

For example if you go to AWS and there's a service issue, the bell icon lights up users can click it to see notifications, if it's an issue, click it for more info etc... It doesn't take you away from the page you're on unless you want to, it doesn't make you have to go to a AWS product page and scroll through to get to updates or what may be the thing the notification is alerting you to.