Re: heresy - a controversial or unorthodox opinion or doctrine
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
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
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
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
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
> 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
> 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
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
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]