On Fri, Feb 01, 2002 at 10:15:08PM -0500, Sam Ruby wrote:
> Scott Sanders wrote:
> >
> > In order to try to revive Alexandria (which I believe is a truly
> > excellent idea), I have started a new proposal that will merge all of
> > Gump/AntGump/Alexandria's functionality into one large, ambitious
> > proposal named Vindico.  This proposal intends to replace Alexandria,
> > ala the Rules for Revolutionaries.
> 
> Cool!

Thanks.  I try. :)
> 
> > Vindico uses Ant ala AntGump to build the list of projects using the
> > descriptor format that Gump uses currently, with just some really minor
> > modifications.
> 
> First, what are the modifications?  My thinking is that the current Gump is
> modified to accept (perhaps with ignoring significant bits) the updated
> format, transitioning will be easier...

Modifications you can see on my commit of the xml-commons.xml project file.  Basically 
just made a cvs project and made the two other projects depend on it.  Currently, 
Vindico can only handle things at the project level, and I would like to keep it that 
way if possible to be able to just refresh a certain build, cvs and all.

No DTD level modifications have been made yet ;-)

Modifications to the DTD that I would like to make would be to have a <source/> 
element ala the JavaDoc element so that Vindico can go an HTMLify the source code...  
Things like that.  I am trying to stay as compatible with the Gump format as 
possible...

> 
> Don't misunderstand the next question... I  love Ant.  But why is the
> proposal based on Ant.  Again, don't get me wrong, I love Ant.
>

Sure.  Fair question.  

1) I personally don't like the Bash/Win thing that Gump does right now.  If I were to 
do something like this that did not use Ant or the shell, I would be building 
something just like Ant, with less functionality and less of a committer base for 
improvement.  The combination of Ant and Java is the cross-platform posion pill that I 
am willing to swallow. 

and 2) if my python skill were better (read more productive), this would be 
ALL-Python!  But my skills aren't there, so I use Java instead.  Which leads me to Ant 
to get the system interaction that I so desire.

and 3) I should be able to break pieces out to just be Ant tasks that anyone can use, 
regardless of whether they use Vindico or not. Like Alexandria's existing BlameLog.

and 4) I want to expirement with the possibilities of a pre-ant tool, like the 
configure -> make toolchain.  Maybe these ant build scripts can get even easier.  I 
know they can in the Commons.
 
> > Want to jump in and help.  Let me know.  Currently Vindico just spits
> > out a *lot* of log files which need to be massaged to some sort of
> > usable format (HTML).  There are also a lot of FIXME comments in the
> > code.  So dig right in, I am happy to have the help.
> 
> Care to give an overview of what works and how?  Starting with a bootstrap?
>

Just do a cvs checkout, jump to proposals/vindico and type 'ant run'.  
The only thing required on your machine is a properly installed JRE/JDK and a properly 
installed Ant.

The build script compiles Vindico, then kicks it off with the vindico ant task.

Vindico then uses Digester to load the workspace, which is defined by the ant property 
vindico.build.profile.
This is just a Gump workspace definition, and the default is vindico.xml.

Digester then recursivley loads profiles, projects, repositories, etc.

The Workspace object then starts spewing ant build files.  A master to call all the 
single projects, and each single project gets a build file with the necessary cvs and 
script/ant definitions.

The basic path is:

Get from CVS to a 'pristine' directory (checkout if new, update if already existing)
Copy cvs files to the build directory and invoke the build.
The build does it thing, meanwhile everything was logged to xml files that can then be 
styled anyway we want, ala Gump.
Then we start the fun things like javadoc, hyperlinked source, etc...

I intend to run ant in debug mode using an XMLListener, so that EVERYTHING is in XML, 
so XSLT or Anakia can transform it.

then the fun stuff.  Do stuff like JXR using JavaML to create browsable hyper-linked 
source code, JavaDoc that lists what projects use what class, pretty graphical 
dependency graphs using something like Graphotron (sp?), and code audits and metrics 
from the output of the JavaML xml files.  Maybe even source code beautification 
according to the Elements of Style.  BlameLogs to help Gump pick who is responsible. 

And that is just what I have thought of so far.  But it is a *lot* of work, so I need 
a *lot* of help, that is why I am querying the list for help.  Vindico runs right now, 
but only does the basic cvs get and build scenario.  I am going to keep building, and 
then we can see where we might end up doewn the road...

I want to also have the object model support multiple types of repositories, and 
hopefully keep some statistics on build information (who broke the build when, how 
long was it broken, etc.).

Was that good enough for a start?
 
> - Sam Ruby
-- 
Scott Sanders - [EMAIL PROTECTED]

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

Reply via email to