[jbosstools-dev] Required bundles and version restriction

Martin Malina mmalina at redhat.com
Thu Oct 10 08:13:08 EDT 2013


On 10. 10. 2013, at 13:57, Max Rydahl Andersen <manderse at redhat.com> wrote:

> On Thu, Oct 10, 2013 at 12:30:35PM +0200, Martin Malina wrote:
>> Thanks for the input, guys. I didn't know about the different interpretation of this in feature.xml.
>> I guess I will stick with the explicit version ranges.
>> What makes me sad is that I won't be able to use [1] and be done. Every time I upgrade the version I will also have to manually (although I can script it, sure) change all the manifests.
> 
> eh ?
> 
> [1] updates all occurence of your project versions - including manifest.

It updates version in manifest of the bundle itself, but not version of required bundles - obviously: it wouldn't know which bundles are part of the same project.
And the conclusion of this thread is that it probably makes sense for us to keep these requirements strict, including version ranges.


> 
> Aren't your problem about when you  need to update projects that rely on red deer release ?

No, this thread had nothing to do with other projects relying on reddeer - although we could restrict the requirements there, too. But here I was only asking with respect to the reddeer project alone - most reddeer bundles rely on other reddeer bundles.

-Martin

> 
> Thats where API compatibility becomes relevant ;)
> 
> /max
> 
>> -Martin
>> 
>> [1] mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=<version> (https://community.jboss.org/en/tools/blog/2011/09/17/coping-with-versions-in-large-multi-module-osgi-projects)
>> 
>> On 4. 10. 2013, at 17:48, Nick Boldt <nboldt at redhat.com> wrote:
>> 
>>> It's always better to be explicit, because in plugin manifests "0.4.0" means "0.4.0+" and in feature manifests (feature.xml) it means "[0.4.0,1.0.0)". This is easy to forget, which is why I recommend being explicit, or else bookmarking this blog:
>>> 
>>> http://divby0.blogspot.ca/2011/07/manifestmf-and-featurexml-versioning.html
>>> 
>>> :D
>>> 
>>> On 10/04/2013 09:23 AM, Mickael Istria wrote:
>>>> On 10/04/2013 02:09 PM, Martin Malina wrote:
>>>>> in
>>>>> https://github.com/jboss-reddeer/reddeer/blob/master/plugins/org.jboss.reddeer.eclipse/META-INF/MANIFEST.MF
>>>> Keep in mind that "0.4.0" means [0.4.0, 2147483647.2147483647.2147483647].
>>>> Eclipse guidelines say that since only major version bump should cause
>>>> API incompatibility, it's better to use ranges such as "[0.4.0,1.0.0)"
>>>> since 1.0.0 and later wouldn't be compatible with 0.x.
>>>> 
>>>>> The reasoning for this version setting is to eliminate the risk of
>>>>> mixing different versions of RedDeer bundles that you may have
>>>>> installed in your local repository. What do you think about this? I
>>>>> didn't see any such thing in jbosstools source so I wonder if this is
>>>>> a real threat.
>>>> On the other end, it prevents any of this bundle to run with older
>>>> version of RedDeer, even if it's possible to mix them. It's a trade-off
>>>> between modularity and compatibility
>>>> As we usually ship bundles in features, and that features contain the
>>>> exact qualified version of the bundles to install, adding these
>>>> constraints is not very helpful for the normal installation scenario as
>>>> features provide much stricter constraints. However, if you don't use
>>>> feature includes, and only rely on feature "imports" and MANIFEST.MF
>>>> Require-Bundle to resolve dependencies, such change gives good hints.
>>>> 
>>>> Anyway, that's a very good question you have there, and there is a very
>>>> elegant answer in PDE: http://www.eclipse.org/pde/pde-api-tools/ . With
>>>> API Tools enabled in your IDE, you'll be able to annotate your APIs and
>>>> PDE will give you hints on how to deal with versions compared to a
>>>> baseline, depending on the API change you make. Also, if you depend on
>>>> newer APIs from another bundle, it will tell you to change the version
>>>> in your dependencies to the minimal version which provides this API.
>>>> 
>>>> HTH
>>>> --
>>>> Mickael Istria
>>>> Eclipse developer at JBoss, by Red Hat <http://www.jboss.org/tools>
>>>> My blog <http://mickaelistria.wordpress.com> - My Tweets
>>>> <http://twitter.com/mickaelistria>
>>>> 
>>>> 
>>>> _______________________________________________
>>>> jbosstools-dev mailing list
>>>> jbosstools-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>>> 
>>> 
>>> --
>>> Nick Boldt :: JBoss by Red Hat
>>> Productization Lead :: JBoss Tools & Dev Studio
>>> http://nick.divbyzero.com
>> 
>> --
>> Martin Malina
>> JBoss QA Engineer
>> Red Hat Czech s.r.o.
>> Purkynova 99
>> 612 45 Brno, Czech Republic
>> 
>> Tel.: +420 532 294 265
>> 
>> 
>> 
>> 
> 
>> _______________________________________________
>> jbosstools-dev mailing list
>> jbosstools-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
> 

--
Martin Malina
JBoss QA Engineer
Red Hat Czech s.r.o.
Purkynova 99
612 45 Brno, Czech Republic

Tel.: +420 532 294 265




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jbosstools-dev/attachments/20131010/abddfb0b/attachment-0001.html 


More information about the jbosstools-dev mailing list