getmusicbee.com

General => MusicBee Wishlist => Topic started by: derTyp on February 08, 2018, 02:02:02 PM

Title: Plugin Update Notification/Updater
Post by: derTyp on February 08, 2018, 02:02:02 PM
Hi,

it would be nice if MusicBee would be able to notify you about available Plugin updates.
 
As the Plugin metadata is currently hosted on the website it should be possible to integrate this with a relatively simple API, maybe even do some verification of the data. If there is an update a popup could be shown that guides you to the new download, etc.
Even better would be an automatic update (opt-in) but this would require a common format of distribution for plugins and could be hard to implement.

I see that the version with the most downloads is, most of the time, the first version released (at least for my plugins) and i think this could really help to get new features to all users of a plugin.

This has already been requested here (https://getmusicbee.com/forum/index.php?topic=10715), but at that time I think there was no official Hub for plugins as it is now.

Best regards,
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 09, 2018, 08:27:29 AM
+100500. and it would be useful if dashboard for add-ons supports 'last updated' tag along with 'version'.
Title: Re: Plugin Update Notification/Updater
Post by: Iasc on February 09, 2018, 09:26:40 AM
+1
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 09, 2018, 11:47:21 AM
+100500. and it would be useful if dashboard for add-ons supports 'last updated' tag along with 'version'.
"last updated" is already supported. it is not user editable. The system automatically sets the last updated date.

(https://i.imgur.com/XvRCed4.png)
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 09, 2018, 11:57:55 AM
I agree there should be an auto updater for addons. but there are few challenges. Even though the data is stored in the database. The downloads are hosted in 3rd party website so no auto download feature.

There is already API available for the website to access the addon info stored in the website:
https://getmusicbee.com/help/api/ (https://getmusicbee.com/help/api/)

you will need the addon id to get the data though. but right now there is no way to detect what addons are installed and what their id, version is. Add-on devs need to include the id and the version ... maybe in a XML file. then musicbee can read that XML file for each addons that are installed and then check for the update using the API.

but i have seen a lots of the time add-on devs not using the "version" field properly or increment them after each update. My initial goal is to make a updater plugin eventually.  :-\
but the only problem is that It will require extra work from addon devs. If the add-on devs are willing to do this i can make a plugin for the musicbee that will notify if a newer version is available or not.
Title: Re: Plugin Update Notification/Updater
Post by: Sidar on February 09, 2018, 01:56:55 PM
+1
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 09, 2018, 03:21:23 PM
but the only problem is that It will require extra work from addon devs. If the add-on devs are willing to do this i can make a plugin for the musicbee that will notify if a newer version is available or not.
this would be great. just foresee that some add-on devs wont support update notifications. such add-ons (eg. without proper manifest/xml/etc.) must be marked in add-on updater somehow.
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 09, 2018, 04:58:56 PM
To get this going I don't think we should talk about auto-upgrades first. This has so much implications like packaging format, support for old versions, security, hosting services, etc. As a first step it would be nice to get a notification for users if there is an update available.

In my opinion it would be better to have this functionality in the core MusicBee program. Given the importance of such a plugin, everyone should get this functionality out of the box.

On the other hand I would like something, that basically all add-ons should use, to be open source. So maybe it would be possible to develop an updater plugin in a github repo and get it preinstalled with every new release of MusicBee like the last.fm plugin or theatermode. I think this would be the optimal solution.
Ideally there would be a possibility(API function) to get the PluginInfo instance of all installed plugins. This class has most of the information needed (version, name, supported api) and every Plugin already uses it. Maybe Steven can add an AddonID field for the ID on the website to the class.

but i have seen a lots of the time add-on devs not using the "version" field properly or increment them after each update. My initial goal is to make a updater plugin eventually.  :-\
but the only problem is that It will require extra work from addon devs.
I don't see this as a problem, because if you care about your addon and want updates to reach your users, you can add/update a few strings. If not, you/your addon simply won't profit from update notifications/auto-update.
Also there could be workarounds for already installed addons or addons of which the id can not be determined, e.g. doing a search for the name on the website, asking the user which of these addons it is and saving the mapping in an internal DB.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 09, 2018, 06:09:47 PM
derTyp, +1, but its very complicated things. we should start with something that is easy to implement (and we can evolve updater later). but i completely agree that add-on updater must be integrated in mb (not just as a plugin, even integrated plugin).
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 09, 2018, 06:27:02 PM
+100500. and it would be useful if dashboard for add-ons supports 'last updated' tag along with 'version'.
"last updated" is already supported. it is not user editable. The system automatically sets the last updated date.

(https://i.imgur.com/XvRCed4.png)
i frequently update some plugin page (eg plugin description) without updating download link. will site change 'last updated' tag in this case?
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 04:10:57 AM

 i frequently update some plugin page (eg plugin description) without updating download link. will site change 'last updated' tag in this case?
Yes, it should. The "last updated" field does not rely on changing the download link.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 04:27:22 AM
To get this going I don't think we should talk about auto-upgrades first. This has so much implications like packaging format, support for old versions, security, hosting services, etc. As a first step it would be nice to get a notification for users if there is an update available.
 

Yeah good idea. I think we need to establish a standard way to store the addon data that can be readable by the updater. I am thinking of XML file that stores the important data, maybe something like this:

Code
<?xml version="1.0" encoding="UTF-8"?>
<addon-data>
<name>Addon anme goes here</name>
<id>addon id according to the website dashboard</id>
<version>1.0.1</version>
</addon-data>

if needed we can add more field in future.

Also the .xml file naming scheme should be something like
Code
addon_*.xml

then the updater plugin can search through the directory and looks through all the files by that naming scheme and checks if a new version available or not. It shouldn't be too hard.


In my opinion it would be better to have this functionality in the core MusicBee program. Given the importance of such a plugin, everyone should get this functionality out of the box. On the other hand I would like something, that basically all add-ons should use, to be open source. So maybe it would be possible to develop an updater plugin in a github repo and get it preinstalled with every new release of MusicBee like the last.fm plugin or theatermode. I think this would be the optimal solution.

that could work. ofc we need to build it first and let Steven decide what to do with it.



Ideally there would be a possibility(API function) to get the PluginInfo instance of all installed plugins. This class has most of the information needed (version, name, supported api) and every Plugin already uses it. Maybe Steven can add an AddonID field for the ID on the website to the class.
That would be the ideal solution. In this case we wouldn't need the .xml file and reduce clutter. on the other hand all of the plugins need to adapt to these changes.




 
but i have seen a lots of the time add-on devs not using the "version" field properly or increment them after each update. My initial goal is to make a updater plugin eventually. :-\ but the only problem is that It will require extra work from addon devs.
I don't see this as a problem, because if you care about your addon and want updates to reach your users, you can add/update a few strings. If not, you/your addon simply won't profit from update notifications/auto-update. Also there could be workarounds for already installed addons or addons of which the id can not be determined, e.g. doing a search for the name on the website, asking the user which of these addons it is and saving the mapping in an internal DB.

I am against the search, it is not reliable for this sort of task. also it is quite heavy on the database.

Well we need to first decide how we want to implement it. I will update the website addon dashboard to show the ID after we decide the implementation.
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 10:04:12 AM
I am happy to put something in MB. At the moment MB caches the plugin name and the plugin.dll name. I dont see a id working as a matching criteria unless some changes were made to the plugin "about" information block, but i dont think i want to do that due to breaking existing old plugins.

@AvikB, so would the xml block you describe be available similar to: https://getmusicbee.com/rss/ ?
I would suggest including the update date/time in UTC format as well in case the plugin developer forgets to increment the version info
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 10, 2018, 10:07:24 AM
for PluginInfo: i think we must support all kinds of add-ons, eg. skins. so i think xml manifest is better solution even if its harder for devs.

@AvikB:
if you write example update notifier plugin to integrate it into mb later, write it in visualbasic as mb is written in vb.
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 10:17:22 AM
maybe i have misunderstood what is being proposed, but i had understood that when a plugin (or skin) is updated on the addons page, that the update would get included in a queryable xml block, similar to https://getmusicbee.com/rss/
if thats the case, i am happy to have MB query that xml data and for anything matching the user's installation and alert them.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 10, 2018, 11:46:40 AM
yes, Steven, at least i expect something like this.
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 10, 2018, 12:03:41 PM
Then skins (both xml & xmlc) & TM need to include just name and version at the beginning of the code?
Maybe name could be optional if it's the same as filename? I think that's the case for most skins except skin sets.

@Steven;
How about allowing, optionally, each plugin to use its own sub-folder under MusicBee\Plugins folder?
Some plugins are using the same filename for different files and Plugins folder is quite messy.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 10, 2018, 01:44:15 PM
for update notifier ui: i think that displaying message box with updates at mb startup would be very boring. its better to have a button on mb title bar with image of balloon and number of updates. user can click this button to view the window with all updates. just like in visual studio. also an option to ignore given update (not to remind about it anymore) might be useful.
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 10, 2018, 02:42:18 PM
Yeah good idea. I think we need to establish a standard way to store the addon data that can be readable by the updater. I am thinking of XML file that stores the important data, maybe something like this:

Code
<?xml version="1.0" encoding="UTF-8"?>
<addon-data>
<name>Addon anme goes here</name>
<id>addon id according to the website dashboard</id>
<version>1.0.1</version>
</addon-data>

if needed we can add more field in future.

Also the .xml file naming scheme should be something like
Code
addon_*.xml

then the updater plugin can search through the directory and looks through all the files by that naming scheme and checks if a new version available or not. It shouldn't be too hard.

maybe i have misunderstood what is being proposed, but i had understood that when a plugin (or skin) is updated on the addons page, that the update would get included in a queryable xml block, similar to https://getmusicbee.com/rss/
if thats the case, i am happy to have MB query that xml data and for anything matching the user's installation and alert them.

yes, Steven, at least i expect something like this.

I maybe wrong but the suggestion of AvikB was to add an additional file per plugin in the plugin folder, at least that's how I understood it. So you would have for example a mb_plugin.dll and a mb_plugin.xml file. The xml file holds the information for the updater (website id, name) and everything else would still be in the .dll (the PluginInfo object).

So the updater can read the xml, query the website (over the existing API) for the latest version, compare it to the one in the PluginInfo and then display a notification.
I would not add the version to the xml because you would have to change the version in two files and we already have the version in the PluginInfo class. This way you could even generate the xml and download it over the website when you create a plugin, because it would never change.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 10, 2018, 04:15:21 PM
So the updater can read the xml, query the website (over the existing API) for the latest version, compare it to the one in the PluginInfo and then display a notification.
I would not add the version to the xml because you would have to change the version in two files and we already have the version in the PluginInfo class. This way you could even generate the xml and download it over the website when you create a plugin, because it would never change.
but this wont work for theater modes, visualizers and skins. i don't think its very hard for devs to include 1 small xml file into add-on zip.

also i wouldn't rely on add-on version at all. for example there is no versions at all for most skins. update date is most important for comparison of versions.
Title: Re: Plugin Update Notification/Updater
Post by: Freddy Barker on February 10, 2018, 04:54:27 PM
@Steven;
How about allowing, optionally, each plugin to use its own sub-folder under MusicBee\Plugins folder?
Some plugins are using the same filename for different files and Plugins folder is quite messy.

+1

A good idea  ;)
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 10, 2018, 05:14:07 PM
So the updater can read the xml, query the website (over the existing API) for the latest version, compare it to the one in the PluginInfo and then display a notification.
I would not add the version to the xml because you would have to change the version in two files and we already have the version in the PluginInfo class. This way you could even generate the xml and download it over the website when you create a plugin, because it would never change.
but this wont work for theater modes, visualizers and skins. i don't think its very hard for devs to include 1 small xml file into add-on zip.

also i wouldn't rely on add-on version at all. for example there is no versions at all for most skins. update date is most important for comparison of versions.

I honestly forgot about Skins :-[ so yeah including everything what is needed in the xml would be the better option
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 06:46:06 PM
  @AvikB, so would the xml block you describe be available similar to: https://getmusicbee.com/rss/ ? I would suggest including the update date/time in UTC format as well in case the plugin developer forgets to increment the version info
Yes, kind of similar.



@Steven; How about allowing, optionally, each plugin to use its own sub-folder under MusicBee\Plugins folder? Some plugins are using the same filename for different files and Plugins folder is quite messy.

This would extremely useful.


Then skins (both xml & xmlc) & TM need to include just name and version at the beginning of the code? Maybe name could be optional if it's the same as filename? I think that's the case for most skins except skin sets.
Some skins are in binary format. so that won't work.


but this wont work for theater modes, visualizers and skins. i don't think its very hard for devs to include 1 small xml file into add-on zip.
also i wouldn't rely on add-on version at all. for example there is no versions at all for most skins. update date is most important for comparison of versions.

Right now i think my priority is to have an plugin updater. I will add update options for skins and others at a later date.



So the updater can read the xml, query the website (over the existing API) for the latest version, compare it to the one in the PluginInfo and then display a notification.
I would not add the version to the xml because you would have to change the version in two files and we already have the version in the PluginInfo class. This way you could even generate the xml and download it over the website when you create a plugin, because it would never change.
but this wont work for theater modes, visualizers and skins. i don't think its very hard for devs to include 1 small xml file into add-on zip.

also i wouldn't rely on add-on version at all. for example there is no versions at all for most skins. update date is most important for comparison of versions.
Yes i think Steven and you are right about using the update date.

@AvikB: if you write example update notifier plugin to integrate it into mb later, write it in visualbasic as mb is written in vb.
About that..... i am not comfortable with VB  :P  . I will write it with C# and WPF. maybe winforms but i like WPF better so there you have it. I don't think it needs to be integrated directly into MusicBee. It should be a standalone plugin, maybe included with MusicBee by default.

for update notifier ui: i think that displaying message box with updates at mb startup would be very boring. its better to have a button on mb title bar with image of balloon and number of updates. user can click this button to view the window with all updates. just like in visual studio. also an option to ignore given update (not to remind about it anymore) might be useful.
I will keep that in mind. But before that we need a working solution first  ;D


I will start working on a updater system this week. hopefully i will have a standardized structure for the XML data and an basic update notifier.
Let me know what do you guys would like to see.
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 10, 2018, 07:23:23 PM
Then skins (both xml & xmlc) & TM need to include just name and version at the beginning of the code? Maybe name could be optional if it's the same as filename? I think that's the case for most skins except skin sets.
Some skins are in binary format. so that won't work.

I don't understand why that won't work. Steven, can't MB read version info in xmlc file if it's included in the source skin file?
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 08:24:37 PM
I don't understand why that won't work. Steven, can't MB read version info in xmlc file if it's included in the source skin file?

Steven did mention that it would require updating the older addons or it might cause issues.

Quote
I dont see a id working as a matching criteria unless some changes were made to the plugin "about" information block, but i don't think i want to do that due to breaking existing old plugins.

using XML manifest would be better in this case. and also i can provide an option in the dashboard to auto generate the XML file. you can just download it and include it in your addon.


Here is the link for the github repo, it has no functionality added yet. I just added readme and a list of todo.
https://github.com/Avik-B/MB_AddonUpdater
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 10, 2018, 09:22:06 PM
i can provide an option in the dashboard to auto generate the XML file. you can just download it and include it in your addon.

You mean include it as a separate xml file? So for each skin file, there's additional xml file just for update notice and users should keep them as well? I don't think that's a good idea for skins and TM views (though it won't matter for plugins). It would be better including the code in the skin file. Still I don't get why you think old xmlc files would matter. With no such info in the file, then no update notice. What am I missing here?
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 09:36:26 PM
I am not getting why its really necessary to include an xml manifest file with a plugin.
Isnt it enough that when a plugin (or skin) is updated on the add-ons page, that a queryable xml file is updated with the plugin (or skin) name and the date/time it was updated.
Then all MB needs to do is query the xml file and compare the updated names with the last updated time that MB will cache and anything newer, alert the user.
If you have more advanced things in mind then fine, but otherwise it seems on the surface to be more complicated than needed.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 09:41:54 PM
I am not getting why its really necessary to include an xml manifest file with a plugin. Isnt it enough that when a plugin (or skin) is updated on the add-ons page, that a queryable xml file is updated with the plugin (or skin) name and the date/time it was updated. Then all MB needs to do is query the xml file and compare the updated names with the last updated time that MB will cache and anything newer, alert the user. If you have more advanced things in mind then fine, but otherwise it seems on the surface to be more complicated than needed.
The problem is how are you going to query that xml file? Right now the data is stored in the Database with an unique ID, and the only way to query the data is to use the ID. You can not query using the name.
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 09:44:16 PM
i dont know how you did it, but http://getmusicbee.com/rss updates every time i update the musicbee version

I dont need to query by name - i just need a full list of names and when they were last updated
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 09:44:49 PM

 You mean include it as a separate xml file? So for each skin file, there's additional xml file just for update notice and users should keep them as well? I don't think that's a good idea for skins and TM views (though it won't matter for plugins). It would be better including the code in the skin file. Still I don't get why you think old xmlc files would matter. With no such info in the file, then no update notice. What am I missing here?
No that would be bad idea. The XML file will store the "last updated" date as well, which will be modified by the updater. If i put that in the SKIN XML file, then i would need to modify it as well. Which i don't think is a good idea.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 09:48:07 PM
i dont know how you did it, but http://getmusicbee.com/rss updates every time i update the musicbee version
It is a bit different. since it only shows the latest version of musicbee.
But for addon updater, there are 100s of addons and the only way to get the exact addon is to use the ID.

(https://i.imgur.com/kgcMUo7.png)
For example even the URL to access the addon contains the ID. The XML manifest will simply store this addon ID in it.
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 09:51:51 PM
i dont need the add-on id - i just need a full list of plugin names and when each one was last updated.
I can match the plugin name against the cached values MB keeps from the plugin About block

Of course the plugin author will need to make sure the name on the add-ons page matches the one provided in the About block
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 09:52:44 PM
I dont need to query by name - i just need a full list of names and when they were last updated
that is not possible right now. Also i don't think that is a good idea. Right now there is 100+ addons and to get full names of each and last update date it will run 100+ quarries each time it will get the list.
if 100 user tries to check for update at once, it will cause slowdown for the database.

also i am not sure how you are going to check WHICH addon needs to be updated without proper ID. since name of the addon can be different on website than the add-on file.
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 09:54:39 PM
ok fair enough - i thought it might be possible just to append to a file each plugin update
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 09:55:26 PM
i dont need the add-on id - i just need a full list of plugin names and when each one was last updated. I can match the plugin name against the cached values MB keeps from the plugin About block Of course the plugin author will need to make sure the name on the add-ons page matches the one provided in the About block
also how are you going to see if the current plugin is the latest or not? If i get the last update date, what are you going to compare it with?
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 09:57:07 PM
the server file would have the last update date for each plugin - MB can cache that (it already caches the plugin name)
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 10:04:41 PM
that could work. But i also need the addon ID since getting the list is not a viable solution.
Maybe you can add another field in the API like this:
(https://i.imgur.com/bp7SjZg.png)
and then cache it.
Also maybe a new function that can return an array of Plugins that has implemented the AddonID field.
That would make it much more easier. But then again what about skins? They are the ones that gets update quite a lot.
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 10, 2018, 10:07:43 PM
What I thought was plugin/skin authors put id/version info to the xml file (skin file for skins). Then MB reads and compares it with the server file to see if there's version update for the id and alert the user.

Then no need for additional updater just for alert unless it can actually update plugins.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 10:14:46 PM
What I thought was plugin/skin authors put id/version info to the xml file (skin file for skins). Then MB reads and compares it with the server file to see if there's version update for the id and alert the user. Then no need for additional updater just for alert unless it can actually update plugins.
welp we already discussed that instead of using versions we will use "last update date".
Also the same method won't work for theater mode or plugins. they will require some modification.

As for automatic update. i would love to implement this but we would need a Content Delivery Network, it is costly though.
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 10, 2018, 10:15:23 PM
I could manually maintain a mapping file that maps add-on id to plugin name/ skin name
MB would load the mapping file from the getmusicbee.com website
Its not ideal but i dont think its too much of a burden to do

However if you are proposing a live query to support this, i dont think its a good idea as there will be a huge number of hits as MB would run the query every time MB is started. The add-ons page is already quite slow to load some times.
I always had in mind you would be appending to a text file each time a add-on is updated and that MB would load the file, so if thats not the case it might be better to go back to your original idea.
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 10, 2018, 10:22:12 PM
Would it be possible to generate the xml file every hour/day etc. and host this static file instead of doing a live query every time? Or is this already too much load?
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 10, 2018, 10:27:57 PM
The XML file will store the "last updated" date as well, which will be modified by the updater.

I don't like this idea at all that requires keeping additional xml file for each skin/TM file just for update alert. I'd rather opt out.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 10:35:47 PM
I could manually maintain a mapping file that maps add-on id to plugin name/ skin name
MB would load the mapping file from the getmusicbee.com website
Its not ideal but i dont think its too much of a burden to do

However if you are proposing a live query to support this, i dont think its a good idea as there will be a huge number of hits as MB would run the query every time MB is started. The add-ons page is already quite slow to load some times.
I always had in mind you would be appending to a text file each time a add-on is updated and that MB would load the file, so if thats not the case it might be better to go back to your original idea.

actually doing a query is fast, since it only contains the json formatted data:
(https://i.imgur.com/lLdKjvt.png)

the addon page on the other hand takes some time. It is mostly due to image loading. I will do something about it in future.


I am not planning to append to a text file. I think the ideal solution is to have a .xml manifest file that would contain all the info needed for the update.
The updater will scan for the manifest files and get the update data only for the addons that are installed.


I don't think manually maintain a list is proper way to do it.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 10:38:47 PM

The XML file will store the "last updated" date as well, which will be modified by the updater.
I don't like this idea at all that requires keeping additional xml file for each skin/TM file just for update alert. I'd rather opt out.
Do you have any particular reasons fro disliking it? It will be only few byte or kb at best. and since it resides in the plugin/skin directory it won't make unnecessary folders in some obscure temp directory.
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 10, 2018, 10:50:18 PM
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.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 10:57:39 PM
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.
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 10, 2018, 11:01:16 PM
that will remove auto update feature.

No, auto-alert.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 10, 2018, 11:08:00 PM
(https://i.imgur.com/1uB2G8B.png)
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?
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 11, 2018, 01:15:30 AM
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.
Title: Re: Plugin Update Notification/Updater
Post by: Bee-liever on February 11, 2018, 06:19:07 AM
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
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 11, 2018, 07:01:13 AM
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.

Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 11, 2018, 11:13:16 AM
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.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 11, 2018, 02:09:18 PM
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

(https://i.imgur.com/QNkZlva.png)
Title: Re: Plugin Update Notification/Updater
Post by: Steven on February 11, 2018, 04:57:04 PM
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?
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 11, 2018, 05:03:50 PM

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.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 11, 2018, 06:35:09 PM
@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.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 12, 2018, 04:48:50 AM
Ok i have a very basic working demo ready.

https://mega.nz/#!CFwDQRgB!jVglRERRL-8GkS6GGOKW6Wv4mp-rhF8zQxhDkg8UBOg (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
(https://i.imgur.com/0iZk9VO.png)


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:
(https://i.imgur.com/QNkZlva.png)


Right now you can access the updater from the menu:
(https://i.imgur.com/s06cxvP.png)

you can check if an update is available or not. and the download button will open the addon page:
(https://i.imgur.com/1Zc5B7R.png)


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.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 12, 2018, 04:56:54 AM
Incase anyone is concerned that adding a .meta file would make their folder messy. You can put the .meta file in a separate folder.
(https://i.imgur.com/Pca9E0L.png)
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 12, 2018, 06:09:35 AM
@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.
Title: Re: Plugin Update Notification/Updater
Post by: frankz on February 12, 2018, 06:45:18 AM
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.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 12, 2018, 09:21:34 AM
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.
I am not sure if it is possible. For example the addon manager only look for meta files so it can be used for skins and theather modes. But without it not sure how i am going to get the data needed.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 12, 2018, 09:22:13 AM
  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.
Yeah that is possible. I will look into it tonight.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 12, 2018, 12:11:18 PM
Ok i have a very basic working demo ready.

https://mega.nz/#!CFwDQRgB!jVglRERRL-8GkS6GGOKW6Wv4mp-rhF8zQxhDkg8UBOg (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
(https://i.imgur.com/0iZk9VO.png)


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:
(https://i.imgur.com/QNkZlva.png)


Right now you can access the updater from the menu:
(https://i.imgur.com/s06cxvP.png)

you can check if an update is available or not. and the download button will open the addon page:
(https://i.imgur.com/1Zc5B7R.png)


This is a very basic implementation.

mb must hide folders which are marked hidden in file system in 'skins' folder.

also it would great to have 3 tabs: available updates, ignored updates and add-ons, which don't support update notifications.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 12, 2018, 01:27:33 PM

 mb must hide folders which are marked hidden in file system in 'skins' folder. also it would great to have 3 tabs: available updates, ignored updates and add-ons, which don't support update notifications.
Good idea. I will look into it.
Btw you wrote Add-on manager that supported auto update. How did you do it if you don't mind asking. Did you have some sort of CDN???
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 12, 2018, 03:00:44 PM
A new build is available. Added suggestions from boroda74.

https://mega.nz/#!HERgQATR!kr7ZiYp531pfXMGfTKDD0tdFC-QOyf1KNeiIep9HgN0 (https://mega.nz/#!HERgQATR!kr7ZiYp531pfXMGfTKDD0tdFC-QOyf1KNeiIep9HgN0)

Code
<?xml version="1.0" encoding="UTF-8"?>
<addon-data>
<name>Taskbar Progress</name>
<id>97</id>
<version>1.0</version>
<ignore-update>false</ignore-update>
</addon-data>

the "ignore-update" tag should decide if notification will show or not. (ofc notification is not added yet) Right now you can manually set if it will notify you or not.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 12, 2018, 04:17:24 PM
AvikB, i think that i meant by 'unsupported' the add-ons without metadata.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 13, 2018, 02:32:55 AM
AvikB, i think that i meant by 'unsupported' the add-ons without metadata.
I have no idea how i can get the data regarding this?
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 13, 2018, 08:21:33 AM
just list all skins/plugins which don't have associated .meta files on 3d tab. maybe its wont be very quickly, but its local operation, so the speed must not be the problem.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 13, 2018, 01:31:09 PM
just list all skins/plugins which don't have associated .meta files on 3d tab. maybe its wont be very quickly, but its local operation, so the speed must not be the problem.
I guess it is possible to look for files with mb_*.dll and list them as installed plugin.
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 13, 2018, 07:54:34 PM
Code
<?xml version="1.0" encoding="UTF-8"?>
<addon-data>
<name>Taskbar Progress</name>
<id>97</id>
<version>1.0</version>
<ignore-update>false</ignore-update>
</addon-data>

the "ignore-update" tag should decide if notification will show or not. (ofc notification is not added yet) Right now you can manually set if it will notify you or not.


I don't think it's a good idea to store this in the xml because it will get overwritten every time the plugin is updated (because the .meta would be in the same zip as the new plugin). The xml should only contain values that are not changing at "runtime" of the plugin or user settings, it should be deployable as part of a plugin update.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 14, 2018, 03:58:08 AM

 I don't think it's a good idea to store this in the xml because it will get overwritten every time the plugin is updated (because the .meta would be in the same zip as the new plugin). The xml should only contain values that are not changing at "runtime" of the plugin or user settings, it should be deployable as part of a plugin update.
only "ignore-update" will be modified runtime. And yes it was my intention to revert it to default once user updated the addon.

Ignore update is only for ignoring updates. But once user decided to update it i don't think it needs to be in the ignore list.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 14, 2018, 07:10:29 AM
(https://i.imgur.com/qwLqqY6.png)
added tab for unsupported addons.

https://mega.nz/#!LcxXGTwL!-3JP417xi6bhEKjdvGtk_u1Ja8C180odY008MHc06KA (https://mega.nz/#!LcxXGTwL!-3JP417xi6bhEKjdvGtk_u1Ja8C180odY008MHc06KA)
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 14, 2018, 08:14:00 AM
Maybe you could support it yourself without add-on devs' help by adding a button to each add-on page that auto-generates the manifest file. Then users who want to use the "updater" plugin could download the file using the button and put it in the folder and add-on devs won't have to include it to their add-ons.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 14, 2018, 01:40:57 PM
Maybe you could support it yourself without add-on devs' help by adding a button to each add-on page that auto-generates the manifest file. Then users who want to use the "updater" plugin could download the file using the button and put it in the folder and add-on devs won't have to include it to their add-ons.
0_0 this is brilliant idea. I need to include a tutorial message for the user though. but it could be done.
Although addon devs need to update the versions properly through the dashboard.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 14, 2018, 03:04:15 PM
although its good idea, i think its preferable for users that devs include .meta files to add-on zips.
Title: Re: Plugin Update Notification/Updater
Post by: redwing on February 14, 2018, 09:23:03 PM
Although addon devs need to update the versions properly through the dashboard.

Yes, that would be the only thing add-on devs need to take care of to make this feature working.
Then all add-ons will become "supported add-on" as long as they get posted on the add-ons page.

The only thing missing is how to handle add-ons included in the MB installer. This part will need add-on devs' (or Steven's) help. The meta files for those add-ons will need to be included in the installer to notify users what add-ons need to get updated even after fresh installation if they have installed the updater plugin.

How about using a single fixed location for storing all meta files? Maybe it could use something like "MusicBee\Plugins\Meta" for all meta files for every kind of add-ons including the ones included in the installer. Then the updater plugin could also help to download and update the meta file when the user updates an add-on using the plugin.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 15, 2018, 02:01:36 PM
plugin must search for multiple metadata files for the same add-on, compare their last changed date and choose the latest metafile, if metadata files may be placed in any subfolder of 'musicbee' folder. i mean that there may be situation when .meta files are duplicated (i.e version info is different, but all other meta-tags are the same). i would generate .meta files for all available add-ons, include them into update notifier package and install them to 'musicbee\meta' or 'musicbee\plugins\meta' folder on update notifier installation.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 16, 2018, 11:05:26 AM
Yes, that would be the only thing add-on devs need to take care of to make this feature working. Then all add-ons will become "supported add-on" as long as they get posted on the add-ons page. The only thing missing is how to handle add-ons included in the MB installer. This part will need add-on devs' (or Steven's) help. The meta files for those add-ons will need to be included in the installer to notify users what add-ons need to get updated even after fresh installation if they have installed the updater plugin. How about using a single fixed location for storing all meta files? Maybe it could use something like "MusicBee\Plugins\Meta" for all meta files for every kind of add-ons including the ones included in the installer. Then the updater plugin could also help to download and update the meta file when the user updates an add-on using the plugin.

plugin must search for multiple metadata files for the same add-on, compare their last changed date and choose the latest metafile, if metadata files may be placed in any subfolder of 'musicbee' folder. i mean that there may be situation when .meta files are duplicated (i.e version info is different, but all other meta-tags are the same). i would generate .meta files for all available add-ons, include them into update notifier package and install them to 'musicbee\meta' or 'musicbee\plugins\meta' folder on update notifier installation.


I am thinking of storing all the .meta file in a single folder. Right now MusicBee stores plugins and skins on 2 different locations. You can manually place the plugins in
Code
C:\Program Files (x86)\MusicBee\Plugins

But if you use the new "add plugin" option from the plugin dialogue, it gets stored in this directory:
Code
C:\Users\AvikB\AppData\Roaming\MusicBee\Plugins\


Since the AppData directory does not require any admin privilage, it is also used by the Windows Store version. Right now the addon updater looks for plugins in both location.

I am planning to use this location to store the .meta files for all addons:
Code
C:\Users\AvikB\AppData\Roaming\MusicBee\Meta


Since the addon updater also looks for unsupported addons, it does this by looking for "mb_*.dll" and "xml/xmlc" file. and checks if the same file name but with .meta extension is available or not. I don't know if there is another way to do it or not. But this ensures that the meta file MUST have the same name as the addon. Only difference should be the extension. So for example if an addon is named "mb_TaskbarTidbit.dll", the meta file name must be "mb_TaskbarTidbit.meta".

Also right now if you use "add plugin" option from musicbee and select a zip file that has a plugin and a meta file, it stores everything in a flat directory. Steven needs to add some functionality to store the meta file in a separate directory like the one i said above.


@boroda74 i am not going to use the last udpdated date for compare, but i am planning to use the addon version for this. This gives the devs more control. The last updated date is not controllable, and not suitable for this sort of purpose.
As for duplicated meta file, if you use MusicBee's inbuilt "add plugin" option, it should be dealt by MusicBee. MusicBee should aslo replace the meta file with the new meta file in the zip


(https://i.imgur.com/ui9pzxq.png)

One thing i don't like about MusicBee is the plugin folder structure. Right now i am working on a Web UI for MusicBee and it has several .dll files and it all clutters the plugin directory. Maybe Steven can move them to a subfolder when using the "add plugin" option.
(https://i.imgur.com/CUM65Tv.png)
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 16, 2018, 11:39:26 AM
Since the addon updater also looks for unsupported addons, it does this by looking for "mb_*.dll" and "xml/xmlc" file. and checks if the same file name but with .meta extension But this ensures that the meta file MUST have the same name as the addon. Only difference should be the extension. So for example if an addon is named "mb_TaskbarTidbit.dll", the meta file name must be "mb_TaskbarTidbit.meta".
i dont see any problem with this.

Also right now if you use "add plugin" option from musicbee and select a zip file that has a plugin and a meta file, it stores everything in a flat directory. Steven needs to add some functionality to store the meta file in a separate directory like the one i said above.
i hope Steven is ready to slightly improve mb to support this.


@boroda74 i am not going to use the last udpdated date for compare, but i am planning to use the addon version for this. This gives the devs more control. The last updated date is not controllable, and not suitable for this sort of purpose.
As for duplicated meta file, if you use MusicBee's inbuilt "add plugin" option, it should be dealt by MusicBee. MusicBee should aslo replace the meta file with the new meta file in the zip
i agree, its better solution.

One thing i don't like about MusicBee is the plugin folder structure. Right now i am working on a Web UI for MusicBee and it has several .dll files and it all clutters the plugin directory. Maybe Steven can move them to a subfolder when using the "add plugin" option.
(https://i.imgur.com/CUM65Tv.png)
this had been asked many times. its not the problem to install plugin in own subfolder. the problem is that mb wont recognize or use such plugins. hope support for this will be added eventually.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 16, 2018, 11:43:22 AM
p.s. ofc right now only main plugin .dll may be placed to 'plugins' folder, while all other libs/resources may be placed to some subfolder, but it will much harder for devs to load dynamic libraries in this case (.net will not be able to load them automatically).
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 16, 2018, 11:55:47 AM
p.s. ofc right now only main plugin .dll may be placed to 'plugins' folder, while all other libs/resources may be placed to some subfolder, but it will much harder for devs to load dynamic libraries in this case (.net will not be able to load them automatically).
Quote
this had been asked many times. its not the problem to install plugin in own subfolder. the problem is that mb wont recognize or use such plugins. hope support for this will be added eventually.
:'( I think by default when using the add plugin dialogue MsuicBee should the plugin under the same folder name as the plugin itself. For example. "mb_TaskbarTidbit.dll" should be placed under "mb_TaskabrTidbit" folder. and then place the dll and other dependencies inside that directory. It will be much easier to organize and also it remove the biggest issue that is the same dll can be included in multiple plugins.

Lets wait for Steven to shed some light on this.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 16, 2018, 12:11:21 PM
For example. "mb_TaskbarTidbit.dll" should be placed under "mb_TaskabrTidbit" folder.
yes, exactly this had been asked many times not for plugins only, but for theater modes also (obviously skins already can be placed into any subfolder). it would be the best way to organize add-ons. ofc very simple plugins without additional libraries could be placed directly into 'plugins' folder.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 17, 2018, 11:38:23 AM
One thing i don't like about MusicBee is the plugin folder structure. Right now i am working on a Web UI for MusicBee and it has several .dll files and it all clutters the plugin directory. Maybe Steven can move them to a subfolder when using the "add plugin" option. (https://i.imgur.com/CUM65Tv.png)
Just found this.
https://github.com/Fody/Costura (https://github.com/Fody/Costura)
Basically it automatically merges all the dependencies into one assembly. It works without any configuration. Now my plugin looks like this:
(https://i.imgur.com/SNACnXr.png)

Though having a subfolder structure would be nice.
Title: Re: Plugin Update Notification/Updater
Post by: Bee-liever on February 19, 2018, 02:49:56 AM
I am thinking of storing all the .meta file in a single folder. Right now MusicBee stores plugins and skins on 2 different locations. You can manually place the plugins in
Code
C:\Program Files (x86)\MusicBee\Plugins

But if you use the new "add plugin" option from the plugin dialogue, it gets stored in this directory:
Code
C:\Users\AvikB\AppData\Roaming\MusicBee\Plugins\


Since the AppData directory does not require any admin privilage, it is also used by the Windows Store version. Right now the addon updater looks for plugins in both location.

I am planning to use this location to store the .meta files for all addons:
Code
C:\Users\AvikB\AppData\Roaming\MusicBee\Meta
This approach doesn't work with the portable MB version.  You would need to include a check for the directory MB is installed in.
Using the last posted version of the plugin with a portable version of MB produces this error:
Code
MusicBee v3.2.6616.36172 (Win10.0), 19 Feb 2018 13:41:

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\*\AppData\Roaming\MusicBee\Plugins'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileSystemEnumerableIterator`1.CommonInit()
   at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
   at System.IO.Directory.EnumerateFiles(String path, String searchPattern, SearchOption searchOption)
   at MusicBeePlugin.MainWindow.GetAllAddons() in F:\Projects\VisualStudio\MB_AddonUpdater\MB_AddonUpdater\MB_AddonUpdater\MainWindow.xaml.cs:line 163
   at MusicBeePlugin.MainWindow.LoadAddonList() in F:\Projects\VisualStudio\MB_AddonUpdater\MB_AddonUpdater\MB_AddonUpdater\MainWindow.xaml.cs:line 109
   at MusicBeePlugin.MainWindow.<ReloadListAsync>d__5.MoveNext() in F:\Projects\VisualStudio\MB_AddonUpdater\MB_AddonUpdater\MB_AddonUpdater\MainWindow.xaml.cs:line 97
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)
Title: Re: Plugin Update Notification/Updater
Post by: boroda on February 19, 2018, 09:46:32 AM
AvikB, use mbapiInterface.Setting_GetPersistentStoragePath() to get <AppData> folder. it will be either C:\users\some user\appdata\roaming\musicbee\ or <musicbee folder>\appdata\ for portable version.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 19, 2018, 12:58:26 PM
AvikB, use mbapiInterface.Setting_GetPersistentStoragePath() to get  folder. it will be either C:\users\some user\appdata\roaming\musicbee\ or \appdata\ for portable version.
I have not added portable version support yet. I will try to add that later this week.
Got a little busy with MusicBee WebUI
Title: Re: Plugin Update Notification/Updater
Post by: frankcreed on February 21, 2018, 06:42:03 PM
I realize that this plugin is still in its initial stages, but you'll probably want to include a mb_AddonUpdater.meta file in a future release  :P
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 23, 2018, 09:40:31 AM
I realize that this plugin is still in its initial stages, but you'll probably want to include a mb_AddonUpdater.meta file in a future release :P
Ofc, the reason i haven't added it because it is still in development.
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 23, 2018, 08:17:23 PM
An option to include a changelog for a version would be nice, maybe through the website or even parsing a CHANGELOG.md file on github.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 24, 2018, 11:03:20 AM
An option to include a changelog for a version would be nice, maybe through the website or even parsing a CHANGELOG.md file on github.
I can show the readme section that is on the addon page. I can't show changelog since it is not saved.
Title: Re: Plugin Update Notification/Updater
Post by: derTyp on February 24, 2018, 02:10:09 PM
An option to include a changelog for a version would be nice, maybe through the website or even parsing a CHANGELOG.md file on github.
I can show the readme section that is on the addon page. I can't show changelog since it is not saved.
Would it be possible to integrate a changelog in the addon settings on the website, additionally to readme?
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 24, 2018, 03:25:34 PM
Would it be possible to integrate a changelog in the addon settings on the website, additionally to readme?
Yes, i can add that functionality.
But honestly i am not sure if it will be helpful at all. Since a lots of add-on barely uses version system. And adding screenshots is another challange.... ,
Adding change-logs will introduce another variable that might confuse devs.
Also since there is an option to add forum link, i think it is best to have change-logs there. You can just link the forum for anyone that is interested in change-logs.

But i can clearly see why you want a change-log system in the updater. But as it is right now, i am not sure if it will used by the majority.
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on February 27, 2018, 10:49:04 PM
I am pausing the development of this plugin for a month or two due to working on new MusicBee website update.
 :-X
Title: Re: Plugin Update Notification/Updater
Post by: redwing on March 03, 2018, 02:55:34 PM
Although addon devs need to update the versions properly through the dashboard.

Yes, that would be the only thing add-on devs need to take care of to make this feature working.

Regarding this, how about treating only an update with a version change as an "update" of the add-on? Currently any changes in the add-on page through the dashboard are counted as an update and those come first as recently updated ones even if there's no changes in the file. If you agree on this, that could be changed regardless of this plugin development.
Title: Re: Plugin Update Notification/Updater
Post by: boroda on March 03, 2018, 03:06:32 PM
+1
Title: Re: Plugin Update Notification/Updater
Post by: AvikB on March 04, 2018, 07:32:08 AM


Although addon devs need to update the versions properly through the dashboard.
Yes, that would be the only thing add-on devs need to take care of to make this feature working.
Regarding this, how about treating only an update with a version change as an "update" of the add-on? Currently any changes in the add-on page through the dashboard are counted as an update and those come first as recently updated ones even if there's no changes in the file. If you agree on this, that could be changed regardless of this plugin development.
I think i ignored the version change due to the lack of people using it or probably misunderstand it's usage. but yeah going forward only version change will matter.
Title: Re: Plugin Update Notification/Updater
Post by: redwing on March 04, 2018, 09:15:44 AM
Thanks!