geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Hogstrom <m...@hogstrom.org>
Subject Re: Organization and versioning of specs; a new proposal
Date Fri, 11 Aug 2006 19:39:13 GMT
I like the direction.  I think David's comment about

tags/artifact-version works also but tags will get a little busy.  If one approach is closer
to 
Maven behaviour in terms of recommended practices I'd go with that .

Jason Dillon wrote:
> A while ago there was talks about independently versioning specs, and 
> Alan started a reorg branch which gives each spec module its own 
> trunk+branches+tags...
> 
> I have been thinking about this for a while, and with the recent desire 
> to split off more modules from geronimo/trunk I've been pondering it 
> even more.  What I have come to believe is that spitting up spec modules 
> into their own trunk+branches+tags is probably not the best direction 
> for us to head in.
> 
> I believe that all of our specs can, and should, share one trunk... and 
> still have each module specify its own version.  This is very similar to 
> how Maven2 plugins is setup, see here:
> 
>     http://svn.apache.org/repos/asf/maven/plugins
> 
> Each plugin has its own version that changes independently.  The 
> top-level pom has a version too, which is independent and is only 
> changed when there is a major configuration change in that pom.
> 
> I recommend that we follow this model for our specs.
> 
> The advantage to one trunk, is that it facilitates easy check out and 
> building when you just want all of the specs.  If each spec was in its 
> own trunk, you would need to svn co each one, then mvn install in each 
> tree, which is a pain.
> 
> We also almost never branch specs, they just keep chugging along, only 
> really needing tags to track released versions.
> 
> So, here is what I propose:
> 
>     specs/trunk/pom.xml
>     specs/trunk/<artifactId>
>     specs/tags/<artifactId>/<version>
> 
> And if needed:
> 
>     specs/branches/<artifactId>/<name>
> 
> This is a single trunk so to build all specs:
> 
>     svn co https://svn.apache.org/repos/asf/geronimo/specs/trunk/ specs
>     cd specs
>     mvn install
> 
> To release an individual spec, say geronimo-spec-jms:
> 
>     cd specs/geronimo-spec-jms
>     mvn release
> 
> The m2 release plugin can be configured with a _tag base_, which we can 
> set to:
> 
>     https://svn.apache.org/repos/asf/geronimo/specs/tags/${pom.artifactId}
> 
> When released, the plugin will svn cp just the module's directory into a 
> directory under tags, so it will be easy to see what the released 
> versions of a specific spec are.
> 
>  * * *
> 
> I really do not see the need for each spec to have its own trunk, and 
> really I think that if we did then it would just make it more difficult 
> for cases when we really want all specs.
> 
> I do not see any downside to the approach above.
> 
> I recommend that we implement this.  The only major change, which isn't 
> that major, is that the properties which live in the root pom that 
> control the versions need to be removed... or rather moved back to the 
> <version> element of the respective pom.
> 
> Comments?
> 
> --jason
> 
> 
> 
> 

Mime
View raw message