On Mon, 21 Jul 2003, Martin Cooper wrote:

>
> Given that we have struts-legacy on its own release cycle, I think we need
> to decouple the struts-legacy build from the main Struts build. They were
> coupled shortly before the 1.1 final release, and that was a big pain when I
> was creating the release. I should be able to do 'ant clean dist' at the top
> level and point to an existing struts-legacy release, but I can't do that
> the way the builds are coupled right now.
>
> I could have just gone in and undone the coupling that was done (and I still
> could ;), but I'd like to understand why they are so tightly coupled before
> I do that. It seems not only unnecessary, but also highly undesirable,
> especially when struts-legacy is independently released.
>

Decoupling this would probably be nice, but I don't think we're done if we
just fix that.  I never thought I'd see a build environment more complex
than the one for Tomcat 4.1, but I think we've grown ourselves one :-(.

Isn't it time to start splitting chunks of this into inddependently
buildable subdirectories, and then create a top-level build.xml that only
does the appropriate things in the appropriate order?  An example might be
to create a "core" subdirectory for the things we think would go into
struts-core.jar (informally, it's probably what we have now minus the tag
libraries but that's a detail).  The directory structure might look like:

    core/
      build.xml                     Build for this chunk
      src/java/                     Java sources
      dist/                         Output directory for "dist" of this
      target/                       Output directory for "main" of this

and we can start splitting things up one chunk at a time.  The most
important concern is to minimize cross dependencies between the builds for
each subdirectory.  The next consideration is that they should all default
up to a developer's own "build.properties" in the top-level directory,
instead of having a "build.properties" for each subdirectory.

>From this line of thinking, packaging releases becomes a function of
grabbing the "dist" output from the relevant top-level directories like
"core/dist".  We could also dispense with "contrib" as an artificial
distinction, and just have all the individual components at the top level,
then decide what goes into a standard Struts release in each release plan.

It wouldn't bother me to break the overall build for a while in order to
get this sorted out -- IMHO it's pretty broken already :-).  But we might
also want to do a 1.2.0 first.  Comments?

> --
> Martin Cooper

Craig

(jdk.version=1.4 solved one problem, but I'm still struggling to tweak all
the individual build.properties files to work in my environment)

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

Reply via email to