Roundup
Roundup jump to Roundup Issue Tracker

Roundup Issue Tracker

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

It is designed to be customised so you can “track your issues your way”.

The current stable version of Roundup is 2.3.0. It fixes bugs and and adds features compared to the 2.2.0 release.

It runs with Python 2.7.12+ or 3.6+.

Python 2 Support

Although the original plan was to support Python 2 until 2025, CI resources for testing with Python 2 are being phased out by a number of CI services. Python 3 should be used to deploy new trackers and older trackers should be upgraded to use Python 3.

Release Highlights

Some improvements from the 2.2.0 release are:

  • Dockerfile demo mode implemented. This allows quick evaluation as well as the ability to spin up a configured tracker to customise.
  • SQLite backends can use WAL mode to reduce blocking between readers and writers improving concurrent use.
  • Redis can be used for session database with SQLite and dbm backends. Provides a major performance improvement.
  • roundup-mailgw can use OAUTH authentication to SMTP server. (roundup-mailgw command line options changed as a result.)
  • Postgres full text index can now be enabled.
  • Modifications to in-reply-to threading when there are multiple matches resulting in more predictable handling of messages.
  • Many updates to documentation to make it scannable, useful and work on mobile.
  • Admin documentation includes a section on setting up Content Security Policy (CSP) to better secure your Roundup trackers.
  • REST now allows rate limiting headers to be accessed by client JavaScript.
  • Default number of rounds for PBKDF2 updated to 2M to account for improvements in password crackers and CPU power.
  • Support PBKDF2 with SHA512 for password storage to improve resistance to password crackers.
  • Deprecate SSHA password hash function.
  • roundup-admin reindex can be done in batches to manage load incurred by reindexing.
  • roundup-admin can list available templates and their installed locations. This is useful when installing via pip or in a docker container as supporting files are not stored in the usual locations like /usr/share/roundup.
  • Crash fixes in detector handling, configuration handling, fix for sorting of multilinks.

More info on the 53 changes can be found in the change notes.

Roundup Use Cases

For more information on Roundup see the features list, design overview, and all the other documentation. Roundup has been deployed for:

  • bug tracking and TODO list management (the classic installation)
  • customer help desk support (with a wizard for the phone answerers, linking to networking, system and development issue trackers)
  • issue management for IETF working groups
  • sales lead tracking
  • conference paper submission and double-blind referee management
  • weblogging (well, almost :)
  • thing management using the GTD methodology.

…and so on. It’s been designed with flexibility in mind - it’s not just another bug tracker.

Try It Out

Roundup ships with a demo tracker to play with - you don’t need to install Roundup. After you’ve unpacked the source, just run “python demo.py” and load up the URL it prints out!

If you are installing on MS Windows, you have to use a different method. See the errata for windows installs. This is fixed in development and will be fixed in a release after 2.3.0. But versions 2.3.0 and 2.2.0 are affected by the bug.

Follow the source gratification mode with these steps (change the -2.3.0 version identifier to match your downloaded file).

  1. python3 -m pip download roundup
  2. tar -xzvf roundup-2.3.0.tar.gz
    • if you don’t have a tar command (e.g windows), use: python -c "import tarfile, sys; tarfile.open(sys.argv[1]).extractall();" roundup-2.3.0.tar.gz
  3. cd roundup-2.3.0
  4. python3 demo.py

(The source download can also be used to create a custom Docker image.)

Alternatively, you can install using a virtual environment with pip by:

  1. create a virtual environment with:

    python3 -m venv roundup
    
  2. activate the environment with (assuming your shell is sh/bash/zsh/ksh like):

    . roundup/bin/activate
    
  3. install the latest release of Roundup with:

    python3 -m pip install roundup
    
  4. create a demo tracker with:

    roundup-demo
    

    using ./demo as the directory and the classic tracker.

  5. load the URL printed by the demo tracker

  6. when you are done, use deactivate to return your shell to using the system python.

Both of these methods produce the same result.

Origin Story

Roundup was originally released as version 0.1.1 in late August, 2001. The first change note written said:

Needed a bug tracking system. Looked around. Tried to install many Perl-based systems, to no avail. Got tired of waiting for Roundup to be released. Had just finished major product project, so needed something different for a while. Roundup here I come…