> On May 21, 2015, at 11:44 AM, Jeremy Hughes <[email protected]> wrote:
> 
> Hi,
> 
> Simplifying the release process would definitely be good. I'd like to
> know the detail of what you're suggesting. I think you're saying that
> a release of (say) Aries JPA would contain all the artifacts the child
> modules release today... plus tests plus samples. The release would be
> a src and a bin tgz/zip file and would go up on
> www.apache.org/dist/aries.

Correct.

> What would be published to maven central?

Yes.   That wouldn’t change.   It would be easier as things would pretty much 
be in a single staging area in Nexus.


> I think we need to keep the semantic versioning of our packages
> consistent going forward - for people doing import-package imports
> (hopefully most users).

Package level exports would remain as is and be completely semantic versioned.

> Ideally we would keep semantic versioning of the bundles consistent
> going forward too - for people doing require-bundle.

This would change.  All the bundles for the release would have identical 
version numbers.


> We could introduce a new 'top-level-module' version which wouldn't be
> used at runtime, but would help in aggregating together a set of
> bundles that are consistent with each other & well tested etc.
> 
> So, if we
> 
> * always release at the top-level-module level and
> * keep the way we do package and bundle versioning going forward, and
> * publish the individual bundles from the release into maven central
> with their existing well known co-ordinates
> 
> would this work for you? I'm slightly concerned in writing this, that
> this might not provide enough simplification in the build process,
> although it would mean a single artifact (well src and bin) to vote on
> even though that results in multiple artifacts being published to
> maven central.

All the jars/bundles in the “module” would have identical version number.  The 
exports in the bundles would be semantically versioned correctly.  There would 
be a single “src.tar.gz” and “bin.tar.gz” for dist.apache.org, but each bundle 
would also be put in central individually with their “sources.jar” and javadoc 
jars (for IDE integration).   A release of all of a “module” can be done with a 
single “mvn release:prepare; mvn release:perform” which would pretty much 
handle everything.

Dan




> 
> Thanks,
> Jeremy
> 
> On 20 May 2015 at 16:12, Christian Schneider <[email protected]> wrote:
>> Currently we release each bundle separately and we do not release tests and
>> examples at all.
>> This approach is very fine grained and tedious if several bundles need to be
>> released. Probably Holly can tell some stories about the fun of releasing
>> aries 1.0.0.
>> 
>> So I would like to discuss changing to a more coarse grained model.
>> 
>> The idea is to release per "sub project" like e.g. Aries JPA. This would
>> mean that we always release all bundles of a sub project even if nothing has
>> changed.
>> Of course we would still version exported packages according to semantic
>> versioning rules. So apart from having some additional bundle I do not see a
>> big disadvantage in the coarse grained model. Users could still depend on
>> the old api and still work with newer releases if the API did not change.
>> 
>> On the other side there are a lot of advantages for releasing per sub
>> project:
>> - Easier to understand for users.
>>    They could say I am using Aries JPA 2.0.0 instead of saying I use
>>    org.apache.aries.jpa.api 1.0.2, org.apache.aries.jpa.blueprint.aries
>> 1.0.4, org.apache.aries.jpa.container 1.0.2,
>> org.apache.aries.jpa.container.context 1.0.4
>> - The jira structure would be simpler as we would only need one version per
>> sub project
>> - We could migrate to git at last as we could then have one git repo per
>> subproject that could be nicely branched and tagged on the repo / sub
>> project level.
>>  One other nice thing would be that we could move to git gradually one sub
>> project at a time without disturbing the others.
>> - We would tag the tests and examples together with the production bundles.
>> This makes it much easier to run tests against a specific release version.
>>    This should also make it much easier to maintain bugfix branches and
>> make sure they are properly tested.
>> - Per apache policy we have to store all releases at
>> www.apache.org/dist/aries. With the current fine grained model almost no one
>> seems to do this. This should also be easier with more coarse grained
>> releases.
>> 
>> 
>> What do you think?
>> 
>> Christian
>> 
>> --
>> Christian Schneider
>> http://www.liquid-reality.de
>> 
>> Open Source Architect
>> http://www.talend.com
>> 

-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to