camunda / camunda-modeler

An integrated modeling solution for BPMN, DMN and Forms based on bpmn.io.
https://camunda.com/products/modeler
MIT License
1.47k stars 473 forks source link

Allow Deprecation of Plugins #3239

Open philippfromme opened 1 year ago

philippfromme commented 1 year ago

What should we do?

We should have a well-defined way of deprecating plugins. It cannot be assumed that a plugin will be compatible with older or newer versions of the Camunda Modeler.

There are two ways we could handle compatibility with specific Camunda Modeler versions:

1. Imperative - Plugin is in control

The Camunda Modeler would expose its version and the plugin would check for compatibility. This would involve

2. Declarative - Camunda Modeler is in control

This has been sketched in https://github.com/camunda/camunda-modeler/issues/1043. Plugins would declare their compatibility and the Camunda Modeler would check for compatibility.

Why should we do it?

Currently, there is no well-defined way of deprecating plugins other than documentation. This can lead to issues like https://github.com/camunda/camunda-modeler-linter-plugin/issues/28.


Related to https://github.com/camunda/camunda-modeler-linter-plugin/issues/29

nikku commented 1 year ago

Thanks for opening this issue. Makes sense to follow-up one day with this. Moving to backlog.

CatalinaMoisuc commented 1 year ago

From my alignment with @christian-konrad the scope for this iteration could be:

2022-11-28: assign one Engineer to evaluate possible solutions and bring them back for prioritization discussions to PM

nikku commented 1 year ago

@philippfromme Could you look into this issue and share a recommendation how to resolve this + roll it out @christian-konrad?

philippfromme commented 1 year ago

Our current strategy around deprecation of plugins is to indicate compatibility in a plugin's README (cf. https://github.com/camunda/camunda-modeler-custom-linter-rules-plugin#custom-linter-rules-example-plugin). This is based on the assumption that plugins are rarely deprecated and that a hint is shown in the log if an error occurs (This error may be the result of a plug-in compatibility issue.. The solution approaches described in this issue are basically an implementation detail. Both approaches require changes in the Camunda Modeler and for the plugin author to indicate compatibility. @christian-konrad Shall we discuss priorities?

CatalinaMoisuc commented 1 year ago

From the discussion today we agreed that this is a nice to have, but we should not invest into this right now because we don't have enough capacity and also we already have some workaround means to deprecate as we've seen with the linting plugin.