You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by James Duncan Davidson <du...@x180.com> on 2000/11/14 01:33:00 UTC

Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

I'm going to start this mail with the admission that I've been in and out of
this list too much over the past year. Ant started out as an idea on an
airplane that got refactored a few times before coming to Apache. It
actually was open sourced just a tad too early imho and could have dealt
with a bit more rigor. Unfortunately, I haven't made the time that I've
wanted to deal with Ant to this point and instead have been concentrating on
internal matters at Sun wrt open source and XML specs. Some of you who know
me personally know about the ins and outs of this. For everyone else,
suffice it to say that I've been overloaded and distracted. Much gratitude
is owed on my part to Stefan and Sam and Conor and all of you for continuing
on just like Open Source should.

However times they change. My involvement in this project is going to change
substantially over the next few months. Yes, I've tried to do this before
and failed. However, this time *will* be different. There are lot of reasons
for this, some official and some very personal, but primary to this is that
Ant is getting the attention I always wanted it to get (and never imagined
to see) and I feel an obligation and a desire to see it through to the next
level. I've had conversations with some of you about this -- most notably
Stefan while in London. Also, as I was giving my keynote at ApacheCon
London, I was thinking to myself how amazing it was that Ant is now getting
*so* much attention and that it was one of the real gems of The Jakarta
Project. I also think it's clear that we need one more incompatible change
-- an Ant 2.0 -- to take us to that next level. And, I've got more than a
few ideas of how to get there. I've been itching to get them out, but it
always seems that there is one thing or another blocking my time to do so.

I've also been contacted by a major publisher that wants to do a book on Ant
-- I'm not at liberty to discuss what publisher or schedules or anything as
there isn't a contract yet, but suffice it to say that it would be a
definitive definition of Ant and how to use it from a major respected
publisher in the industry. This is an opportunity that I am most likely
going to pursue, and it -- in combination with working towards an Ant 2.0 --
is now making ant number 1 on my priority list. And yes, I'd even consider
taking a leave of absence from my employer to do this -- I think that it's
that important to me.

Ok, so enough of the personal story -- here's where it affects this group.

I'm in the process of writing up a proposal and playing with some source
code thoughts for "AntEater -- a Proposal for Ant Core 2.0". This is a
proposal for the core of Ant, and should be a solid base for a GUI and other
things -- but I'm not going to enter into GUI land with this as there are
better qualified people here for that if AntEater does get accepted. My
intention is that the problems that the GUI folks have already seen are
rectified.

I'm doing this as "AntEater" as I want to play by the rules that I set down
in the "Rules for Revolutionaries" document some time back in Tomcat-land.
Even though I think that I've got the ideas and design to take Ant to 2.0,
by no means do I think that they are the only way to get there -- and that
they should trump everyone else's ideas. I'm not so arrogant to say that
since I wrote ant, I control it's future and what should be called "version
2.0"-- that's not true -- it's the group of committers here that controls
the future of ant.

So, I'm pulling together my proposal and code base. And I'd be ready to
release it to you in about a week's time -- except for the fact that I'll be
out of touch of telephones and the internet from 11/18 through 12/2. Given
that I won't be ready before this happens -- and I want to be present to
have a dialog about my proposal -- I'll be making it public to this group on
Monday 12/4. 

I considered not saying anything about this until I get back into radio
range -- however, given that there are other discussions about refactoring
the internal data structures and what should go into a next generation Ant
-- I wanted to make my intentions, and plan for those intentions, clear. It
seems like the fair and right thing to do in this case.

So, when I get back, I'll be making my proposal and I hope that you all will
consider it as a future direction for Ant. To be clear, if you guys reject
it, then we *will* play by the rules of the Jakarta Project and I'll keep
pestering you about it, and will work with others on their ideas as well,
until we do get to a real, solid, stable Ant 2.0.

