This is the last post in my software releases series (at least, the last as I originally planned the series).
In the last 5 articles, you’ve seen a couple of places where there’s some irritating boilerplate. What’s supposed to go into your setup.py? How did you start off with a buildout.cfg again? Oh, don’t forget the CHANGES.txt and a basic README.txt. The solution for that is something I normally call a skeleton. I mentioned skeletons earlier in a Dutch python user group talk on practical project automation.
A skeleton is a basic project structure with a README, a couple of directories, some python files to start off with and whatever else you want to put in there. You give it some parameters (project name, website address, whatever) and it’ll fill in the blanks with those parameters.
Django has a manage.py startapp, but there’s a generic python tool called PasteScript. PasteScript’s documentation almost exclusively talks about running wsgi applications, but it actually can create project skeletons for you. The best way to get started is to look at ZopeSkel, which has a large collection of skeletons. Download it and see what it can do.
There are two core advantages to using skeletons either for yourself or within your community or within your company:
Want to start your own skeleton? What I’d recommend is to start with a ZopeSkel download and to look at their code and how to set it all up. Then start your own. I worked for Zest software and started “zestskel” there. I worked for The Health Agency afterwards and started “thaskel” there. Now I work at Nelen en Schuurmans so I’ve started “nensskel” here :-)
Some examples of what I get when I create a new django site with nensskel (after giving it a project name):
So: make it easy to do the right thing. Let laziness work in your favour. Start a skeleton today!
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):