hi, not sure if this is the correct newsgroup for this post ...
i'm looking for peoples experience with plugin versioning (or lack thereof)
we are developing a product based many plugins. the product consists of different internal 'domains'. these domains are seperated in such a way so that they can come and go without causing problems in the overall tool. so its possible for us to release these domains individually if we wanted to. our current release strategy is to release all these domains for every release allowing us to ignore the testing between different versions of these domains.
so in this scenario do we really need to worry about the versions of the plugins? could we maintain the version of the plugins at 1.0.0 (or maybe the product release version)?
if we did change our release strategy then we could introduce proper plugin versioning then.
anyone have similar experiences and if so any lessons learned?
thanks
peter barry wrote:
> hi, not sure if this is the correct newsgroup for this post ...
>
> i'm looking for peoples experience with plugin versioning (or lack
> thereof)
>
> we are developing a product based many plugins. the product consists of
> different internal 'domains'. these domains are seperated in such a way
> so that they can come and go without causing problems in the overall
> tool. so its possible for us to release these domains individually if we
> wanted to. our current release strategy is to release all these domains
> for every release allowing us to ignore the testing between different
> versions of these domains.
>
> so in this scenario do we really need to worry about the versions of the
> plugins? could we maintain the version of the plugins at 1.0.0 (or maybe
> the product release version)?
> if we did change our release strategy then we could introduce proper
> plugin versioning then.
>
> anyone have similar experiences and if so any lessons learned?
At Eclipse, we have a strict set of versioning guidelines we follow for
our plug-ins:
In short, you generally want to version things based on compatibility.
We have also developed extensive API Tooling at Eclipse to help us
manage version numbers properly for plug-ins:
Paul Webster Messages: 6813 Registered: July 2009 Location: Ottawa
Senior Member
I'll add to what Chris said in that you can break your tool up into the core component(s) and the add ons. Group the add-ons in optional features, and they can come and go in an individual install without hurting the main, core product.
I had not seen the last link before so that will be useful.
Is it fair to say that eclipse promotes plugin versioning mainly because an eclipse release has contributions from different projects/companies of different versions and that all these projects need to behave together in one tool?
In our situation here we have more control over the release of the product and the plugins it consists of. It will not be possible for other companies etc to drop plugins into the product outside of our release cycle. (in the near future anway)
In our discussions here I advocate the eclipse plugin versioning best practice as outlined in your first link. but the counter argument i get is what does this best practice give us other than an extra bit of headache for the developer? Especially seeing as our release strategy is to always release all our plugins on a product release (whose behaviour together will have gone through a test cycle). When it becomes apparent that outside developers/companies would like to extend our system, could we not adopt the plugin versioning then?
In our situation, I think this counter argument is persuasive.
I am looking for the 'killer' rebuttal
>In short, versioning is very important and proper guidelines should be followed to ensure that your adopters can easily consume your plug-ins.
yes but this is not really the case for us (at least not in the near future)
Even if you always release everything it is still a good idea to give
new versions/revisions. That way when you look at an Eclipse
configuration you know immediately what level of your code is installed.