I agree. On 15 June 2010 14: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 ! > > 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 >>> >> >> >> >
-- Alasdair Nottingham n...@apache.org