A rough overview of my thoughts that will be in AntEater -- Lots and lots
more detail will be present in my 12/4 drop:

    Solidification of the Project/Target/Task hierarchy. This is the core
    of Ant's model and it should be explicitly locked.

    A strict definition of the internal object model to enable scripting
    and GUIs for execution and editing. This object model is a reflection
    of the build.xml file -- and should be the object model used by
    the GUI and scripts directly. We shouldn't have multiple object models
    in place.

    A clear definition of how scripting (external or inline CDATA)
    can be used with Ant through the Task interface -- keeping scripting
    clearly separate and yet making Ant infinitely malleable to scripts.

    A clear extension mechanism that makes sense on whatever platform
    Ant is run on. For example, on unix Ant should look in ~/.ant/tasks:
    /usr/local/ant/tasks:$INSTALL_DIR/optionaltasks. On MacOS X, it should
    look in places like ~/Library/Ant or some such. On Windows 2K, it should
    look in \Users\username\etc...

    A clear mechanism for providing tasks as source code and compiling them
    on demand into tasks that can be used with the current project.

    Framework for execution in several modes -- single shot, repeated, and
    gui activated.

    Ant.app mechanics so that Ant is distributed in a way that makes since
    on my new favorite platform of Mac OS X.

    An optional servlet layer which can access build files and would allow
    execution of build tasks remotely. This is targeted squarely at setting
    up build and test farms on a multitude of environments.

So -- that's my thoughts on AntEater as of right now. I do apologize in
advance that I'm saying this much now, and then going to wait until 12/4 to
give the full proposal. However, I'm sure that you will understand that I
*don't* want to release a proposal, go away for 2 weeks, and then get back
to a bunch of discussion that went nowhere because I wasn't there. And, I
have to restate that I didn't think it was fair to sit on this while
discussions continue about similar subjects on the mailing list. By no means
should those discussions end. But I thought everyone should know my plans.
It seems fair at least.

Comments?

-- 
James Duncan Davidson                                        duncan@x180.com
                                                                  !try; do()


Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by James Duncan Davidson <du...@x180.com>.
On 11/13/00 4:55 PM, "Ken Wood" <kw...@i2.com> wrote:

> I think you have expressed a high level of
> fair play, open-mindedness, and concern for
> the efforts of others on this list. Congratulations!

Thanks.. :) Like I said, I think I've got something to contribute for Ant
2.0, but as the guy who pulled together the Rules for Revolutionaries post
from the ideas that so many had on the Tomcat list, I would be criminal for
me not to play by those rules and be willing to abide by them.

> Now, will you pick the next President?

He he he.... No. Not even going to touch that one.. :)

-- 
James Duncan Davidson                                        duncan@x180.com
                                                                  !try; do()


Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Ken Wood <kw...@i2.com>.
I think you have expressed a high level of
fair play, open-mindedness, and concern for
the efforts of others on this list. Congratulations!

Now, will you pick the next President?

Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by James Duncan Davidson <du...@x180.net>.
On 11/15/00 12:20 AM, "Stefan Bodewig" <bo...@bost.de> wrote:

>> I don't want to go coding on my own and hiding like a recluse. I'd
>> prefer that people didn't think that as it's not true.
> 
> Didn't mean to sound like that either, sorry.

OK. I actually can't wait to get back... :)

> Thanks, actually I had pointed people to the thread just a few days
> ago. Did you ever get a "Revolutionaries Handbook" ready?

Argh. No. It's on my todo list -- but AntEater comes way before it right now
:)

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Stefan Bodewig <bo...@bost.de>.
James Duncan Davidson <du...@x180.com> wrote:

> On 11/14/00 1:17 AM, "Stefan Bodewig" <bo...@bost.de> wrote:
> 
>>I understand that you want to go coding on your own and not let us
>>lurk prematurely to make sure things are moving forward - as opposed
>>to being discussed over and over again.
> 
> I don't want to go coding on my own and hiding like a recluse. I'd
> prefer that people didn't think that as it's not true.

Didn't mean to sound like that either, sorry.

>> You probably have to be a little careful with the term revolution,
>> as you can't expect that everybody here is familiar with the thread
>> on general@jakarta dating back to January.
> 
> I've dug the message out of archives and will be forwarding it here
> in a minute or two.

Thanks, actually I had pointed people to the thread just a few days
ago. Did you ever get a "Revolutionaries Handbook" ready?

Stefan

Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by James Duncan Davidson <du...@x180.com>.
On 11/14/00 1:17 AM, "Stefan Bodewig" <bo...@bost.de> wrote:

> Well, basically we all seem to agree on the big picture of Ant 2.0 -
> we also seem to agree that Ant2 might need to break with backwards
> compatibility but provide a solid and stable basis for the future. I
> understand that you want to go coding on your own and not let us lurk
> prematurely to make sure things are moving forward - as opposed to
> being discussed over and over again.

