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