On Mon, Feb 28, 2011 at 15:40, Jeremy Hughes <[email protected]> wrote:
> On 28 February 2011 13:08, zoe slattery <[email protected]> wrote:
>> On 28/02/2011 12:44, Guillaume Nodet wrote:
>>>
>>> On Mon, Feb 28, 2011 at 13:37, zoe slattery<[email protected]>
>>>  wrote:
>>>>
>>>> On 28/02/2011 12:21, Guillaume Nodet wrote:
>>>>>
>>>>> On Mon, Feb 28, 2011 at 12:36, zoe slattery<[email protected]>
>>>>>  wrote:
>>>>>>
>>>>>> Hi - After 4 or 5 days spent fighting the maven release plugin I have
>>>>>> something that is probably worth discussing.
>>>>>>
>>>>>> For releasing modules I think I'm down to two options.
>>>>>>
>>>>>> 1) We follow Guillaume's suggestion of having release artifact versions
>>>>>> different to bundle versions
>>>>>>        - We can release by module as we do now
>>>>>>        - Might have unexpected side effects where people expect the
>>>>>> BundleVersion to be the same as the version in the artifact name.
>>>>>>        - We release the same code more than once, with different
>>>>>> artifact
>>>>>> names
>>>>>>
>>>>>> 2) We release each bundle in a module, only where the bundle has
>>>>>> actually
>>>>>> changed. Then find a way to distribute bundles that we know work
>>>>>> together.
>>>>>>       - A bit more work to release, but not a stupid amount
>>>>>>       - Versions in artifact names are the same as Bundle-Version
>>>>>>       - We don't release the same code over again
>>>>>>
>>>>>> I have a sample of what a module distro might look like here :
>>>>>>
>>>>>> http://people.apache.org/~zoe/TEST-org.apche.aries.proxy-distro-0.8.zip.
>>>>>> It
>>>>>> contains the build-able source for the whole proxy module, and, under
>>>>>> 'bundles', the proxy jars corresponding to the release.
>>>>>
>>>>> That link doesn't seem to work for me.
>>>>
>>>> Sorry - spelling wrong.
>>>>
>>>> http://people.apache.org/~zoe/TEST-org.apache.aries.proxy-distro-0.8.zip
>>>>
>>>>
>>>>>> I'd like some feedback on a couple of things:
>>>>>>
>>>>>> (a) Do people feel it's necessary to have the buildable module source
>>>>>> in
>>>>>> a
>>>>>> distro? I ask this because this is the part that's been very had to do.
>>>>>> Just
>>>>>> collecting up the bundles is very easy.
>>>>>
>>>>> The source assembly has usually worked fine for me.  AFAIK, a
>>>>> buildable source distribution is a requirement for an ASF release, but
>>>>> the build phase does not have to be a single command, as long as you
>>>>> can build the same artifacts somehow , it's fine.
>>>>
>>>> Yes - and it works great if we stick with the existing multi-module
>>>> release.
>>>> But if we switch to release by bundle you will get the source for each
>>>> bundle fine, if you want the source for the _whole module_ in a distro
>>>> it's
>>>> very hard. If the distro can just be a collection of released bundles
>>>> (jars)
>>>> that we know work together - that is  easily done. Does that make sense?
>>>>>>
>>>>>> (b) Does option 2 seem like a reasonable way forward? I think we could
>>>>>> construct something similar for a complete aries distro with working
>>>>>> samples, but I haven't tried yet.
>>>>>
>>>>> I think we'd need some consensus as to when we need to release the
>>>>> uber-bundles, distros, examples and all.  It's really not clear to me
>>>>> as to when I would release a single bundle vs examples and all.
>>>>> Because if we don't release them, there's little point in maintaining
>>>>> them at all.
>>>>
>>>> Yes - agreed. All I was looking at at this stage is solving the issue in
>>>> a
>>>> single module release. So the process for proxy*, in the case where the
>>>> proxy-api has already been released would be
>>>> 1) Release proxy-impl (depends on -api)
>>>> 2) Release proxy-bundle (depends on -impl and -api)
>>>> 3) Release itests
>>>> 4) Release proxy -distro.
>>>>
>>>> The distro provides two things, (a) a set of bundles for a release which
>>>> we
>>>> know run together, (b) the source for the entire proxy module, including
>>>> in
>>>> this case, the source for -api
>>>>
>>>> I think it would be possible to create a similar sort of thing for
>>>> aries-distro, this would include samples and a set of bundles that the
>>>> samples work with. I haven't tried this yet - I hope it's not as hard as
>>>> creating the module distro was, but I expect it will be.
>>>
>>> Maybe I'm silly, but if we add the proxy-api, don't we have a
>>> release-per-module policy and not a release-per-bundle anymore ?
>>> The release could then be automated using a shell / ant script ...
>>
>> I'm sure you're not silly - I probably haven't explained it well enough. The
>> distro is just a convenience, in fact all it contains is stuff that has
>> effectively already been released  (that being the case - does it even need
>> to be released?) It's just way of ensuring that, if you were just to release
>> a single bundle (say the -bundle) the other aries artifacts that it depends
>> on are packaged up in a distribution and someone wanting all of the proxy
>> bundles at a consistent level could just extract the distribution. Maybe it
>> just is unnecessary?
>
> I think that's something we should release. It's an alternative to an
> uber bundle: an uber bundle says here's a bunch of bundles all in one
> bundle which we have tested to work together (with a bit of extra code
> to ensure all the activators are driven). One bundle is deployed, if
> it needs to be updated the provisioning runtime has to reprovision the
> whole thing. The distro approach says the same about the bundles
> working together, now because what's being deployed is multiple
> bundles, the provisioning runtime can update just a smaller part if
> necessary.
>
> By releasing the distro we set in stone the set of bundles w/versions
> that work together. If it's just a list on our website, then it's IMO
> less consumable and fragile (for example no vote on that set of
> bundles w/versions).

I fully agree with you on all points.  What I don't understand is that
if we have to release the distribution each time we release a bundle,
we have a per-bundle versioning scheme, but a per-component release
scheme, don't we ?


>
>>
>>
>> Z
>>>>
>>>>>> Zoė
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  <http://people.apache.org/%7Ezoe/TEST-org.apache.aries.proxy-distro-0.8.zip>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to