geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Dillon <>
Subject Re: Who cares? [was: [DISCUSS] specs versioning]
Date Tue, 12 Dec 2006 04:32:58 GMT
On Dec 11, 2006, at 7:36 PM, Matt Hogstrom wrote:
> Option 1:
> Version all modules independently with no association to each other  
> except through perhaps dependencies.
> - Makes releasing hard as coordinating multiple modules is the  
> responsibility of the consumer
> - Makes releasing easy as there is almost no interdependence so  
> work on different modules can proceed at their own pace.
> Option 2:
> Version all modules together under a single version number.  This  
> means if we changed JAAC in the above example all other modules  
> would also be released as -1.1.1 even though they didn't changed.
> - This makes releasing easy as all modules get pushed out a once.
> - This makes releasing hard as one module that is having trouble or  
> people don't have time to work on it holds up the whole train.

I'm not sure that either of these options really covers each side of  
the issues completely.  I think one of the big ones, is from the  
consumers side of these artifacts, how many version numbers does one  
need to know about to find out what the latest version of each spec  
is?  Maybe these silly examples might help explain my thinking (or  

I'm Joe Java Developer and I just want the latest and greatest and  
don't care about any of the other details.  Do I need to know about  
~30 versions or one version?  Joe's little brother Jimmy is also  
learning about all of this too, and he might not know which versions  
of specs, versioned independently, are intended to be used together,  
and if he picks the wrong versions of some specs that have deps on  
other specs which he uses, then his project will end up with multiple  
versions of the same specs in his project.

Or lets say I'm Bob Build Master, and I don't know all of the details  
about the spec dependencies, I am just responsible for making  
releases... do I want to have to manage ~30 projects, releasing them  
in the right order when something changes, or do I want one project?   
The release build may be frequent or infrequent, Bob doesn't really  
care... but he's dealing with so many other builds that its probably  
best for him not to really need to worry about it.

Sammy ServletEngine Developer might only care about that JSP or  
Servlet specs and specifically only care about when the code changes,  
or if Sammy's team was using Maven 2, then he would also care when  
the pom's were changed, and in that case they would need to pay  
attention to what was actually being released (ie. the release notes)  
for specs in either model.

I believe in Joe's, Jimmy's and Bob's case that one version is the  
obvious choice.  For Sammy, per-module versions may make a little  
more sense, though the stretch to using one version may actually be  
easier for them to manage, especially if they just want to use the  
specs with the latest code and pom changes... otherwise they might  
pay more attention to what was actually in the release, and thus one  
version or multiple versions would effectively be the same amount of  
work for them making it effectively the same.

  * * *

Anyways, when it comes down to it... I'm just trying to give some  
advise on how I recommend Geronimo setup and maintain its growing  
number of projects (and growing number of modules).

Its not "my way or the highway", but more that I think you might want  
to travel on the same road to avoid bumps in the future... and I hope  
that if you choose not to that Its not too painful to fix the flat  
when it occurs.


View raw message