phac-nml / irida-plugin-amr-detection

IRIDA Plugin for AMR Detection
Apache License 2.0
3 stars 3 forks source link

IRIDA plugin system update required to be compatible with IRIDA 21.01 #11

Closed tom114 closed 3 years ago

tom114 commented 3 years ago

IRIDA's 21.01 version will include an update to the plugin system to version 1.1.0. All analysis pipeline pugins must implement the changes below to be compatible with IRIDA 21.01 and future versions. Changes for plugin developers are summarized below. This IRIDA version is expected to be released at the end of January 2021.

Background

IRIDA underwent some changes to how metadata is stored in its database for the 21.01 release. This change will help improve performance of IRIDA's metadata system, make metadata easier to manage in IRIDA's codebase, and fix some issues we found with how our previous structure worked with Hibernate. A writeup about this change can be found at https://github.com/phac-nml/irida/blob/development/doc/administrator/upgrades/index.md#sample-metadata-audit-record-updates. Because of this change, anywhere that metadata is accessed or written in IRIDA needed some minor changes. This includes analysis plugins that implement AnalysisSampleUpdater which has prompted this plugin system version update.

What you have to do

What this means for IRIDA plugin developers is that a change must be implemented in your plugin before IRIDA's 21.01 release in order for your plugins to work with the new version. Any plugin with an AnalysisSampleUpdater implementation will need changes to match the new structure. While we like keeping backwards compatibility, unfortunately it was not possible in this case. Updated plugins will work with 21.01 forward, but will not work with preivous versions.

We've written documentation on how you can update your plugin and the reasons for this change at https://github.com/phac-nml/irida/blob/development/doc/administrator/upgrades/index.md#plugin-version-updates. It gives a step-by-step guide on how to update most plugins. In many cases the update will require changing only 3 lines of code and generating a new release of your plugin.

If you don't update your plugin IRIDA will still successfully start but a message will be displayed in the logs that your plugin will be disabled:

29 Dec. 2020 11:20:21,827  WARN org.pf4j.AbstractPluginManager:754 - Plugin 'example-plugin@0.1.0' requires a minimum system version of 1.0.0, and you have 1.1.0
29 Dec. 2020 11:20:21,827  WARN org.pf4j.AbstractPluginManager:851 - Plugin '/etc/irida/plugins/example-plugin-0.1.0.jar' is invalid and it will be disabled
29 Dec. 2020 11:20:21,828  INFO org.pf4j.AbstractPluginManager:801 - Plugin 'example-plugin@0.1.0' resolved

Analysis results will still be available, but the pipeline cannot be launched.

We recommend you make this change to your plugin prior to the 21.01 release. You can do this by checking out the development version of IRIDA and basing your changes on that codebase.

What if my plugin does not implement AnalysisSampleUpdater

If your plugin does not implement a AnalysisSampleUpdater you will still need to compile a new version of your plugin against the new IRIDA version. Since the pipeline system verison has increased, all plugins will need to be compiled against the new IRIDA version.

For any questions about these changes, you can contact the IRIDA development team using one of the options at https://github.com/phac-nml/irida#contact-the-irida-team.

apetkau commented 3 years ago

Fixed in release 0.2.0 -https://github.com/phac-nml/irida-plugin-amr-detection/releases/tag/0.2.0