================
Roundup Features
================

Roundup is a simple-to-use and -install issue-tracking system with
web, e-mail and command-line interfaces. It is based on the winning design
from Ka-Ping Yee in the Software Carpentry "Track" design competition.

*simple to install*
 - installation (including web interface) takes about 30 minutes
 - two templates included in the distribution for you to base your tracker on
 - doesn't need *any* additional support software - python (2.1+) is enough to
   get you going
 - easy to set up higher-performance storage backends like sqlite_ and
   metakit_
 - the really impatient can try the instant-gratification Demo Mode (``python
   demo.py``)

*simple to use*
 - accessible through the web, email, command-line or Python programs
 - may be used to track bugs, features, user feedback, sales opportunities,
   milestones, ...
 - keeps a full history of changes to issues with configurable verbosity
 - issues have their own mini mailing list (nosy list)

*highly configurable*
 - web interface HTML is fully editable
 - database schema is also fully editable (only the "user" class is required)
   with a full set of data types (including dates and many-to-many relations)
   across all storages available
 - customised automatic auditors and reactors may be written that perform
   actions before and after changes are made to entries in the database
 - samples are provided for all types of configuration changes

*fast, scalable*
 - with the sqlite_, metakit_ and mysql backends, roundup is also fast and
   scalable, easily handling thousands of issues and users with decent
   response times
 - indexed text searching giving fast responses to searches across all
   messages and indexed string properties

*documented*
 - documentation exists for installation, upgrading, maintenance, users and
   customisation

*web interface*
 - fully editable interfaces for listing and display of items
 - extendable to include wizards, parent/meta bug displays, ...
 - differentiates between anonymous, known and admin users
 - may be set up to require login, and may also only allow admin users
   to register new users
 - authentication of user registration and user-driven password resetting
   using email and one time keys
 - may be run through CGI as a normal cgi script, as a stand-alone
   web server, or through Zope
 - searching may be performed using many constraints, including a full-text
   search of messages attached to issues
 - file attachments (added through the web or email) are served up with the
   correct content-type and filename
 - email change messages generated by roundup appear to be sent by the
   person who made the change, but responses will go back through the nosy
   list by default

*e-mail interface*
 - may be set up using sendmail-like delivery alias, POP polling or mailbox
   polling
 - may auto-register users who send in mail and aren't known to roundup
 - nosy list configuration controls how people are added and when messages
   are sent to the list
 - auto-filing of "unformatted" messages into a particular class
 - e-mail attachments are handled sanely, being attached to the issue they're
   intended for, and forwarded on to the nosy list
 - sane handling of content-type and content-encoding of messages (text/plain
   preferred in all situations)
 - email packages that display threading will show issue messages correctly
   threaded
 - users may send in messages from multiple addresses and be associated
   with the same roundup username
 - built-in security features like TLS and APOP

*command-line*
 - may be used to interactively manage roundup databases
 - may be scripted using standard shell scripting
 - roundup's API may also be used by other Python programs - a sample is
   provided that runs once a day and emails people their assigned issues
 - a variety of sample shell scripts are provided (weekly reports, issue
   generation, ...)

.. _sqlite: http://www.hwaci.com/sw/sqlite/
.. _metakit: http://www.equi4.com/metakit/

