How could the use clause be used for JavaScript code? It is only
relevant when there is more than one exporter of a package.

This looks like the type of semantic confusion which arises from
repurposing manifest headers to represent something they were not meant
to represent.

Justin

On 6/16/10 3:57 AM, Guillaume Nodet wrote:
> We'd have to add a use clause to make sure the plugin is wired to two
> compatible packages.
> Apart from that, I think it should work, but i'm still not convinced
> about that.  It add more
> maintenance on both sides without much added value.
> 
> On Wed, Jun 16, 2010 at 09:33, Felix Meschberger <fmesc...@gmail.com> wrote:
>> Hi,
>>
>> On 15.06.2010 23:22, Justin Edelson wrote:
>>> 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.
>>
>> Interesting approach. I quickly tested exporting the res.lib package,
>> which is the res/lib folder containing the JQuery libraries. This works
>> perfectly.
>>
>> So, we could move the JQuery libraries to a new package, say
>> org.apache.felix.webconsole.js, and export this package. Whenever we
>> upgrade one of the libraries, we could increase the export version there.
>>
>> Consuming bundles could import that package and be sure to correctly
>> wire; if they wished.
>>
>> WDYT ?
>>
>> Regards
>> Felix
>>
>>>
>>> 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
>>>>
>>>
>>
> 
> 
> 

Reply via email to