See also http://www.sacredchao.net/quodlibet/wiki/Development for
various proposals/roadmaps/guides.

Source Layout
-------------
browsers/*	- Things in the View menu
formats/*	- File format support
mutagen/*	- Mutagen tag reading/editing library
qltk/*		- GTK+ widget subclasses/extensions
tests/*		- Unit/regression tests

Basic Patch Guidelines
----------------------
Quod Libet uses 4 space indents and fairly standard Python style
guidelines. No tabs. Currently we are limiting the code to features
in PyGTK 2.6 and Python 2.3.

Please prepare your patches against the Subversion release, or at
least the most recent release. You can update a checked-out version
to the latest trunk using `svn switch' and `svn update'.

Translation
-----------
http://www.sacredchao.net/quodlibet/wiki/Development/Translation is
a detailed guide to handling translation. Don't be afraid to ask for
help on IRC or the mailing list.

Unit Tests
----------
Quod Libet comes with tests. To run them, run ./_sanity.sh. Your patch
can't break any unit tests, and if you change tests in a non-obvious way
(e.g. a patch that removes an entry point and also removes a test for it
is obvious) you should explain why.

Submitting
----------
If your patch fixes a known bug with a ticket, you should attach it to
the ticket directly. If it is a bug fix but doesn't have a ticket, you
can either make a ticket to attach it to, or send it to the mailing list,
quodlibet@lists.sacredchao.net.

The ticket tracker is at http://www.sacredchao.net/quodlibet/report
and at http://www.sacredchao.net/quodlibet/newticket.

Guidelines
----------
We prefer Python to C. We prefer ctypes to compiled C wrappers. A good way
to get a new feature applied is if you include tests for it. Stock
strings and string reuse are awesome, but don't make the interface
awkward just to avoid a new string.
