Hi,
looking someone struggingling for the n-th time trying to
make a release makes me really wonder about the viability
of the current release process.
In short, imho, the process as-is can be carried on only by a core
developer, for the simple reason that running cite tests can
uncover issues, and those in turn can be fixed only by
someone that knows GS/GT well.
And oh, provided you manage to put togheter the necessary black
magic to make the cite tests to work.
I consider making GS releases a sort of art (and a test of anyone
patience).
Having CITE tests out of the release process would be a great
step in simplifying the process.
To do that we have to either give up the confirmation that we're
still CITE compliant, or we have to consider CITE as a daily
activity, something that runs automatically just as our normal
build.
Do you think it's possible to fully automate the process?
The bits needed are:
a) setting up databases: check, it's something that can be done,
give the build process a configuration of where the db is
and a script that can clean up and rebuild the db and
we're in business
b) starting up and shutting down GeoServer: check, the Start
utility class could be used as a starting point for something
that starts a GeoServer with a specific configuration,
and eventually shuts it down
c) starting up the CITE tests with a specific configuration:
uh, dunno... maybe? This is where I see various issues.
Issues with teamengine:
- to run as part of a maven build we'd need to package up
and put on repositories the engine and the test suite.
This is redistribution. Is that something we can do?
If we cannot, I guess we can still resort to some form
of private sharing, marking those jars as "provided"
and giving to a selected number of people the files along
with the instructions to install them in their maven
repositories.
- the teamengine already has command line utilities to start
a specific test suite, but I see no way to specify the
parameters, which are usually asked for in an interactive window.
I see no easy way to state the test parameters manually.
This looks like a roadblock
- Once the suite is run we need to collect the results and
declare victory or failure.
It's something that can be done by looking into the
logs, and seems a bit painful, but doable
If we can go past the above issues I believe we could
roll a set of maven modules, each designed to have
a specific set of dependencies (think about the need
to exclude WCS 1.1 in WCS 1.0 tests), each performing
a custom setup (db, files, whatever) and running
a specific test suite.
Basically a module to be built for each of the
CITE tests that we want to run.
And then imagine Hudson running that every single night.
Imagine also that you get a report of failures, and you
can run one of the above builds specifying the exact
test you want to re-run for debug purposes.
May not seem much, but to me, compared to what we have
today, feels like Nirvana.
Cheers
Andrea
--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.