What the convenient way to provide the same updates for different versions of IntelliJ IDEA when it contains API changes in it?
For example, in 2020.1 was introduced method AbstractBundle.message and it's recommended to use it instead of deprecated now CommonBundle.message.
I decide to get rid of deprecated API, so I changed it. But this method didn't exist in 2019.3.4. That's why I started to support two different versions of the plugin.
And of course, I want to make updates transparent for my customers.
So If someone installs the previous version of the plugin in 2019.3.4 he wants to transparently update his plugins with a common IDE upgrade. (2019.3.4->2020.1)
But some users don't want to upgrade so quickly and still using an old version of your awesome product. And they also want to upgrade their plugins transparently (without changing channels of updates).
My question: "What kind of versioning system I should choose for my plugin?" or "What mechanism I have to use to resolve such a problem?"
Right now, I choose as an example:
1.0.2 2020.1 — 2020.1.1 (eap)
1.0.3 2020.1 — 2020.1.1 (eap)
1.0.3-2019.3 2016.1 — 2019.3.4
and the next will be
1.0.4 2020.1 — 2020.1.1 (eap)
1.0.4-2019.3 2016.1 — 2019.3.4
and in the future it can be
1.0.546 2100.1 — 2100.1.1 (eap)
1.0.546-2020.1 2020.1 — 2020.3.4
1.0.546-2019.3 2016.1 — 2019.3.4
Will it work?
P.S. It's from https://plugins.jetbrains.com/plugin/14069-magic-advisor/versions