hi all,

thanks very very much on the advice

it is very useful

~manchi

On Apr 5, 2006, at 6:17 PM, Brian Topping wrote:

I would echo Eric's sentiments, with a caveat.

A lot of smaller (in house, no exposed APIs) projects can be helped by starting with build numbers taken directly from the subversion revision ID. This is a monotonically increasing integer, and by using that for your release ID, there's little or no reason to use tags, since every release ID _is_ a tag. The use of the release ID also gives users a very weak idea of how much difference there is between two builds.

What release IDs do not do is provide information about architectural changes. For instance in the traditional number of x.y.z, a change in x would indicate a substantial or full rewrite of the product, a change in y would indicate potential incompatibilities, and a change in z would indicate bug fixes. But if you are running a small shop that does not have customers relying on the APIs of your product, you can just use subversion IDs and save yourself a ton of time, since architectural changes don't matter to anyone but the engineers, and all they care about is where to find that version in the source repository.

As Eric said, you can always add later, but it's hard to take away. So start with SVN IDs, and if that's not enough, move on to simple version numbers (as tags) as an external communication aid.

HTH,

:b

On Apr 4, 2006, at 8:06 PM, Eric Redmond wrote:

Well, sorry to dissapoint, but I'm not an expert... I am, however, full of
opinions!

This is how I tend to number, and it works well for me:

Skip bugfix numbering unless you are working on a major project. Seriously. It gets very burdonsome to handle multiple minor edits on smaller projects, since they either 1) change a lot... meaning that all of their dependencies are expected to change? Naw, just use SNAPSHOTs or timestamps. 2) rarely change... meaning, why would you need to keep track of version 1.0.1 versus
1.0.2?
Now, that said, bugfix numbering is good for larger projects, like linux,
jboss, or maven. The difference between 2.0.0 and 2.0.3 is fairly
substantial. So, what's the difference between a small and large project? Well, thats up to you. Just don't get overzealous. Remember: you can always add decimals later, but its hard to take them away (try and explain to your users and developers why you moved from 1.1.0.1a to the number 2: "what
version is this, really"?).

Parent and aggregator projects (pom packages) can live quite well with a single number. 1, 2, 3... no need to complicate matters, they don't change enough to need minor numbers, and when they do, its a pretty major change
for their children.
Addendum to the previous statment: if the artifact is the top aggregator of a large project. Since this version will tend to be the project's actual
version, use the actual project's numbering scheme.

I also like to use the *-alpha-1, *-beta-3, *-RC-1 style of naming. It works, its descriptive, and it lets users know if they're using a beta
project right off the bat.

I'd love the chat more, but the new episode of "House" is on!

Hope this helps;
Eric

On 4/4/06, Man-Chi Leung <[EMAIL PROTECTED]> wrote:

hi,

sorry that it is not a direct question on Maven usage, but I  really
hope to improve my Release management process with  Maven.

I would like to understand more regarding version numbering
convention, perhaps, the most commonly practice in Java community.

1) for subversion source tree. it is using Release.Minor.Bugfix-
ReleaseCandidate scheme
e.g. from  1.0.x  -> 1.1.x ->1.2.x -> 1.3.x
1.3.x-rc1 -> 1.3.x-rc2 -> 1.3.x-rc3

2) in linux kernel, 1.x , odd-numbered releases (2.5, 2.7, etc.) are
unstable development versions, while even-numbered releases (2.6,
2.8, etc.) are stable consumer releases.

3) Eclipse community is using a term "Milestone". it is from 2.x M1 -
2.xM2 ... -> 2.xM6 -> 3.x , etc

4) Apple is practicing number-letter-number scheme, also having
development version & marketing version
e.g first build of Panther (10.3) was 7A1. The first public release
was 7B85; the last, 10.3.9, was 7W98. But the next build of OS X was
10.4, 8A1

5) in general, there is also 1.x apha , 1.x beta , 1.x final release.
etc

6) in Maven and relating maven plugin, there is a SNAPSHOT scheme.
i would like to find out more about the differences and good
practice. any expert can help?

thanks so much for help and advice!

Regards,
manchi

-------------------------------------------------------------------- -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to