David Crossley wrote:
Ross Gardler wrote:
Ross Gardler wrote:
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)


...


I want to assist. Some initial questions ...

Cool. As you have seen my work on this has frozen due to other commitments. Should be getting back to it soon.

I see that you have Ivy module descriptors, e.g.
tools/ivy/repository/apache/xerces/ivy-2.5.0.xml

Are these descriptors something that the Forrest
project maintains, or do we copy them from somewhere
else and thus need to keep them synchronised? I want
to clean them up to be consistent w.r.t. license stuff
etc. but not if they will come from some other project.
It seems to me that it is better to keep our own descriptors.

The whole tools/ivy/repository section dir really go to an ivy community managed repo. The Ivy project has two, a scratchpad one where things may not be perfectly described in terms of their dependencies etc. and a main one where there are tight controls on what goes in there and so it should be complete and accurate (i.e. stable).

So, my intention is that whatever we end up with in our local repo will eventually be moved to the ivy scratchpad where the community can clean it up an eventually move it into the main ivy repo.

Why not do it straight into the ivy scratchpad? Because I want Forrest devs to see how the ivy files are put together so that there is a history in our archives for people to manage the scratchpad/main reop over in Ivy.

Why xerces-2.5.0 when we currently use xerces-2.8.0?

I can only guess when I did the Forrest2 ivy repo I started it off by pulling the latest available from a Maven repo. So I ended up with xerces-2.5.0. I've not yet done the one in Forrest trunk so not yet upgraded to 2.8.0.

Is your plan to move everything that we use out of lib/*
into this local tools/ivy/repository, then gradually
remove/tune stuff as we find them in other official repositories?

Yes, see above.

I gather that we can have Ivy descriptors in our local
repository, but no jars, and then point to other repositories
for the jars, e.g. maven repo.

We don't even need the descriptors. We just need the ivy.xml file in our trunk. This tells Ivy what Forrest depends on. It goes off to the defined repositories (defined in tools/ivy/ivyconf.xml) and finds the relevant ivy.xml files for that dependency. This identifies any jars that are required by that dependency, which allows Ivy to go looking for them, and so on.

So, we are aiming at only needing to maintain Forrests ivy.xml file here in Forrest.

----

Here's the process I'm using at present:

1. remove a jar from the lib directory

2. add a dependency to the forrest ivy.xml file

3. try resolving the dependencies* - since the jar is not in our local repo it will go to the ivy and maven repos - it's supposed to go to the Cocoon repos too, but I haven't got that working yet. I joined the ivy user list to ask for advice but have not got around to it yet

4. if it resolves OK commit the changes, and go back to 1

5. if it fails to resolve we need to manually inspect the ivy repo to look to see if it is available with a different organisation or jar name (I don't bother doing this in the maven repos though

6. if it doesn't exist in the ivy repos then add the jar and ivy.xml to our tools/ivy/repository

7. try resolving dependencies, it should now work, so go back to 1.

* Note that I am using an Eclipse plugin to resolve the dependencies for me. Since you want to help I will make it a priority to create an ANT task to resolve them for us - I should be able to do this later today (GMT)

Ross