Information for Developers
This information applies to all of Playtools and Goonmill and Glass Vellum.
Contents
To check out source code, you need Mercurial. Then you can run a command like this:
hg clone http://playtools-source.goonmill.org/ Playtools # or hg clone http://goonmill-source.goonmill.org/ Goonmill # or hg clone http://vellum-source.goonmill.org/ Vellum # or hg clone http://millwheel-source.goonmill.org/ Millwheel # or hg clone http://hypy-source.goonmill.org/ Hypy
These URLs are public; anyone can clone them. See Getting Write Access, below, for the writeable URLs.
Project Communication
There is a mailing list; you should subscribe if you intend to contribute to the project. Also, we use #playtools on irc.freenode.net.
If you want to report a problem visit one of:
Getting Write Access
If you want to officially contribute code to the project, the easiest way is to open a bug describing the thing you want to see fixed. Naturally, bugs that include patches get fixed sooner (see Source Code Policy below, which will tell you how to format patches). You can also create blueprints on the blueprints page, describing features you'd like to see included; this wiki is for detailed proposals that go with blueprints, should you choose to write one. Link your proposals from this wiki's blueprint page, but make sure there's a corresponding blueprint in Launchpad.
When you've demonstrated value to the project, just ask Cory for access and he'll set you up an account. Here's the things you must have first:
- A Launchpad account
- Your SSH public keys uploaded to your Launchpad account
- Some way to easily contact you.
You probably also want to join the "playtools" team.
If you have write access, you want to use these URLs instead:
ssh://goonmill.org//usr/local/Goonmill ssh://goonmill.org//usr/local/Playtools ssh://goonmill.org//usr/local/Vellum ssh://goonmill.org//usr/local/Millwheel ssh://goonmill.org//usr/local/Hypy
If you already have a clone of the HTTP repositories, and you are given access to the SSH repositories, you do not need to clone again! Just edit .hg/hgrc in your repository, and change the default URL.
Source Code Policy
We follow PEP 8 guidelines strictly.
Please provide patches in unified diff format. The easiest way to do that is to make your changes and then run hg diff; attach the output. You can also commit your changes to your local repository, and then use hg bundle to create an hg patch. This is not human readable but it can be applied by the developers. (It helps to also include a human-readable patch alongside it.)
Please include unit tests.
Mercurial Tips
Here's a good basic setup for developing with any Mercurial repository. Add the following to your ~/.hgrc
[ui] username = Your Name <your@emailaddress.com> [extensions] hgext.fetch =
To generate a human readable patch on your branch, the following will work:
hg out | perl -F: -lane 'print $F[1]-1 if /^changeset:/' | head -1 | xargs -i hg diff -r {}:tip
The above is pretty awful.. looking for a better way. If you know it, tell me or edit this page.
Your Development Environment
When you are working with Playtools, Goonmill, and other related apps, there are a few things you will usually want installed.
RDFlib from the source tarball on the RDFlib website.
Storm from the Launchpad Storm site.
pysqlite2. In Ubuntu you can get this from apt-get install python-pysqlite2. Most other distros also have a version.
- Python 2.5.
When these things are installed, run ./bootstrap.sh to make sure you have all the dependencies of the application you want to work with.
Further Learning
The N3 data format is described on this wiki in N3Tutorial.
The SparqlSyntax is also described on this wiki.
