I wonder how to version plugins.
There are plenty ways of versioning a software products but they're all 1-dimensional.
Are there best practices for 2-dimensional versioning which indicates both compatibility to the main application and compatibility to the plugin API?
Eclipse for example proposed a versioning scheme for which every plugin uses semantic versioning. Additionally there's a rule to distinguish between development streams by increasing the service number by 100. This ends in versions like that:
- Plugin version
v1.0.8
for Eclipsev3.1
- Plugin version
v1.0.108
for Eclipsev3.2
This seems a bit fishy to me. Are there better ways?
Why do you need to show the information about main application version in version of plugin? Does it help users to choose a suitable one?
I prefer put this information in a plugin name. For example, plugin-eclipse31-1.0.8 and plugin-eclipse32-1.0.8. You can put branch name (eclipse31 or eclipse32 in examples) in plugin version, to make things easier.