Paver is the Python-based build tool that I released several months ago. It uses a Rake-like approach; you create a .py file that is filled with “tasks” which are basically just functions that can be invoked from the command line. Paver has largely been focused on automating Python projects.
Last week, I got together with Marshall and Matt from Zattoo. They’ve been working on a tool called pytoss which is focused on deployment. There are two parts to pytoss: the library and the “tool”. The library is being broken out into a new project called CloudControl, and it provides all kinds of high-level, handy deployment goodies on top of Paramiko. And it’s liberally licensed.
There’s a lot of overlap between pytoss’ tool component and Paver. So, we got together to see what we can do about that. The two approaches were already quite similar. There are a handful of small differences, and I like some of the pytoss approach. At a high-level, here’s what’s going to happen:
- the pytoss tool part will go away
- Paver will become less Python project-specific (but won’t lose the Python project-specific features it has)
- the small bit of magic that Paver has will go away
- Paver will add some optional support for CloudControl for deployment
- Paver will also inherit some nice features like the easy ability to run sub-builds (build other Paver-based projects)
These are just the changes that are in store based on the pytoss integration. There are some other cool features that I have in mind.
I have also decided to move Paver from Launchpad to Googlecode. I find Launchpad to be far more confusing, especially for a small project like Paver. Additionally, bzr’s svn plugin appears to make it so easy to sync with a central server that there’s no reason to make everyone use bzr. Those who want to, can. And those that are used to svn can use svn.
A big thanks to Matt, Marshall and Jonathan for CloudControl and for helping out with Paver!