I don't want to go coding on my own and hiding like a recluse. I'd prefer
that people didn't think that as it's not true. I'd be ready to have a
complete proposal sometime next week. However, telephones where I'll be will
have an $8/minute price tag associated with them -- and will be so noisy
that a modem *might* be able to eek out 1200 baud with latencies longer than
melting ice. At least that is what I've been told. If it works out
differently, then I'll be quicker about it.

> You probably have to be a little careful with the term revolution, as
> you can't expect that everybody here is familiar with the thread on
> general@jakarta dating back to January. Revolution always has the
> connotation of replacing something old and bad, probably killing a few
> people from the old system (and usually of eating its own
> children). *I* know this is not the context you intend to use it in,
> so I have no problem with the term here.

I've dug the message out of archives and will be forwarding it here in a
minute or two.

>>     An optional servlet layer which can access build files and would
>>     allow execution of build tasks remotely. This is targeted
>>     squarely at setting up build and test farms on a multitude of
>>     environments.
> 
> I think this is just a special implementation of
> 
>>     Framework for execution in several modes -- single shot,
>>     repeated, and gui activated.

True enough -- just with emphasis. :)

-- 
James Duncan Davidson                                        duncan@x180.com
                                                                  !try; do()


Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Stefan Bodewig <bo...@bost.de>.
James Duncan Davidson <du...@x180.com> wrote:

> However times they change. My involvement in this project is going
> to change substantially over the next few months. Yes, I've tried to
> do this before and failed. However, this time *will* be
> different.

Good to hear that.

> I'm in the process of writing up a proposal and playing with some
> source code thoughts for "AntEater -- a Proposal for Ant Core
> 2.0".

Well, basically we all seem to agree on the big picture of Ant 2.0 -
we also seem to agree that Ant2 might need to break with backwards
compatibility but provide a solid and stable basis for the future. I
understand that you want to go coding on your own and not let us lurk
prematurely to make sure things are moving forward - as opposed to
being discussed over and over again.

You probably have to be a little careful with the term revolution, as
you can't expect that everybody here is familiar with the thread on
general@jakarta dating back to January. Revolution always has the
connotation of replacing something old and bad, probably killing a few
people from the old system (and usually of eating its own
children). *I* know this is not the context you intend to use it in,
so I have no problem with the term here.

>     An optional servlet layer which can access build files and would
>     allow execution of build tasks remotely. This is targeted
>     squarely at setting up build and test farms on a multitude of
>     environments.

I think this is just a special implementation of

>     Framework for execution in several modes -- single shot,
>     repeated, and gui activated.

Other options like incremental mode or the continuous integration as
described in
<http://www.martinfowler.com/articles/continuousIntegration.html>
where a change in the repository triggers a rebuild/-test process
spring to mind.

Now I'm going back to my evolutionary mode and wait until I can get a
clear picture of *how* you want to do things (the *what* seems to be
more or less agreed upon anyway).

Stefan

Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by James Duncan Davidson <du...@x180.net>.
On 11/14/00 9:37 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:

> I haven't used XSL much but I thought the idea was good and something we
> should try to provide with any Ant release that breaks compatibility. Of
> course, it wouldn't have to be XSL based, but the concept is good, IMHO.

The concept is very good - I'm all for some sort of tool to help people
migrate -- once we know what they are migrating to.. :)

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


RE: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Erik <em...@geekfarm.org>.
> -----Original Message-----
> From: Conor MacNeill [mailto:conor@ebinteractive.com.au]
> Sent: Tuesday, November 14, 2000 9:37 PM
> To: ant-dev@jakarta.apache.org
> Subject: RE: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)
>
>
> > -----Original Message-----
> > From: James Duncan Davidson [mailto:duncan@x180.com]
> > Sent: Tuesday, 14 November 2000 19:40
> > To: ant-dev@jakarta.apache.org
> > Subject: Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)
> >
> >
> > On 11/13/00 9:21 PM, "Erik" <em...@geekfarm.org> wrote:
> >
> > > Will Ant 2.0 break backwards compatibility?
> >
> > With AntEater compatibility with existing build files will most likely
> > break. I'd like not to, but my aim is to have a solid base from which to
> > have a few years worth of stability in that department with as clean a
> > feature set as possible.
> >
> > So, if AntEater is accepted as Ant 2.0, then I think that the
> > likelihood of
> > breaking compatibility is high for 2.0.
> >
>
> I saw that someone posted an XSL stylesheet to convert ant 1.1
> files to ant
> 1.2 files. This was on the tomcat-dev list.
>
> http://marc.theaimsgroup.com/?l=tomcat-dev&m=97404851902786&w=2
>
> I haven't used XSL much but I thought the idea was good and something we
> should try to provide with any Ant release that breaks compatibility. Of
> course, it wouldn't have to be XSL based, but the concept is good, IMHO.
>
> Conor

