I also had the same thoughts during the initial timeframe when I was setting up the Maven config.

I think we should stay away from getting too complex with config inheritance.

I was thinking about this the other day, and what we might want do is move to a completely independent maven configuration for all subprojects. We will still share the build/ dir via svn:externals for common stuff like license and CheckStyle config, but each subproject will be a complete configuration itself (no <extends>).

By doing it this way, we can create a new project.xml and maven.xml in current/ which is actually the "normal" way of doing it. This also puts the subprojects in a position to go ahead and do releases independent of other subprojects. We need to further discuss how we handle this with respect to how Maven deals with dependencies. Specifically, someone will need to maintain a chart of compatibility issues for all projects under Struts. This will be the only way to keep "what version of core works with what version of taglibs or el or foo" type questions from making this split even worth the effort. As it is now, the same issue (sort of) applies across the commons dependencies. Things can get very complicated, very fast.

In addition to the above, it will be easier for me to fix the problems with the nightly build that come up every time anything is changed or released. Currently the release targets are hardcoded in my cron script (because of the way the files have to be named for the cleanup cron to work properly) and I'd like to remove that inefficiency.

I'll be making some changes a little later today and more this week (as free time allows).

With all hope, we can simplify this whole process and get it moved over to our zone and stop relying on our personal machines and (my) sometimes flaky network connection.

(Wendy, just got your other email, I'll look into doing that when things settle down a bit)


--
James Mitchell
Software Engineer / Open Source Evangelist
Consulting / Mentoring / Freelance
EdgeTech, Inc.
http://www.edgetechservices.net/
678.910.8017
AIM:   jmitchtx
MSN:   [EMAIL PROTECTED]
Skype: jmitchtx

----- Original Message ----- From: "Wendy Smoak" <[EMAIL PROTECTED]>
To: "Struts Developers List" <dev@struts.apache.org>
Sent: Sunday, August 14, 2005 8:27 AM
Subject: Common build file issues (was Re: struts-faces won't compile)


Wendy wrote:
But there are things in the common build file that are *not*
common to all subprojects.

We needs a way to make sure that core/taglib/el/apps/plugins are all using
the same versions of  their dependencies, without imposing those
dependencies on 'standalone' subprojects.

How about:

/current/build/project.xml
... has the list of committers, reports, etc.  Only things that are common
to *all* sub-projects

/current/build/project-core.xml
... <extend>project.xml</extend>
... has the list of dependencies for struts-core

Then each subproject chooses which build file to extend.

- core, taglib, el, struts-tiles, apps, plugins can all extend
build/project-core.xml in order to keep their dependencies on [mostly]
commons libraries in sync. Even if the subproject doesn't necessarily need
one of the dependencies that struts-core does, you can't use these
subprojects without core, so you end up needing that dependency anyway.
Subprojects can add additional dependencies, but can't remove the ones they
inherit from core.

- Faces, Standalone Tiles, etc., can extend from the generic 'project.xml'
to pick up the list of committers, reports, etc., but are responsible for
their own dependencies.

--
Wendy



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to