Upgrading and Downgrading Plugins

Upgrading and Downgrading a plugin in Kaholo is done by installing a different version of a plugin than the one already installed. Kaholo does not accommodate running multiple versions of the same plugin. Normally an upgrade has no harmful effect but in some cases it could break some or all pipelines using that plugin. It is highly recommended to upgrade in test before risking mission-critical pipelines.

As a general rule of thumb, the potential for breakage can be determined by the version number. Kaholo uses the Semantic Versioning system, where version numbers are X.Y.Z such that X is the major version, Y is the minor version, and Z is the patch version. A major version number change is likely to break pipelines. A minor one is in theory backward compatible but some small breakage could occur in some pipelines. A patch version is unlikely to break anything because it contains only bug fixes.

When a plugin upgrade has broken a pipeline action, it is most likely that downgrading to the original version will also immediately fix the action. However this is not guaranteed.

A “trick” way to test a new plugin without affecting the existing one is to rename the plugin in config.json property name. By changing only the name, it effectively becomes a different plugin. Consider changing viewName as well so in Kaholo you can easily see which plugin is the original and which the impostor.

Effect of Upgrade on Pipelines

When a plugin has been upgraded, pipelines with actions using that plugin will detect the change and raise it as a pipeline issue. The pipeline may still work correctly and in most cases the “issue” may be safely ignored. From the moment the plugin is upgraded all executions of pipelines will use the upgraded version of the plugin.

By clicking “Fix Action” or “Fix All” and saving the pipeline, the upgrade is acknowledged, pipeline presumed working, and the issues are permanently dismissed. This is a useful feature for tracking which pipelines are using a version of a plugin with which they were tested and confirmed working vs those that may have been affected by an upgrade or downgrade. It also alerts pipeline owners and operators that the upgrade occurred.

In the case where the new version of the plugin includes breaking changes or additional required parameters, other types of issues may be detected and raised that require attention to the configuration of affected actions.