On Tue, Jun 15, 2010 at 4:59 PM, Guillaume Nodet <gno...@gmail.com> wrote:
> On Tue, Jun 15, 2010 at 15:05, Felix Meschberger <fmesc...@gmail.com> > wrote: > > Hi, > > > > On 15.06.2010 14:49, Guillaume Nodet wrote: > >> What if you change the semantic of a function call without changing the > >> signature ? > >> I guess that's an incompatible change in theory, though still binary > >> compatible. So we can't limit to binary compatibility for versioning > imho, > >> which mean there is some semantic involved. > > > > Yes, agreed, this is in fact an API change - and therefore requires an > > update in the exported package version. > > > > Nevertheless: I would say, that changing the semantics of a method is > > dangerous, just because it involves no change on the invocation level. > > So I would think, that changing the semantics of a method is even more > > dangerous than an incompatible API change. > > > >> > >> If you expect the user to take an action when upgrading, it means there > is a > >> (somewhat) incompatible change imho. > > > > Really depends on the kind of upgrade. > > > > Consider for example the Web Console upgrading to the next JQuery > > release. This would require a new Web Console release with an increased > > bundle version number. > > > > But since nothing in the API changes as a consequence of this JQuery > > upgrade, we must not increase the exported package version number ! > > > > BTW: [1] is highly recommended reading ! > > The document actually clearly talks about semantic compatibility. > > The question then comes down to: is the environment provided by the > webconsole to the plugin part of the semantic of the package exported. > I would think so. Why? The Java package org.apache.felix.webconsole should be able to be versioned independently of any front-end code. Just because there isn't a great way to expose/consume the version of the JavaScript libraries doesn't mean you should overload the meaning of the package version. > Which leads me to have to bump the major version > of the package if the html output of the plugin won't work anymore. > One thing that might work is to define a synthetic package representing the front-end environment. But this would be versioned independently from the Java package(s) the bundle exports. I'm just not sure how BND behaves when you tell it to include an Export-Package header for a package which doesn't exist. Justin > > Note the title of this document is really "semantic versioning", not > "binary compatibility". Though binary compatibility is usually a > great deal, it is clearly not sufficient to capture the whole semantic > versioning of a given package ... > > > > > Regards > > Felix > > > > [1] http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf > > > >> > >> On Tue, Jun 15, 2010 at 14:36, Alasdair Nottingham <n...@apache.org> > wrote: > >> > >>> +1 a package version change reflects a change to the package, not a > >>> change to the implementation. > >>> > >>> On 15 June 2010 13:27, Felix Meschberger <fmesc...@gmail.com> wrote: > >>>> Hi, > >>>> > >>>> On 15.06.2010 14:20, Guillaume Nodet wrote: > >>>>> On Tue, Jun 15, 2010 at 14:15, Felix Meschberger <fmesc...@gmail.com > > > >>> wrote: > >>>>> > >>>>>> Hi, > >>>>>> > >>>>>> On 15.06.2010 13:38, Guillaume Nodet wrote: > >>>>>>> Usually, users would use a range, so it should not matter that much > I > >>>>>> think. > >>>>>> > >>>>>> Yes and no. > >>>>>> > >>>>>> The problem is, that the bundle version may evolve independently of > the > >>>>>> API export version. > >>>>>> > >>>>>> Consider for example that we decide to release a 4.0 version of the > Web > >>>>>> Console in the future whereas the API did not change at all. In this > >>>>>> case, we should still export the API as 3.1 to not break existing > >>>>>> plugins which import the API as [3.1,3.2). > >>>>>> > >>>>> > >>>>> And why would be bump the version if there's no change ? > >>>> > >>>> Where's the change ? The Web Console bundle exports API and contains > >>>> implementation. As such the Web Console bundle attaches a version to > the > >>>> exported package and to the bundle itself. > >>>> > >>>> But: We must not mix the semantic of the version of the API export > with > >>>> the semantic of the bundle version, which also includes implementation > >>> code. > >>>> > >>>>> Even if the > >>>>> package did not actually change, if there was a need for the major > >>> version > >>>>> to be bumped, i'd rather reflect that on the package version as well, > to > >>>>> make sure people are aware of those major changes (and change their > >>> version > >>>>> range if needed). > >>>> > >>>> No, please not. > >>>> > >>>> The export package version has semantic meaning to the importers > (users, > >>>> implementors) of the exported package. > >>>> > >>>> The bundle version on the other hand has semantic meaning to the > (human) > >>>> users of the web console at large. > >>>> > >>>> If we upgrade the export version of the package, just because we > >>>> modified some internal implementation, this will break plugins for > >>>> nothing worth -- except making (human) users and administrators > unhappy > >>>> because we require them to upgrade plugins ... > >>>> > >>>> Granted, if the internal implementation causes the API to change we > must > >>>> increment the version of the exported package. > >>>> > >>>> But in no case should the version of an exported package be > incremented > >>>> just because the internal implementation changed without influence on > >>>> the exported package contents.... > >>>> > >>>> Regards > >>>> Felix > >>>> > >>>> > >>>>> For example, from 2.x to 3.x, the UI has been redesigned, but the > >>> package > >>>>> could have been backward compatible (is it ?). But even if it is > >>>>> compatible, i'd rather upgrade it to 3.x, because i'd rather have > users > >>> be > >>>>> aware that they need to rewrite the plugins to adapt to the new ui > ... > >>>>> > >>>>> > >>>>>> > >>>>>>> I've used the pom.version for 3.1.0, which an be change afterward > if > >>> we > >>>>>> want > >>>>>>> to keep at 3.1.0 for the package version for future releases. > >>>>>> > >>>>>> Ok. > >>>>>> > >>>>>> Regards > >>>>>> Felix > >>>>>> > >>>>>> > >>>>>>> > >>>>>>> On Tue, Jun 15, 2010 at 13:15, Felix Meschberger < > fmesc...@gmail.com> > >>>>>> wrote: > >>>>>>> > >>>>>>>> Hi, > >>>>>>>> > >>>>>>>> On 15.06.2010 12:58, Guillaume Nodet wrote: > >>>>>>>>> Wow, I was expecting the package to be derived from the project > >>>>>> version. > >>>>>>>> > >>>>>>>> No, because I don't want to increase the export version on each > >>> bundle > >>>>>>>> release. The downside is, that it must not be forgotten to be > >>> increased > >>>>>>>> when there is some change in the API. > >>>>>>>> > >>>>>>>> Regards > >>>>>>>> Felix > >>>>>>>> > >>>>>>>>> I'll fix that now. > >>>>>>>>> > >>>>>>>>> Cancelling this release again. ... > >>>>>>>>> > >>>>>>>>> On Tue, Jun 15, 2010 at 12:46, Felix Meschberger < > >>> fmesc...@gmail.com> > >>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> Hi, > >>>>>>>>>> > >>>>>>>>>> On 15.06.2010 11:47, Guillaume Nodet wrote: > >>>>>>>>>>> I would like to call a new vote on the following subproject > >>> releases: > >>>>>>>>>>> > >>>>>>>>>>> webconsole 3.1.0 > >>>>>>>>>> > >>>>>>>>>> Still exports web console API 3.0 ... > >>>>>>>>>> > >>>>>>>>>> Regards > >>>>>>>>>> Felix > >>>>>>>>>> > >>>>>>>>>>> bundlerepository 1.6.4 > >>>>>>>>>>> karaf 1.6.2 > >>>>>>>>>>> > >>>>>>>>>>> Staging repository: > >>>>>>>>>>> > >>>>>> > https://repository.apache.org/content/repositories/orgapachefelix-053/ > >>>>>>>>>>> > >>>>>>>>>>> You can use this UNIX script to download the release and verify > >>> the > >>>>>>>>>>> signatures: > >>>>>>>>>>> > >>> http://svn.apache.org/repos/asf/felix/trunk/check_staged_release.sh > >>>>>>>>>>> > >>>>>>>>>>> Usage: > >>>>>>>>>>> sh check_staged_release.sh 053 /tmp/felix-staging > >>>>>>>>>>> > >>>>>>>>>>> Please vote to approve this release: > >>>>>>>>>>> > >>>>>>>>>>> [ ] +1 Approve the release > >>>>>>>>>>> [ ] -1 There's a problem (please provide specific comments) > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>>> > >>>>> > >>>> > >>> > >>> > >>> > >>> -- > >>> Alasdair Nottingham > >>> n...@apache.org > >>> > >> > >> > >> > > > > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > ------------------------ > Open Source SOA > http://fusesource.com >