[jdom-interest] Why are version numbers so complicated?
jdom at tuis.net
Sat Mar 17 06:01:11 PDT 2012
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
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