Roundup (issue tracker)

Roundup is a free, web-based issue tracker with comprehensive mail interface. It is implemented in the Python programming language and easily extensible. From his Community Roundup is referred to as issue tracker, since the concept can be applied not only to bugs, but on tasks in general. Roundup is based on an award-winning design from Ka - Ping Yee, and will be further developed under the direction of Richard Jones.

Functions

In the standard configuration Roundup has the following features:

  • A web-based interface for such tasks, and to search for such. As of version 1.4.21 Roundup provides a template with responsive design based on bootstrap.
  • A mail gateway that allows you to create tasks and edit
  • A database abstraction layer, which currently supports eg PostgreSQL, MySQL and SQLite
  • Task-related prospect lists ( nosy lists), which are used for notification by mail
  • A work based on roles, classes and objects authorization system
  • An interactive shell to create and restore backups, and to edit the objects

Roundup can be used both as a standalone server process run as well on mod_python or (if necessary ) as a CGI script.

Concepts

Roundup is highly customizable:

Database schema

The schema describes classes of objects. In the supplied sample as a template called classic is available as the classes issue ( process ), msg ( message), user ( users), file ( attachment ). Light can be more classes (eg, customer, product, location) supplement or relationships (links) between classes.

The database schema is defined in a Python file in the root directory of the relevant issue tracker instance; this scheme is of Roundup at the start (or, if not operated as a standalone server process ), the Apache server is read. If any changes are detected (eg, in the form of new fields), the tables of the underlying relational database are automatically expanded.

Page templates

Roundup uses the familiar Zope Template Attribute Language to generate HTML or XHTML pages (TAL ). Some templates ( templates) are used universally, such as _generic.index.html, the ( legitimate users) the processing of the entries of all classes of permits, which do not have their own index template.

When a request for " issue123 " one, so initially this designator is broken down into the class "issue" and the ID "123"; as template selection is assumed unless another is specified "item". It searches issue.item.html first according to the template file; is not present, this function is used as an alternative _generic.item.html. If this also does not exist, an error occurs.

Detectors

Many features of Roundup, including some standard functions are realized by means of so-called detectors, which are stored in the subdirectory " detectors" of the tracker instance. These are Python functions, which you want to change (if already available) are the object and the changes to the attribute values.

Detectors are divided into auditors and reactors. The former serve primarily to make certain changes automatically ( it is added that of the nosy list in the default configuration, an issue has been assigned for processing ) and to illegally dismiss changes. The reactors are carried out by the auditors and are used, for example, to send comments to a new issue automatically via email to all members of the respective nosy list.

Detectors are triggered when one of the actions

  • "Create" ( create an object)
  • "Set" (change of attributes )
  • " Retire " ( disable ) and
  • " Restore" ( reactivate )

Is executed (or the attempt ). You can use you to apply a complex workflow.

Extensions

In the instance subdirectory "extensions " Additional functions can be stored that are needed for advanced functionalities that are not only feasible, for example, by means of the local loop; new actions are possible.

Modules with functions that can be used by both detectors as well as extensions that can be stored in the instance subdirectory "lib".

694454
de