Ya, I would think we would be nice if someone does something like that, I
hate it when software companies abandon their users.

Erik




RE: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Conor MacNeill <co...@ebinteractive.com.au>.
> -----Original Message-----
> From: James Duncan Davidson [mailto:duncan@x180.com]
> Sent: Tuesday, 14 November 2000 19:40
> To: ant-dev@jakarta.apache.org
> Subject: Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)
>
>
> On 11/13/00 9:21 PM, "Erik" <em...@geekfarm.org> wrote:
>
> > Will Ant 2.0 break backwards compatibility?
>
> With AntEater compatibility with existing build files will most likely
> break. I'd like not to, but my aim is to have a solid base from which to
> have a few years worth of stability in that department with as clean a
> feature set as possible.
>
> So, if AntEater is accepted as Ant 2.0, then I think that the
> likelihood of
> breaking compatibility is high for 2.0.
>

I saw that someone posted an XSL stylesheet to convert ant 1.1 files to ant
1.2 files. This was on the tomcat-dev list.

http://marc.theaimsgroup.com/?l=tomcat-dev&m=97404851902786&w=2

I haven't used XSL much but I thought the idea was good and something we
should try to provide with any Ant release that breaks compatibility. Of
course, it wouldn't have to be XSL based, but the concept is good, IMHO.

Conor


Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by James Duncan Davidson <du...@x180.com>.
On 11/13/00 9:21 PM, "Erik" <em...@geekfarm.org> wrote:

> Will Ant 2.0 break backwards compatibility?

With AntEater compatibility with existing build files will most likely
break. I'd like not to, but my aim is to have a solid base from which to
have a few years worth of stability in that department with as clean a
feature set as possible.

So, if AntEater is accepted as Ant 2.0, then I think that the likelihood of
breaking compatibility is high for 2.0.

-- 
James Duncan Davidson                                        duncan@x180.com
                                                                  !try; do()


RE: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Erik <em...@geekfarm.org>.
> -----Original Message-----
> From: Peter Donald [mailto:donaldp@apache.org]
> Sent: Monday, November 13, 2000 6:25 PM
> To: ant-dev@jakarta.apache.org
> Subject: RE: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)
>
>
> At 01:01  14/11/00 +1100, you wrote:
> >Duncan,
> >
> >Whilst I am happy to have an ant revolution, I wonder whether we
> need it. If
> >we all agree on a direction with regard to ant 2.0's objectives,
> we can move
> >forward without a revolution. I'm not saying that we wouldn't want some
> >revolutionary code and architecture changes and perhaps some unusual
> >instability in ant.
> >
> >If I look at the revolution in Tomcat, I can see that it is
> still a source
> >of much tension in the tomcat-dev list. A revolution provides an
> opportunity
> >to split the community. We should only have that if it is really
> necessary.
> >If we have a revolution and everyone moves over to work on it,
> then why have
> >a revolution :-) ? If we have disagreement then yes, a revolution may be
> >required.  Perhaps we should wait to see whether these is such
> disagreement.
> >>From the list you posted, I feel there will be broad agreement.
> >
> >What do you think?
>
> I think that the reasons for revolution would mainly be because it will be
> breaking backwards compatability which is a PITA but necessary
> IMHO. As the
> the architecture will change significantly then it is unreasonable to
> expect end users to use ant with it constatly changing.
>
> Cheers,
>
> Pete

Duncan,

Will Ant 2.0 break backwards compatibility?

Erik


RE: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Peter Donald <do...@apache.org>.
At 01:01  14/11/00 +1100, you wrote:
>Duncan,
>
>Whilst I am happy to have an ant revolution, I wonder whether we need it. If
>we all agree on a direction with regard to ant 2.0's objectives, we can move
>forward without a revolution. I'm not saying that we wouldn't want some
>revolutionary code and architecture changes and perhaps some unusual
>instability in ant.
>
>If I look at the revolution in Tomcat, I can see that it is still a source
>of much tension in the tomcat-dev list. A revolution provides an opportunity
>to split the community. We should only have that if it is really necessary.
>If we have a revolution and everyone moves over to work on it, then why have
>a revolution :-) ? If we have disagreement then yes, a revolution may be
>required.  Perhaps we should wait to see whether these is such disagreement.
>>From the list you posted, I feel there will be broad agreement.
>
>What do you think?

