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] >>
