[ANN] Vellum 0.7: Simple Python Can Build Many Things

Zed A. Shaw zedshaw at zedshaw.com
Tue Apr 1 17:34:05 EDT 2008

Hi All,

This is another announce for my fun little make,Rake,Scons alternative
named Vellum.  The goal of Vellum is to create a complete build system
in the least amount of clean Python as possible, while keeping the build
mechanism safe from code injection (if you need that).


I went a little nuts today and did three releases adding
tons of features but very little code.  It currently can be used to
build most anything, but there's little documentation.  I'm using to
build about 6 projects of mine and it's great stuff.

The big changes from today is that, if you hate YAML, then you don't
have to use it at all.  Period.  It's all python syntax all the time
with none of the >>>,<--,-->,<<< characters.  This seems to make people

You can download 0.7 from here:


Which will also be the main project distribution page for everyone.
You can get the source from there via bzr or you can go to:



This release features complete Python integration that's on equal
footing with the YAML support.  You don't even need to install YAML to
use Vellum with just Python only builds.

It also adds a bit of Pythonic syntactic sugar for the build files so
that people don't freak about the "weird" syntax used in the YAML
files.  Now you can write this for a target:

  from vellum.python import *
  targets = {"sample": [sh("echo i did something")]}

Or any combination of sh(), log(), py(), given(), and target() to
describe a target.


One problem with using Python to describe a build is that it is an
executable, which means that bad things can be put in the build.
That's fine if it's your build, since you should be careful.  But, if
you get the build from someone else you'd want to analyze the build and
load it without causing anything to happen.

The YAML syntax lets you do this, but the Python does not.  Therefore,
for the security minded there's a new option -Y that only allows YAML
loading so you can restrict your builds to only trust YAML.

I'll be adding more features for the build safety that will hopefully
let people use Vellum to safely (or reasonably safely) build other
people's stuff without getting hurt (or at least get yelled at a lot).


So far Vellum is pushing around 300 lines of Python.  That is just

Anyone interested in helping feel free to branch the bzr and register
it with Launchpad.  Email me when you got stuff I might be interested
in and I'll pull from you, or send me patches.

Suggested features that don't involve major changes are more than


* A few recipes to make building common stuff easy, like generating
setup.py and so on.
* A way to load modules from trusted locations.
* Documentation, built with Vellum and Idiopidae. Fun.

And that should be it.

Zed A. Shaw
- Hate: http://savingtheinternetwithhate.com/
- Good: http://www.zedshaw.com/
- Evil: http://yearofevil.com/

More information about the Python-list mailing list