Hm, I thought the distinction between usage of the interface was a distinction 
made on the import side. So as for an interface I am using but not implementing 
I have a range of [a, a+1) and for one I am using through implementation, [a, 
a+0.1). In either case I would have thought the semantic versioning tool should 
suggest a+0.1 as the next version for adding a new method, so as to enable the 
user to make that choice.

What am I missing?

Regards,

Valentin

On 29 Sep 2011, at 08:28, David Bosschaert wrote:

> Hi Emily,
> 
> Yes, sounds great. Especially if this plugin can ultimately be
> integrated with maven and work alongside the maven-bundle-plugin that
> would be great.
> 
> Regarding the semantic versioning, this relates to the role that a
> certain interface plays.
> If an interface is extended (e.g. with a new method) then there are
> two situations:
> * if it's an interface that is supposed to be *implemented* by end
> users then this is a major version increase. I think this is what you
> have right now.
> * however, if it's an interface that is supposed to be *used* by end
> users but implemented by the infrastructure (e.g. part of the
> 'project' you are comparing, which might span multiple bundles) then
> only a minor version increase is needed. In this case the interface is
> still binary compatible with users of it. It's just not compatible
> with implementors of it. Note that this only applies to a limited set
> of changes to an interface. E.g. removing a method is binary
> incompatible for everyone.
> 
> I'm not sure whether its possible to automatically guess what the role
> of an interface is, so the tool needs to be configurable wrt to this.
> I would even suggest that the tool fails unless this information is
> available for all its public interfaces since guessing it wrong can
> have pretty bad consequences.
> 
> Cheers,
> 
> David
> 
> On 28 September 2011 19:36, Alasdair Nottingham <[email protected]> wrote:
>> +1
>> 
>> I think this would be a really good tool to have here. I'm happy to assist
>> with getting it integrated if you need anything.
>> 
>> Thanks
>> Alasdair
>> 
>> On 28 September 2011 17:17, Emily Jiang <[email protected]> wrote:
>> 
>>> I use ASM and also have to load classes to access super classes:(.
>>> 
>>> On Wed, Sep 28, 2011 at 5:10 PM, Timothy Ward <[email protected]
>>>> wrote:
>>> 
>>>> 
>>>> Emily,
>>>> 
>>>> Are you using ASM, or some other bytecode tool, to work out what has
>>>> changed, or do you have to load classes and use reflection to find out?
>>>> 
>>>> Regards,
>>>> 
>>>> Tim
>>>> 
>>>>> Date: Wed, 28 Sep 2011 16:58:33 +0100
>>>>> Subject: Re: Semantic Versioning tool
>>>>> From: [email protected]
>>>>> To: [email protected]
>>>>> 
>>>>> Hi David,
>>>>> 
>>>>> It works by comparing the current binary with the baseline binary:
>>>>> 1. For each export package, it scans each non private class to see
>>>> whether
>>>>> there are binary incompatibility changes (according to Java
>>>> specificiation
>>>>> chapter 13 Binary Compability). If yes, a major version change is
>>> needed
>>>> for
>>>>> this pkg.
>>>>> 2. If there are not binary incompability changes, it will see whether
>>>> there
>>>>> are abstract class, methods or new xsd file added. If yes, the
>>> package's
>>>>> minor version needs to be increased.
>>>>> 3. It then determine the bundle version based on package versions
>>> changed
>>>>> according to semantic versioning white paper.
>>>>> 
>>>>> The tool ignore micro version changes.
>>>>> 
>>>>> I can contribute the tool as a project and then we can create a mvn
>>>> plugin
>>>>> from it or something even smarter.
>>>>> 
>>>>> Regards,
>>>>> Emily
>>>>> 
>>>>> On Wed, Sep 28, 2011 at 4:16 PM, David Bosschaert <
>>>>> [email protected]> wrote:
>>>>> 
>>>>>> Very interesting, Emily. Would you be able to provide some
>>> information
>>>>>> regarding how it works?
>>>>>> 
>>>>>> In any case I would welcome such an addition to Aries.
>>>>>> 
>>>>>> Best regards,
>>>>>> 
>>>>>> David
>>>>>> 
>>>>>> On 28 September 2011 16:02, Emily Jiang <[email protected]>
>>>> wrote:
>>>>>>> I have developed a semantic checking tool to check whether a
>>> bundle's
>>>>>>> version or the export package versions are correclty versioned
>>>> according
>>>>>> to
>>>>>>> OSGi semantic versioning whitepaper. I would like to contribute to
>>>> Apache
>>>>>>> Aries as subproject under a code name of 'llama' ( or a better
>>> name.
>>>> I am
>>>>>>> open to suggestions).
>>>>>>> 
>>>>>>> Any thoughts or suggestions?
>>>>>>> --
>>>>>>> Thanks
>>>>>>> Emily
>>>>>>> =================
>>>>>>> Emily Jiang
>>>>>>> [email protected]
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Thanks
>>>>> Emily
>>>>> =================
>>>>> Emily Jiang
>>>>> [email protected]
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Thanks
>>> Emily
>>> =================
>>> Emily Jiang
>>> [email protected]
>>> 
>> 
>> 
>> 
>> --
>> Alasdair Nottingham
>> [email protected]
>> 

Reply via email to