It appears my CCLA is now recorded so I can start moving some stuff from
an internal project to Forrest.
Recently I've been mentioning IVY [1] for dependency management.
Others have mentioned Maven2 [2]. From the little discussion we have had
so far I get the feeling that we are happy to go with Ivy.
The advantages include:
- central repository (eventually, see below)
- dependencies need not be in SVN (eventually, see below)
- transitive dependency management (i.e. we say we need X, if X depends
on Y it will come automatically)
- conflict management between dependencies (easier upgrading of
dependencies)
- much easier integration testing. We can have different build
configurations for release, development and test, release using fully
tested jars, development using latest releases and/or milestones
- easier continuous integration testing
- full dependency reports (i.e. better developer docs)
The disadvantage is that, as far as I am aware, no developers here other
than myself know ivy (and I'm still learning). However, Ivy docs are
great [2]
Here is my plan:
1 - I create a Forrest only repo in SVN (as I have started for
Forrest2). although wherever possible we will use the IVY repo and the
Maven2 repo
2 - I modify our build files to use IVY (I have a whole set of generic
build files that are intended to be extended by project specific build
files. I plan to give them to the IVY folk if they think it they are a
good idea, if not we'll take what we need from them)
3 - We make sure it works
4 - We move the entries in our repo to the IVY repo (I need to enter
into a dialogue with IVY devs to see what is happening with regards an
official Apache repo)
The end result will be a build system that uses three repos:
The forrest one for any jars we have customised but are not yet
available in the main project releases (i.e. we have something in the
patch queue)
The official IVY repo (whatever that turns out to be)
The official ASF Maven repo
So, any questions? Objections?
If nobody raises an objection in the next seven days (I'm busy until
then) then I'll go ahead. Otherwise we can discuss and I'll call a vote
if necessary next week.
Ross
Ross
[1] http://incubator.apache.org/ivy/
[2] http://maven.apache.org/
[3] http://incubator.apache.org/ivy/doc.html