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

Z

Zed A. Shaw

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).

== STATUS

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
smile.

You can download 0.7 from here:

https://launchpad.net/vellum/0.0/0.7

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:

http://www.zedshaw.com/projects/vellum

== WHAT'S IN VELLUM 0.7?

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.

== BUILD SAFETY

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).

== TINY CODE

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

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
welcome.

== NEXT FEATURES

* 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.
 

Ask a Question

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.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top