Ayende @ Rahien

Refunds available at head office

BooBS Sample

Here is the first such script that I am going to use:

import Boobs.IO.Extensions
import Boobs.Compiler.Extensions

Task
"default", ["build"]

Task
"build", ["clean"]:
      MsBuild("MyApp.sln").Execute()

Task "clean":
      MsBuild("MyApp.sln", "/target:clean").Execute()

Svn "ContiniousIntegration":
      SvnUpdate
      Execute("default")

Note that this is probably incredibly primitive consider what rake can do, but it amuses me to be able to do this.

The commands are probably even more fun:

Tools\BooBuildSystem\boobs -f:default.boobs -t:ContiniousIntegration

The Svn task will only be run if the repository is more recent than the working copy, so this is something that makes it very easy to build CI scripts. In this case I need to do something a distributed deployment on commit, and while I can probably do this using CC.Net, I am not really fond of the anticipated pain (configuring permissions alone would be a PITA, I imagine) and the executable XML.

This is far simpler, if more primitive.

As an aside, I am getting addicted to parenthesis-less method calls. 

Comments

Adam Vandenberg
10/03/2007 12:56 PM by
Adam Vandenberg

I hate to be "that guy", but heck, with a name like that I can't really try to sell it as a replacement (for NAnt.)

Ayende Rahien
10/03/2007 01:05 PM by
Ayende Rahien

Adam,

No argument about that :-)

That is not my name, though.

Call it BBUS, if it sounds better.

Kevin Miller
10/03/2007 01:39 PM by
Kevin Miller

Can I float the idea of calling it Bake (Boo - make).

We could switch from quips about mammary glands to getting the munchies and 4:20 references.

efdee
10/03/2007 02:07 PM by
efdee

Whenever talking about it to higher level people, just refer to it as the Boo Build System. No harm done :-)

Avish
10/03/2007 03:50 PM by
Avish

I suggested earlier and elsewhere that this project merges with BooDoo. If that happens, I think BooDoo can be used as the name.

More practically, though, the current state of the DSL is a leaky abstraction: I don't care that BooBS uses strings for task names and string lists for dependencies; I want to write a pure DSL declaration, like this:

task build (clean):

MsBuild "MyApp.sln"

It shouldn't be too hard to make BooBS use ReferenceExpressions for tasks, rather than strings. This would also automagically gain you the power of intellisensing task names.

causticmango
10/03/2007 04:09 PM by
causticmango

In all seriousness, "BooBS" will make it difficult for enterprises to stomach. A less controversial name would help. Maybe "BooBuild", though the earlier recommendation, "Bake" is even better (reminiscent of Ruby's "rake").

Georges Benatti Jr
10/03/2007 05:46 PM by
Georges Benatti Jr

Bake would be great because of the rake similarity, but i think that Bake already exists.

And i agree that this name can be a problem, if the uses catch. Maybe BooBuild !!

Kevin Miller
11/19/2007 06:17 PM by
Kevin Miller

I have a little side project I just started up that needs some build automation so I am looking into using BooBS.

Grabbed the source from the google code site.

Try 1: Try to load the BooBS solution in VS.Net - failed.

.booproj could not be found

Try 2: Try letting boobs build itself.

C:\projects\boobs>.\bin\boobs

Boo Build System - version 0.2

Running buildfile: C:\projects\boobs\boobsfile

default:

build:

init build dir:

build boobs:

build engine:

The system cannot find the file specified

Try 3: Download SharpDevelop IDE to build BooBS. - worked

However, BooBS still could not build itself.

The sample works with BooBS that I built with SharpDevelop. Now if I only knew Boo I could write code for tasks.

Comments have been closed on this topic.