Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-13 Thread Stefan Bodewig
On Mon, 12 Jul 2004, Stephen McConnell <[EMAIL PROTECTED]> wrote:

> So basically I agree - Magic is exposing a potential for abuse but
> at the same time it is very questionable why someone would invest
> time into setup and usage of magic with that in mind - ant's 
> would be a much quicker solution.

I'm not so much concerned about abuse.  I may be using a plain
 task with no bad intention and point to my checked in JavaCC
2.x using the task - still Gump would love to replace it with its
version of JavaCC.

>  

OK, I see.  This might solve the issue, but only if people intend to
support Gump.  Ideally Gump should work transparently.

Stefan

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



Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-12 Thread Stephen McConnell
Stefan Bodewig wrote:
On Sat, 10 Jul 2004, Adam R. B. Jack <[EMAIL PROTECTED]> wrote:

Nothing slightly heretic (unless you are talking about Ant religion
not Gump religion).

8-)
In my experience then Ant crew isn't as dogmatic as it gets colored
sometimes, we tend to embrace heretics.
Humor asside, the main issue I see is thar Magic uses Ant under the
covers.  Anybody using Magic in essence uses Ant.  AFAIU I can mix the
magic antlib with other Ant tasks freely.  If I do so without setting
build.sysclasspath "properly", those other tasks may end up using
"bad" classpaths.  But maybe I'm not understanding Magic completely.
Your assumptions are correct.  Magic is an antlib and anyone can 
customize build behavior by using pure ant directives.  On the 
other-hand, the only reason someone will be using magic is to control 
over version management.  So basically I agree - Magic is exposing a 
potential for abuse but at the same time it is very questionable why 
someone would invest time into setup and usage of magic with that in 
mind - ant's  would be a much quicker solution.

Magic users have two options when dealing with things like external 
tasks - they can include a reference to the jar in Magic's index.xml. 
The following example (taken from the Directory project) shows the usage 
of the antlr preprocessor as an external task:

  


  

  

  
The important line in the above is:

This is retrieving the location of the antlr from magic.  Normally Magic 
will return the path relative to the centralized index (i.e. 
antlr/jars/antlr-2.7.2.jar).  In the case of gump magic will ensure that 
the filename maps to the gump generated antlr.  Magic also includes a 
"plugin" notion that allows association of multiple jars with a set of 
task definitions that are loaded into a separate classloader at build time.

But the point remains - nothing is stopping someone from doing the 
following:

   
 
   
Clearly this circumvents the benefits provided by gump and also goes 
against the first principals of magic.

Hence our placeholder page:
  http://avalon.apache.org/central/tools/magic/spells/dark-arts.html
Nothing there yet but this is where we will be documenting bad practices 
in our valiant efforts to hold back evil.

Cheers, Steve.
--
|---|
| Magic by Merlin   |
| Production by Avalon  |
|   |
| http://avalon.apache.org  |
|---|
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-12 Thread Leo Simons
Adam R. B. Jack wrote:
4)
5) Document change to the model
- LSD
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-12 Thread Stefan Bodewig
On Sat, 10 Jul 2004, Adam R. B. Jack <[EMAIL PROTECTED]> wrote:

> Nothing slightly heretic (unless you are talking about Ant religion
> not Gump religion).

8-)

In my experience then Ant crew isn't as dogmatic as it gets colored
sometimes, we tend to embrace heretics.

Humor asside, the main issue I see is thar Magic uses Ant under the
covers.  Anybody using Magic in essence uses Ant.  AFAIU I can mix the
magic antlib with other Ant tasks freely.  If I do so without setting
build.sysclasspath "properly", those other tasks may end up using
"bad" classpaths.  But maybe I'm not understanding Magic completely.

Stefan

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



Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-10 Thread Stephen McConnell
Adam R. B. Jack wrote:
Well - maybe its not that bad ... but all the same - this is an early
warning .. I'm thinking about making a copy of AntBuilder
(gump/python/gump/builder/ant.py), renaming it to magic.py, making a
couple of small but significant changes, sorting out what actually does
the builder selection, updating it submitting a patch.  And all of this
with zero Python experience and no compiler.

Nothing slightly heretic (unless you are talking about Ant religion not Gump
religion). Magic is like Ant (based upon, I believe) but different, so you
approach seems totally correct given today's Gump codebase. The only (small
but significant) extras I can think off would be:
1) Add a 
2) Modify gump/model/project.py to create the self.magic member data, and
hasMagic(), getMagic() beaner methods, and clone that small section in
complete() (that constructs objects from XML) that constructs a Magic class
for a 
3) Update gump/build/builder to have a self.magic and then if
project.hasMagic() to call your gump/builder/magic.py.

If this sounds like heresy then please yell out now because as I see it
this is the next step in moving the magic gump equation forward.  If
anyone wants to shepherd me though the process I'll be very grateful.

