D
Danno
I just want to know you're experience. Do you use both ant and
scripting? Pure script builds? Do you use Groovy or Ruby?
scripting? Pure script builds? Do you use Groovy or Ruby?
Danno said:Has anyone here ditched ant in favor of scripting for builds?
Do you use both ant and scripting?
Danno said:I just want to know you're experience. Do you use both ant and
scripting? Pure script builds? Do you use Groovy or Ruby?
I have build problems like you wouldn't believe. My full-time job title
is "Build Manager", so you can imagine how big a problem it has to be
to grow and keep a full-time role involved in it.
[...]
In fact my developers _don't_ use the Internal build. They tend to use
Eclipse and let Eclipse handle things its own way. This sucks when they
then hand over a completed project with its unused and ignored
buildfile in tatters. If another one does it at 5pm after telling the
customer "it's ready now", then there'll be blood on the carpet 8-(
Gordon Beaton said:When did these become equivalent?
Gordon said:When did these become equivalent?
Simon said:Make is a scripting language interpreter in itself,
and uses conventional
shell scripting languages as the basis both for its macros
and for its
actions.
Simon said:Make is a scripting language interpreter in itself,
Andy said:Hmmm... Two quite different questions there, but they're damn good
ones.
I have build problems like you wouldn't believe. My full-time job title
is "Build Manager", so you can imagine how big a problem it has to be
to grow and keep a full-time role involved in it.
Currently we're using both Ant and Python, with a bunch of XSLT and
still some legacy shell. Bugzilla and Subversion are tightly integrated
into this. The Ant build.xml is over 1000 lines and there's another
couple of thousand in Python.
My attempt to impose sanity on this is focussed round the ideas of
"Internal" and "External" builds. The Internal build is Ant, and it
begins by assuming an accurate source tree that's all in place locally
and ends with a couple of well-behaved JARs and ZIPs sitting locally.
Nothing changes outside this local directory tree, and especially
nothing changes in the repositories.
Everything else, both before and after this, is handled in the
"External" build, which is in Python. This starts with a build request
in Bugzilla and ends with big single ZIPs on an ftp server, including
generated docs, and will also have updated Subversion, Bugzilla and
sent a few emails.
The idea really is that the Internal part is idempotent, whilst the
External bit generates paperwork. Developers use the same Internal part
over and over, the External bit only gets fired up for real Builds that
are going out to QA or customers.
In fact my developers _don't_ use the Internal build. They tend to use
Eclipse and let Eclipse handle things its own way. This sucks when they
then hand over a completed project with its unused and ignored
buildfile in tatters. If another one does it at 5pm after telling the
customer "it's ready now", then there'll be blood on the carpet 8-(
We're also heavily into CurseControl and Fitnesse. Those have a
dependency on Ant we could work round, but haven't felt any urge to.
Ant sucks for its lack of string handling. This is so poor that I don't
even like using Ant with a command line, as it's impractical to
validate command line parameters. Ant is good in that it understands
dependencies, which is slightly more use than a chocolate teapot. In
all this mess though, I only have one place where I actually use
dependencies.
Ant is probably more use for deployment, where a simple initial choice
(particularly which application server is in use) implies a whole chain
of other tasks. I'm also using it as a SQL client tool during
installation, because I know it's available, I know JDBC is already set
up, it doesn't care whether it's connected to Oracle or SQL Server and
it even does dependencies between successive patch scripts.
I'd probably use Ant again, if I started from scratch. -- But I'm
having a hard time to really think _why_.
I'm impressed with Python though. Six months ago I wrote bad Perl, then
I inherited this bundle mostly as shell scripts. I've gone from nowhere
on Python to devotee in just that time.
Simon said:Most of us have ditched scripting (i.e. makefiles) for ant; ant is a very,
very good solution. Ant is, of course, a scripting approach with a
XML-syntax scripting language, but its flexibility and extensibility make
it extremely effective.
Danno said:are scripting languages. Make and ant are tools, that use scripts, but
that doesn't mean those scripts are scripting languages.
Danno said:Make and ant are tools, that use scripts, but
that doesn't mean those scripts are scripting languages.
Danno said:Wow, you can have a full time job out of it?
So you have people request a product build in Bugzilla, and you use
that to initiate all the work to get the product build started?
Since CruiseControl requires that the external build works, wouldn't
you know then who is suspect when someone commits a tattered project?
I am going to move towards Groovy instead of Python.
Andy said:Ant is a scripting language. Make one target, stick a sequence of tasks
in it. Use <antcall> as a subroutine mechanism. You've got yourself a
scripting language.
Andy said:1/3rd getting builds out
1/3rd improving the build process, writing scripts to reduce #1,
telling developers where to stick their code.
1/3rd chasing the developers who didn't follow #2 with my clueiron
http://codesmiths.com/shed/things/clueiron/
1/3rd generally being sworn at over the phone
Agree with this question! Only bad makefiles looked like scripts. GoodGordon said:When did these become equivalent?
Thomas said:And another 1/3rd to finish your math degree along the way, right?
David said:The first 90% of the job takes 90% of the time.
The remaining 10% of the job takes the other 90% of the time.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.