Let's talk about managed plugins.
supports a wide variety of plugins, allowing users to select those additional functions or features of interest and utility.
plugins are found and downloaded by browsing the opencpn.org website. Here, one may find plugins sorted by category, with url's provided for download. After successful download, the plugins are installed by an "offline" methods that is, the plugins are installed from a desktop
GUI or command line interface with OpenCPN closed and inactive. Further, the plugins require elevated system privileges to install, such as administrator mode on Windows, and super-user privilege
While workable, it is recognized that the existing plugin acquisition, installation
, and update mechanism is inconvenient for casual users. This is further apparent as the number of plugin grows over time.
The OpenCPN "managed plugin" interface is designed to simplify and enhance the process of using plugins, especially as regards updates.
The OpenCPN managed plugin implementation consists of two parts
1. Plugin catalog and curated repositories.
The OpenCPN plugin catalog is an XML file called "ocpn-plugins.xml". The catalog file contains download and installation
details for all managed plugins, for each supported platform. The catalog file is typically stored in the OpenCPN private writable data location, that is, the same location in which the config files and logfiles are stored. The catalog file contains information on managed plugins only. Older un-managed plugins, and the default installation plugins, are not described by the catalog file.
The catalog file contains URLs pointing to secure repositories which hold the current
managed plugin installation files, called "tarballs". These repositories are implemented as "secure cloud storage", and are writable only by designated members of OpenCPN development team, or the plugin authors themselves. We consider them "curated" since the only plugins offered by the standard managed plugin interface have been at least minimally tested to provide basic functionality.
There are two "channels" for the plugin catalog, representing the development state of a particular plugin. The "master" channel contains the currently active "Production Release" catalog. Plugins in this catalog are known to work
, and are recommended for installation and daily use. The alternative "Beta" channel contains installation details for plugins currently in active development, and considered ready for wide scale testing and user feedback. Typically, the "Beta" channel catalog is empty, but will occasionally contain entries for new plugins.
OpenCPN considers exactly one catalog at any given run-time. That is, if the "master" catalog is active, then the "Beta" catalog and its contents are inaccessible. And the converse is also true.
2. OpenCPN Managed Plugin user interface.
The user interface for management of plugins in OpenCPN v5.1+ differentiates between older, un-managed plugins (denoted as "legacy" plugins), and newer catalog-managed plugins. Differences in behavior of the user interface for the two plugin types will be noted herein.
The OpenCPN Settings->Plugins tab gives access to the plugin management interface. In this interface, all plugins known to the system, whether they are installed "legacy" plugins, or managed plugins supported by loaded catalog, are available for manipulation. Each plugin panel displays a plugin name, some minimal text description, and icons indicating the type and current
OpenCPN status of the plugin.
In the case of "legacy" plugins, the status icon (on the right side of the panel)will be either a "gear" symbol, representing the default installation basic plugin set, or an open white square, indicating an "un-managed" legacy plugin. Further, if a "catalog-managed" plugin is available to update or replace an installed legacy plugin, then the status icon will show an "up-arrow" shape. Each plugin may be enabled or disabled individually, exactly the same as the behavior of OpenCPN v5.0 and earlier. Clicking anywhere on the panel will expose additional options as appropriate. Please note that uninstalled legacy plugins are not listed in this interface, as the run-time system has no knowledge of them.
For managed plugins, the plugin may be in one of two general states; if the plugin has been installed, then the icon will show a "checked box" if the plugin is up-to-date with the loaded catalog contents. Alternatively, the icon will show an "up-arrow" shape if there is a downloadable update available for that plugin. As a second general state, if a plugin has not been installed, the interface will show a "package box" icon on the left side of the panel. In either case, clicking on the plugin panel will disclose additional options for manipulation of that plugin, e.g. update, re-install, un-install, etc.
Below the list of plugin panels
, one finds the "Plugin Catalog" management panel. Here one may select the plugin channel of interest, and download the latest plugin catalog from secure online resources. Any changed plugin status (e.g. available upgrades) will be noted in the plugin list immediately. As noted above, there is one catalog active on the run-time system at any time. Downloading a new catalog will overwrite any existing catalog.
Also provided is a control to "Import" a specific plugin. The action of that special function will described elsewhere. It is not needed in normal operation.
1. Are my currently installed plugins OK to use?
Yes. Plugins currently installed, or available for download and "offline" installation, work
just as they did on OpenPCN v5.0. No legacy plugins have been withdrawn or become unusable in OpenCPN v5.1.
2. When will my favorite plugin "blahblah_pi" be upgraded to a "managed" plugin?
Hard to answer exactly. The OpenCPN development team has a plan to migrate, over time, most or all legacy plugins to the managed variety. As you might imagine, this is a big task, considering the number of plugins in question, and the total number of supported platforms and operating systems. Any input from the wider user base to help us prioritize the effort will be much appreciated.
3. What if I do not have internet
access, and I need to install a new plugin?
Then you will use the "Import" process.
a. Obtain the URL (address) of the tarball containing the desired plugin, for the desired platform. This may be found by consulting the catalog file on your running system, or by using an online tool which the Team is currently polishing for release. Please stay tuned for more info on this tool.
b. Skip over to your nearest internet
cafe (remember those?), or other online computer.
c. Download the tarball selected by step (a), saving it on a thumbdrive, or other portable media.
d. Return to your target computer. Start OpenCPN, settings->plugins. Click the "Import Plugin..." button. In the next file selector dialog, select the tarball from your portable media.
e. The plugin will be imported, and thus becomes available for installation and activation.
4. If legacy plugins and "catalog-managed" plugins are functionally equivalent, why should I upgrade to managed plugins?
Mainly, peace-of-mind. While we plan to keep legacy plugins up-to-date and available for a long time, our development resources are limited. Most effort will naturally be placed on managed plugins. Using managed plugins will help ensure that you have the latest and greatest version of the most popular plugins.
5. What if I want to keep a "disaster-recovery" copy of my critical plugins, in case I have to reload everything in mid-ocean? I do this now with legacy plugins....
See Question 3. An adaptation of that process will work for you. Keep backup copies of critical plugin tarballs on a safe media as desired.
6. What if I don't like the whole idea of "managed" plugins?
That's fine. Currently available legacy plugins will continue to work as they do now until OpenCPN makes an unavoidable ABI change, an event that is unfortunately unpredictable, but not foreseen in the short/medium range.