[jdom-interest] Why are version numbers so complicated?

Rolf Lear jdom at tuis.net
Sat Mar 17 06:01:11 PDT 2012

Hi all

I am getting (trying to get) things all nicely tidied up, organized, and 
automated for the JDOM2 releases. But, one thing I have not yet sorted 
out is the version number(s) for the 'final' JDOM2 release.

Here are the factors that influence the decision:
- the www.jdom.org site is the official release site for all things JDOM.
- The www.jdom.org site is going to need to have both versions (1.x and 
2.x) available simultaneously.
- maven has version number requirements
- maven has some automated processing for dependency management
- Technically the Java package is org.jdom2, not org.jdom
- 'in my head' I have JDOM 1.x and JDOM2
- there is an established tradition for JDOM 1.x
- there is already some sort of 'consistency' for JDOM2
- I anticipate there to be relatively routine releases for JDOM2 as new 
features are added and existing bugs fixed. I want it to be easy for new 
versions to be pushed out, and I want to be able to tell people 'just 
get the latest version' if there is a problem.

About the maven requirements: maven has a hierarchy of resources. At the 
top of the hierarchy is a 'group'. We are the 'org.jdom' group. Each 
group releases 'things', which in maven speak is an 'artifact'. Each 
artifact has versions. For example, there is the group 'org.jdom', with 
the artifacts 'jdom', and 'jdom-contrib', and it so happens that there 
are the jdom versions 1.1.2 and 1.1.3, as well as the jom-contrib 
version 1.1.3. There is no special 'maven' reason for the version number 
jdom 1.1.3 to match jdom-contrib 1.1.3.

I have also recently added the jdom2 artifact id for the last couple of 
JDOM2 beta releases. The reason I added jdom2 is because maven 
dependencies can be automated, where maven users can say 'I want to use 
the latest version of org.jdom artifact 'jdom'. I don't want people who 
expect to use JDOM 1.x to suddenly start getting JDOM2. But, I also 
needed to test whether I can do the releases to maven, and to make sure 
that the releases work. Finally, maven has an ordering for versions. It 
is logical, and systematic, but it means that, if we want to use use the 
two artifacts (jdom and jdom2) that I have already created, we need to 
keep in mind that the first available versions for them are 1.1.4 and 
0.0.5 respectively.

So, thinking ahead to the first full JDOM2 release, should it be:

JDOM version 2
JDOM version 2.0.0
JDOM2 version 1
JDOM2 version 1.0.0
JDOM2 version 2
JDOM2 verison 2.0.0

Additionally, should I push the JDOM2 release out to the 'jdom' artifact 
on maven-central, or should I push it to the 'jdom2' artifact? (it 
affects the options for version numbers).

Anyway, the point is that I am wholly uncertain as to what the 'right' 
answer to this is. Does anyone have any suggestions, notice anything I 
have missed, etc?



More information about the jdom-interest mailing list