Hi,
I'd like to discuss with everybody the current situation about releases.
Or should I say, about the lack of them :-p
As far as I can see it, the lack of releases in GeoServer is due to the
mix of two factors:
- people involved in the project are damn busy, so there is general
lack of time
- the release process takes too much time, has been designed in
times when people could dedicate one day to it and now that amount
of time is simply not there
At the same time the testing level of geoserver increased steadily
and thanks to Justin's effort we have CITE tests running every
night checking the GeoServer code base.
I think I'm not the only one that routinely uses only nightly builds
for production deploys: the automated testing level is so good that a nightly
build generally has nothing to envy to a released version, on
the contrary, especially on the stable branch is often much
better (the 2.0.x nightly has something like 58 bug fixes compared
to 2.0.2, see [1])
If you look at the release process, QA wise all we add is some interactive
testing.
I would like to see a new release process in place where all that
needs to be done in order to cut a release is to grab the artifacts
from a nightly build that passed all the unit tests and all
of the cite tests and go from there:
- do the interactive testing
- build the installer
- push the artifacts on sourceforge
- announce the release (on less sites than we do today).
In this ideal situation it would take only a few hours to release
both geotools and geoserver (I'm thinking something
in the ballpark of 2-4 hours).
In order to get there we need at the very least to:
- include the svn revision number in the built artifacts
(so that we know what to tag)
- have the cite tests pull a geoserver out of the nightly
repo instead of using a potentially different thing
built with some changes that were not in the nightly
The first item could be accomplished by using this
maven plugin:
http://maven-svn-revision-number-plugin.googlecode.com/svn/site/examples/resource_filtering.html
We could have the revision added in each jar META-INF
folder, as well as put it in the name of the artifacts built.
Also the nightly build would have to run all the tests
fully (extensive, whatnot).
The second might require some changes in the way the
cite tests are run, and would also demand that the
cite results declare something like "success with
nightly build from revision xyz".
It would still not be the mythical "one button push
release" but it might get us closer enough to restore
monthly or bi-monthly releases.
Opinions? Suggestions on work items that we're missing
to have a good and mostly automated release process?
Cheers
Andrea
-----------------------------------------------------
Ing. Andrea Aime
Senior Software Engineer
GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584962313
fax: +39 0584962313
http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf
-----------------------------------------------------