I've been wanting to make it easier to inform end users of my plugins (well really just Streams) that there are updates available via an opt-in mechanism for those that would like such a feature. I realized that for plugins installed via a plugin library, the core actually already does the work and can provide this information, there are just no affordances for it unless one goes and specifically checks.
It turns out that it is embarrassingly easy to set up visual notifications for updates from a plugin library. Here is a demo of a quick 20 minute hack:
Caveats:
1. The major caveat is that the above demo re-uses core UI for plugin updates which is geared towards working with one plugin library at a time. If one wanted to use the same technique as what I have shown here to work with multiple plugin libraries, a custom UI would be needed that could show available updates across multiple libraries in one place. Or you know.... a centralized plugin library that is automatically built at regular intervals from specified plugin sources.
2. The plugins in question have to have a corresponding plugin library installed. We could definitely make it easier to create plugin libraries. However, personally I would prefer to work towards a centralized community plugin library.
3. With the above technique, every time the wiki starts each plugin library is fetched and loaded in the background. So this uses some bandwidth. For reference, the official core library which has 61 plugins is 243kb, whilst the demo library in the video which has 4 plugins is 5kb. So for most use cases this shouldn't be a problem. Furthermore, updates could be configured to only run once a day or week.
4. There are some shortcomings with the core UI for showing available plugin updates.
i) the installed plugin version and the version of the update available need to be far more prominent and easier to read.
ii) There is no information displayed as to what core-version the updated plugin requires and whether that is compatible with the current version of the TiddlyWiki.
iii) While the core UI will display the "readme" tiddler if one clicks the dropdown arrow to the left of each plugin, this isn't the most relevant for plugin updates. What would be more helpful here is to display a release note specific for the new plugin version. Such a release note could contain a link to a fuller changelog elsewhere online. Currently the only option is to include such a release note in the "readme" tiddler, but this leads to a larger size for the plugin library. This is an issue that involves not just the core UI but also the plugin library creation mechanism.
Cheers,
Saq