Describe the problem you would like to solve
A common problem during upgrade is that a plugin isn't compatible with the new version. This can lead to functionality being broken or, in the worst cases, the entire site can break.
Describe the solution you'd like
Before upgrading, the software should check whether each plugin is compatible with the version being upgraded to. If the plugin is compatible, or a compatible version exists in the plugin gallery, it should download the new version and upgrade.
If no compatible version exists or can be found, the upgrade process should stop and the admin should be asked to disable the plugin before upgrading.
Who is asking for this feature?
System administrators
Additional information
We have discussed two approaches to determining compatibility in Slack:
Plugin Gallery XML: The plugin gallery is based on a centralized xml file which, among other things, includes compatibility information. This information can be used during the upgrade to decide whether plugins should be deactivated or for OJS to refuse to activate/install an incompatible plugin. However, it won't work for plugins not in the gallery, like custom themes.
Plugin's version.xml: Each plugin could include compatibility information in the version.xml file. A plugin can try to indicate compatibility with all builds in a maintenance release by using wildcards. For example, a plugin should state 3.3.0.* to describe the plugin as compatible up to < 3.3.1.0.
WordPress has a feature when activating a plugin that loads the plugin, checks for a fatal exception/error, and if one is found automatically disables the plugin and displays a warning.
Describe the problem you would like to solve A common problem during upgrade is that a plugin isn't compatible with the new version. This can lead to functionality being broken or, in the worst cases, the entire site can break.
Describe the solution you'd like Before upgrading, the software should check whether each plugin is compatible with the version being upgraded to. If the plugin is compatible, or a compatible version exists in the plugin gallery, it should download the new version and upgrade.
If no compatible version exists or can be found, the upgrade process should stop and the admin should be asked to disable the plugin before upgrading.
Who is asking for this feature? System administrators
Additional information We have discussed two approaches to determining compatibility in Slack:
Plugin Gallery XML: The plugin gallery is based on a centralized xml file which, among other things, includes compatibility information. This information can be used during the upgrade to decide whether plugins should be deactivated or for OJS to refuse to activate/install an incompatible plugin. However, it won't work for plugins not in the gallery, like custom themes.
Plugin's version.xml: Each plugin could include compatibility information in the
version.xml
file. A plugin can try to indicate compatibility with all builds in a maintenance release by using wildcards. For example, a plugin should state 3.3.0.* to describe the plugin as compatible up to < 3.3.1.0.WordPress has a feature when activating a plugin that loads the plugin, checks for a fatal exception/error, and if one is found automatically disables the plugin and displays a warning.
See Drupal's compatibility metadata: https://www.drupal.org/docs/creating-custom-modules/let-drupal-know-about-your-module-with-an-infoyml-file