I think that the reasons for revolution would mainly be because it will be
breaking backwards compatability which is a PITA but necessary IMHO. As the
the architecture will change significantly then it is unreasonable to
expect end users to use ant with it constatly changing.

Cheers,

Pete

*------------------------------------------------------*
| "Nearly all men can stand adversity, but if you want |
| to test a man's character, give him power."          |
|       -Abraham Lincoln                               |
*------------------------------------------------------*

Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by James Duncan Davidson <du...@x180.com>.
On 11/13/00 6:01 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:

> If I look at the revolution in Tomcat, I can see that it is still a source
> of much tension in the tomcat-dev list. A revolution provides an opportunity
> to split the community. We should only have that if it is really necessary.
> If we have a revolution and everyone moves over to work on it, then why have
> a revolution :-) ? If we have disagreement then yes, a revolution may be
> required.  Perhaps we should wait to see whether these is such disagreement.
> From the list you posted, I feel there will be broad agreement.
> 
> What do you think?

What I hope is that when I post a full proposal + source code ideas on 12/4
-- that there will be broad agreement and that everyone will be happy and
that we'll all go and have pizza and beer after. :) And then we'll just have
discussions about all the little nits that may be there. If this happens,
then it really isn't a Revolution (or maybe it's just a "velvet revolution"
like they had in Prague). It's just a process by which I made a proposal.

And if it works out this way, and AntEater is ratified as the
codebase/direction for Ant 2.0, then there will be no need to even mention
the word revolution (or even the word "AntEater" unless we use that for
something else) again.

However, I want to be clear that this is a break and I want to abide by the
process in which such breaks are to be made. Maybe revolution is too strong
a word. Maybe it's just a proposal and we'll see what happens. :)

.duncan

-- 
James Duncan Davidson                                        duncan@x180.com
                                                                  !try; do()


RE: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Conor MacNeill <co...@ebinteractive.com.au>.
Duncan,

Whilst I am happy to have an ant revolution, I wonder whether we need it. If
we all agree on a direction with regard to ant 2.0's objectives, we can move
forward without a revolution. I'm not saying that we wouldn't want some
revolutionary code and architecture changes and perhaps some unusual
instability in ant.

If I look at the revolution in Tomcat, I can see that it is still a source
of much tension in the tomcat-dev list. A revolution provides an opportunity
to split the community. We should only have that if it is really necessary.
If we have a revolution and everyone moves over to work on it, then why have
a revolution :-) ? If we have disagreement then yes, a revolution may be
required.  Perhaps we should wait to see whether these is such disagreement.

Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by James Duncan Davidson <du...@x180.com>.
On 11/13/00 4:48 PM, "Barrie Treloar" <Ba...@camtech.com.au> wrote:

> +1 for a revolution.
> 
> Simeon is going to need this to get a gui working and it can't be done
> easily be done the main branch.

Cool. I can see exactly where the issues are there... It's all a fallout
from originally using DOM as the internal data representation instead of
something more "native". Definitely time to fix. :)

-- 
James Duncan Davidson                                        duncan@x180.com
                                                                  !try; do()


Re: Proposed Revolution: AntEater (a proposal for Ant Core 2.0)

Posted by Barrie Treloar <Ba...@camtech.com.au>.
On Mon, 13 Nov 2000, James Duncan Davidson wrote:

> I'm doing this as "AntEater" as I want to play by the rules that I set down
> in the "Rules for Revolutionaries" document some time back in Tomcat-land.
> Even though I think that I've got the ideas and design to take Ant to 2.0,
> by no means do I think that they are the only way to get there -- and that
> they should trump everyone else's ideas. I'm not so arrogant to say that
> since I wrote ant, I control it's future and what should be called "version
> 2.0"-- that's not true -- it's the group of committers here that controls
> the future of ant.

+1 for a revolution.

Simeon is going to need this to get a gui working and it can't be done
easily be done the main branch.

Barrie
--
Barrie Treloar
____________________________________________________________________

  Barrie Treloar                      Phone: +61 8 8303 3300
  Senior Analyst/Programmer           Fax:   +61 8 8303 4403 
  Electronic Commerce Division        Email: barrie@camtech.com.au
  Camtech (SA) Pty Ltd                http://www.camtech.com.au
 --- Level 8, 10 Pulteney Street, Adelaide SA 5000, Australia. ---
____________________________________________________________________