We have ant.py and maven.py, so when not magic.py? Get a few more and we can
refactor these steps about to allow (1) auto-discovered/auto-loaded plugins
based upon the element name (2) element name to model/builder auto mappings.
A few more and we'll have enough experience for a reasonable plug-in
strategy. (For example, I think the CLASSPATH generation could move into the
builder, so we could have similar but non-Java such stuff).
BTW: What are the differences between Ant and Magic as far as Gump is
concerned?
A MagicBuilder would set specific system properties (gump date, probably 
a verbose flag, exclusion of build.sysclasspath) and modify the 
classpath to be ant, junit and magic.  Secondly, the semantics of gump 
 would be interpreted as a .

But in digging around I think this is step one of a two step process. 
In effect a MagicBuilder really only reduces the number of lines of gump 
information that needs to be read in - the real kicker will come from a 
magic module and the interaction between a magic module and a magic 
builder - but this is pure thinking ahead and I'm still dealing with the 
fact that someone has removed all of the braces from the source code!

:-)
Cheers, Steve.

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


--
|---|
| Magic by Merlin   |
| Production by Avalon  |
|   |
| http://avalon.apache.org  |
|---|
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-10 Thread Adam R. B. Jack
> The only (small
> but significant) extras I can think off would be:
>
[...]

4) A unit test suite (like gump/test/maven.py) for whatever you tweaks are.
Since we have home grown pyunit, one needs to edit gump/test/pyunit.py to
import the suite and add it to the runner. Once done you can run the tests
using a crude pattern match of the function names (e.g. *Magic).

http://wiki.apache.org/gump/GumpDevelopment#Testing

regards,

Adam


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



Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-10 Thread Adam R. B. Jack
> Well - maybe its not that bad ... but all the same - this is an early
> warning .. I'm thinking about making a copy of AntBuilder
> (gump/python/gump/builder/ant.py), renaming it to magic.py, making a
> couple of small but significant changes, sorting out what actually does
> the builder selection, updating it submitting a patch.  And all of this
> with zero Python experience and no compiler.

Nothing slightly heretic (unless you are talking about Ant religion not Gump
religion). Magic is like Ant (based upon, I believe) but different, so you
approach seems totally correct given today's Gump codebase. The only (small
but significant) extras I can think off would be:

1) Add a  If this sounds like heresy then please yell out now because as I see it
> this is the next step in moving the magic gump equation forward.  If
> anyone wants to shepherd me though the process I'll be very grateful.

We have ant.py and maven.py, so when not magic.py? Get a few more and we can
refactor these steps about to allow (1) auto-discovered/auto-loaded plugins
based upon the element name (2) element name to model/builder auto mappings.
A few more and we'll have enough experience for a reasonable plug-in
strategy. (For example, I think the CLASSPATH generation could move into the
builder, so we could have similar but non-Java such stuff).

BTW: What are the differences between Ant and Magic as far as Gump is
concerned?

regards

Adam


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



Re: heresy - a controversial or unorthodox opinion or doctrine

2004-07-10 Thread Antoine Levy-Lambert
Hi Steve,
you are not heretic. I also hat no experience, but made a submission of 
a Python sync task for Gump which was almost certainly improved by Adam,
but was working from the start. I think that general programming 
experience may be more imortant than experience with one specific 
language or tool.

Cheers,
Antoine
Stephen McConnell wrote:
Well - maybe its not that bad ... but all the same - this is an early 
warning .. I'm thinking about making a copy of AntBuilder 
(gump/python/gump/builder/ant.py), renaming it to magic.py, making a 
couple of small but significant changes, sorting out what actually 
does the builder selection, updating it submitting a patch.  And all 
of this with zero Python experience and no compiler.

If this sounds like heresy then please yell out now because as I see 
it this is the next step in moving the magic gump equation forward.  
If anyone wants to shepherd me though the process I'll be very grateful.

Cheers, Steve.
[1] http://dictionary.reference.com/search?r=2&q=heresy

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


heresy - a controversial or unorthodox opinion or doctrine

2004-07-10 Thread Stephen McConnell
Well - maybe its not that bad ... but all the same - this is an early 
warning .. I'm thinking about making a copy of AntBuilder 
(gump/python/gump/builder/ant.py), renaming it to magic.py, making a 
couple of small but significant changes, sorting out what actually does 
the builder selection, updating it submitting a patch.  And all of this 
with zero Python experience and no compiler.

If this sounds like heresy then please yell out now because as I see it 
this is the next step in moving the magic gump equation forward.  If 
anyone wants to shepherd me though the process I'll be very grateful.

Cheers, Steve.
[1] http://dictionary.reference.com/search?r=2&q=heresy
--
|---|
| Magic by Merlin   |
| Production by Avalon  |
|   |
| http://avalon.apache.org  |
|---|
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]