One feature that we want the new database to include is storing at least an audit trail of changes, so that we can tell who changed a group's entry (or added a signatory) and when. Ideally, we'd want to store complete old versions.

Ideally, we'd use some third-party system to do this, instead of implementing it ourselves. Some projects that try to provide this functionality:
* django-revisions (sometimes known as django-versions)
    * http://stdbrouw.github.com/django-revisions/
    * License: Berkeley 2-clause (?)
    * Activity and sustainability
        * First commit August 2010
        * Last commit March 2011
    * Somewhat limited documentation
    * Design
        * Store every version in the table with the model
        * Provide accessors for getting the most recent version
    * Appears not to support linking to a "bundle" (an object, not a version) --- see https://github.com/stdbrouw/django-revisions/issues/5
    * Performance may be an issue --- https://github.com/stdbrouw/django-revisions/issues/9
        * "Single table" model seems dubious
    * It's not immediately clear to me how to make the admin also save the old version
* AuditTrail
    * http://code.djangoproject.com/wiki/AuditTrail
    * License: none specified
    * Activity and sustainability
        * First "commit" August 2007
        * Last "commit" August 2010
        * Never had anything resembling a website or a source code repo, AFAICT
    * Very limited documentation --- just the one page on Django's wiki
    * Design
        * Store versions in a shadow table per-model
* django-fullhistory
    * Listed under "Models, database, history, trails" on http://code.djangoproject.com/wiki/DjangoResources
    * License: GPLv2
    * Activitiy and sustainability
        * First commit August 2008
        * Last commit January 2010
    * Design
        * Store all versions of all models in a single table, JSON'd
        * Metadata stored unpickled
            * Time
            * Editor
            * Some other stuff
* django-reversion
    * https://github.com/etianen/django-reversion
    * License: Berkeley 3-clause
    * Activity and sustainability
        * First commit September 2008
        * Last commit April 2011
    * Decent-looking documentation
    * Design
        * Store all versions of all models in a single table, pickled
        * Metadata stored unpickled
            * Time
            * Editor
            * Comment
    * Performance
        * Slightly concerned that the "here are the changes that have been made" view might be too slow; as long as we limit to editor and time this should be fine
