Author Topic: Plugin Update Notification/Updater  (Read 22789 times)

AvikB

  • Sr. Member
  • ****
  • Posts: 945
For the benefit, it's too much hassle for managing and organizing add-ons. Whenever you re-organize them, you have to find and move that xml file too. Also I don't want to make my already cluttered skin/TM folders more messy by adding those files. I'd rather check add-on updates manually.
I will left the decisions to the add-on devs. But you will be able to just delete the manifest file when installing, that will remove auto update feature.


AvikB

  • Sr. Member
  • ****
  • Posts: 945

This is how the updater would look. You can set an addon to ignore list. this will remove the alert. Let me know what you guys think of the design?

derTyp

  • Jr. Member
  • **
  • Posts: 71
Looks good overall!

The only thing I would change is that everything seems too big (Buttons, Table Header) so make them like 3/4 of the size, this would match MusicBee menus better. The text in the rows on the other hand is a little too small and update available and ignore should be buttons (one takes you to the addon page, the other moves the addon to the ignore list).

I guess its just because its an early prototype that this is missing, but there needs to be an option to reenable ignored updates.

Bee-liever

  • Member
  • Sr. Member
  • *****
  • Posts: 3840
  • MB Version: 3.6.8878 P
I agree with redwing and think 'File Version' is the better way to go rather than "last updated" date.

It can be read from .dll's, from .xml's (if included) and I'm sure Steven could adjust the SkinCreator so that it would work with .xmlc skin files.

Having the plugin scan the MB installation folder's Plugins and Skins sub-folders and compile a manifest of file versions that are already there is got to be easier than adding in extra .xml tracking files for every plugin/skin/theatermode.

I think it's already hard enough getting the devs (some of them anyway  :)  ) to put a version number into the skin, let alone wanting them to include an extra file in the download
MusicBee and my library - Making bee-utiful music together

AvikB

  • Sr. Member
  • ****
  • Posts: 945
I agree with redwing and think 'File Version' is the better way to go rather than "last updated" date. It can be read from .dll's, from .xml's (if included) and I'm sure Steven could adjust the SkinCreator so that it would work with .xmlc skin files. Having the plugin scan the MB installation folder's Plugins and Skins sub-folders and compile a manifest of file versions that are already there is got to be easier than adding in extra .xml tracking files for every plugin/skin/theatermode.

That would be great. I was already implementing the XML manifest setup.
Ofc we would need some new methods in the API for listing all the installed plugins, skins with their version, ID, and last updated Date.
There is another problem though. For example how will you include the version and addon id for images and other misc items? I know an icon might not needed to get an update, but it might in some cases and then it would be troublesome.
using a manifest file would solve all of the issues. Devs just need to put a tiny amount of effort.

I am going to hold until Steven clarifies on it.

I think it's already hard enough getting the devs (some of them anyway :) ) to put a version number into the skin, let alone wanting them to include an extra file in the download
Well can't really do anything if they aren't willing to add a tiny bit extra work. I can just notify about the addons that have the manifest file in that case and ignoring others without it.

Last Edit: February 11, 2018, 07:16:14 AM by AvikB

boroda

  • Sr. Member
  • ****
  • Posts: 4653
for 'addon_*.xml' manifest: maybe its better to use some suffix rather than prefix for manifest files? its not very important for plugins, but it will be much easier to move skin to other folder as 2 files (skin/manifest) will be located next to each other in windows explorer.

AvikB

  • Sr. Member
  • ****
  • Posts: 945
for 'addon_*.xml' manifest: maybe its better to use some suffix rather than prefix for manifest files? its not very important for plugins, but it will be much easier to move skin to other folder as 2 files (skin/manifest) will be located next to each other in windows explorer.
Well for naming scheme, there is no need for suffix or prefix. The file will have the same name as the plugin or skin. the extension will be .meta


Steven

  • Administrator
  • Sr. Member
  • *****
  • Posts: 34368
I am going to hold until Steven clarifies on it.
clarify on what?
are you looking for an API that returns a list of all plugins, skins, TMs with the addon-id, name, version and date last modified?

AvikB

  • Sr. Member
  • ****
  • Posts: 945

I am going to hold until Steven clarifies on it.
clarify on what? are you looking for an API that returns a list of all plugins, skins, TMs with the addon-id, name, version and date last modified?
Welp after some thought i decided to use manifest file. No need to make any additional changes to API yet.

boroda

  • Sr. Member
  • ****
  • Posts: 4653
@AvikB, i think update notifier must take into account the minimum required musicbee version and display only supported add-ons or somehow mark unsupported ones.

AvikB

  • Sr. Member
  • ****
  • Posts: 945
Ok i have a very basic working demo ready.

https://mega.nz/#!CFwDQRgB!jVglRERRL-8GkS6GGOKW6Wv4mp-rhF8zQxhDkg8UBOg


This is the updater file. You can try it out.


You can try it on your own addon. Here is the XML file structure.

Code
<?xml version="1.0" encoding="UTF-8"?>
<addon-data>
<name>Addon Name</name>
<id>put your addon id</id>
<version>put your addon version</version>
</addon-data>

you can get the addon ID by going to your addon page and check the URL. you should see a number there. That is the ID



The XML file extension should be .meta, you can name it whatever you like. No need for prefix or suffix.
it should look something like:



Right now you can access the updater from the menu:


you can check if an update is available or not. and the download button will open the addon page:



This is a very basic implementation.



@AvikB, i think update notifier must take into account the minimum required musicbee version and display only supported add-ons or somehow mark unsupported ones.
I am not sure how musicbee handles unsupported addons? Does not musicbee already check if an addon is unsupported and disables it?
If needed i can add support for it but i am not sure how it can help since it is just for update notification.
Last Edit: February 12, 2018, 04:54:29 AM by AvikB

AvikB

  • Sr. Member
  • ****
  • Posts: 945
Incase anyone is concerned that adding a .meta file would make their folder messy. You can put the .meta file in a separate folder.

boroda

  • Sr. Member
  • ****
  • Posts: 4653
@AvikB, i think update notifier must take into account the minimum required musicbee version and display only supported add-ons or somehow mark unsupported ones.
I am not sure how musicbee handles unsupported addons? Does not musicbee already check if an addon is unsupported and disables it?
If needed i can add support for it but i am not sure how it can help since it is just for update notification.
mb doesn't support any compatibility check for skins/theater modes. it would be just the info that mb is needed to be upgraded also.

frankz

  • Sr. Member
  • ****
  • Posts: 3876
Just a quick note on the warning.  You don't really need the first sentence - the second sentence says the same thing.  In warnings, less is more.  The longer it is, the more people tend to ignore it, strangely.

It might also be cool to include a list of plugins that are installed but do not support the update check, maybe with a link back to the plugin page as a "manual check" or to contact the developer.  That way, the end user knows "Yes, the update checker plug-in sees that these unsupported plugins exist and the update checker is functioning properly, the reason there is no update listed for these is that they are not supported."  I don't know if that's possible or not, but it would be more user-friendly.

Great stuff, there.  Nice.
Last Edit: February 12, 2018, 07:02:15 AM by frankz