HACKING - a quick guide to coding on Siesta


So you want to contribute to Siesta? Excellent, step this way.

Getting Started

The first things you'll want to do are to subscribe to our mailing lists, get a copy of the code from the subversion repository, read that code, and the rest of this document.

Subscribe to the mailing lists.

There are currently two lists dedicated to the development of Siesta.


Where the coordination of the main development happens.


Where commit messages go. This is worth reading to see in what direction the code is moving.

To subscribe to any of these send email to and follow the instructions you get back.

Get a copy of the latest sources

 svn co

If you can't deal with subversion yet (and we really recommend it), Nicholas Clark has come to the rescue with snapshot generation. At 4am and 4pm daily snapshots are generated here:

Read the sources

XXX explain the structure of the code layout a little

Read the rest of this document

I know you're impatient to get going, but please follow through this through first.

Important conventions

These are only important because not keeping to them annoys richardc, and when that happens things tend to get defenestrated. We like to keep that to a minimum.

do TODO list items first


Code layout

Since the dawn of time this argument has been running. Thankfully these years of fighting have allowed a solution to evolve - perltidy.

The mandated set of arguments to perltidy are encoded in the script bin/run_perltidy, so now and again run


And no-one gets hurt.

Note: Actually sometimes we just ignore perltidy, it really loses the plot when we chain method calls, just be prepared to have your code remangled.


Tests will put hair on your chest and 20 years on your life, or maybe that was Ready-Brek. Either way we have a test suite, and it is expected that your new contributions will bolster and not break any existing tests.

 ./Build test

Also it'd be nice if you can bear in mind test coverage. We have a target that runs the testsuite using Devel::Cover, so install that and periodically run:

 ./Build cover

patch format

Unified diffs are preferred, unified diffs produced from the top of a working directory doubly so. To produce these simply run this command in the top level directory.

  svn diff -u

NEW, UNRELEASED MODULES (that aren't Siesta itself :)

Being hip kids on the bleading edge we're using new modules, and sometimes finding bugs in them. As much as is possible we'll update the Build.PL to track the latest working release from CPAN, but there are times when that's not quite new enough.

These are the are the exceptions where you'll need to grab something from CVS (and/or urls of patches you should apply to the CPAN release) (version numbers are predicted fixed releases):

None at current time


Richard Clamp <>


Copyright (c) 2002, 2003 Richard Clamp. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.