forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Turner <>
Subject Re: [wip] refactoring the build.
Date Thu, 22 Aug 2002 11:06:19 GMT
On Wed, Aug 21, 2002 at 05:23:21PM +0200, Marc Portier wrote:
> jep. the shell/bat distribution I propose should just be a
> wrapper to calling ant
> for those that don't want to know about it (inside their
> site-building project)
> Guess I'm targetting an odd species of users that
> 1. will install ant because we ask them to
> 2. then forget about it and only use the ?

I think you need to cultivate a sense of fear and loathing for scripts :) They
start out nice and simple, and turn into monstrosities like ant's when trying
to cater for MacOS, cygwin, etc.

> Jeff, I saw that, only my opinion is that there is 3(2+1)
> sections in current acorn.
> - targets for building site (html)  for a project that is using
> it
> - targets for creating a template project-content
> - targets for getting, building, updating, installing forrest in

That extra separation makes sense. At least, logically, dunno about

> > I'd vote for the bot stuff to be put in a separate
> > forrestbot.xml script. It's
> > still runtime, but it's asynchronous runtime (eg
> > cron-driven site updates) that
> > won't involve most users.
> yes and no
> bot is more about centralized/remote site building then it is about
> cron (the ant targets don't know they are called every say 2 hours) we
> offer this function as a convenience to our users.  It allows to handle
> more then 1 project in a sweep It allows to be ran for you by someone
> else (that has better connectvity, or a live point of presance for
> instance)


> (as I tried to explain in an earlier posting: this
> centralized/remote running of stuff in fact addresses
> cross-project metapattern: maving doing that?)

Not explicitly, though IIRC some plugins do offer remote deployment, and
Maven's reactor lets you run targets in multiple projects, taking into account
inter-project dependencies.

> My separation over 3 build files reflect the lifetime of forrest
> on the users hard-disk
> - get it, use the following one to build,
> install it.
> - build.xml: build the distribution of your choice
> - use it for the many things forrest can do
> for you
>    - create empty xdocs structure and files for fresh project
> (this you will like to call from sh-bat)
>    - generate your doco-site (some of us will like to call from
> ant rather)
>    - run in remote mode (mostly called by means of sh-bat if you
> ask me)

All sounds good. Let's take a bet on this shell/bat thing ;)

> > > (I'ld like these targets to work eventually on the siteplan
> > > idea?)
> maven would have no problem with passing a path to a config file
> we need, right?


> To be really honest: down the looooong line: I would rather get
> rid of the bot all-together: ant or maven/centipede should do
> this.

Well part of Jason's World Domination plan includes adding 'continuous
integration' facilities to Maven, to do Gump-like things like nightly builds,
and I guess, site updates.

> yep got that... but I defined 'dropping the acorn' as installing
> forrest in FORREST_HOME :-)

Nono.. acorns you drop into *new* projects, where they then grow into new

I hereby rename 'acorn' to 'acorrn' :)

No that's too lame, I take it back.

> > 2) Runtime parts of Forrest. Something that, given a
> > pointer to 1) and a bunch
> why a pointer to 1)? which 1)? (the build.xml or the
> distribution?)

The distribution. Ie, it needs ${forrest.home} defined.

> - this should not be referring/needing the original build file
> any more
> - this 'runtime-parts of forrest' == 'the distribution'
> (if you meant the latter, I agree to the fact that it needs a
> pointer to itself :-))

I thought that the script might need to be in the project's directory, not
Forrest's. That's because in Ant, there is no equivalent of $PWD. 'basedir' is
of no use. If that can be worked around, great.

> >    of xdocs, generates a website. The runtime part
> > should IMHO be an Ant
> >    script, say, called 'forrest.xml'.
> I opted for, it says more about what the file
> is for, where it relates to (ant in fact)

But it doesn't "build forrest" :) It runs forrest. And double dots confuse
certain braindead OSs..

> > 3) Acorn stuff for 'seeding' new projects.
> >
> and here we still have some differing ideas:
> 'seeding new projects' should be included in the runtime
> functionality, no?

Yes I guess it should.

> > distribution? I'd really rather not include Ant, since
> same opinion here.
> require ant: yes
> include ant: no


> -marc=
> PS: I'll check-in before going off-line, will be tomorow before I
> can add more. I suggest to comment/agree on the structure and
> then talk about deviding the work maybe? I guess this is not
> blocking you?

So far acorn.xml is doing okay as the Forrest plugin backend. I'll migrate to as soon as it's functional.


Hell is a state of mind. And every state of mind, left to itself,
every shutting up of the creature within the dungeon of it's own
mind -- is, in the end, Hell.
  C.S. Lewis, _The Great Divorce_

View raw message