Roundup (bug tracker)

from Wikipedia, the free encyclopedia
Roundup
Basic data

Maintainer Ralf Schlatterbeck
developer Richard Jones, Roundup Initiative
Current  version 2.0.0
(July 13, 2020)
operating system All where Python runs.
programming language python
License Various free software licenses
German speaking Yes
www.roundup-tracker.org

Roundup is a free , web-based issue tracker with a comprehensive mail interface. It is implemented in the Python programming language and can be easily expanded. Roundup is known by its community as an issue tracker because the concept can be applied not only to bugs , but to processes and tasks in general.

development

Roundup is based on an award-winning design by Ka-Ping Yee and has long been further developed under the direction of Richard Jones. There are now many other developers like u. a. Ezio Melotti, Berndhard Reiter, Ralf Schlatterbeck, Anatoly Techtonik and John P. Rouillard. Anatoly Techtonik released version 1.5.1, which appeared on January 11, 2016; Rouillard versions 1.6.0 (July 2018) - 2.0.0 (July 2020).

Range of functions

In the standard configuration, Roundup has the following range of functions:

  • a web-based interface for processing the processes or tasks (English issues ), and for searching for them. Starting with version 1.4.21 Roundup also contains a template (Engl. Template ) with responsive design based on bootstrap
  • a mail gateway that allows you to create and edit processes or tasks
  • a database abstraction layer that currently supports PostgreSQL , MySQL and SQLite , among others
  • Each process or task has its own list of interested parties ( nosy list), which is used for notification by email
  • an authorization system based on roles, classes and objects
  • an interactive command line interpreter (English shell ) for creating and importing backups and for editing objects

The range of functions can easily be adapted to new requirements using self-programmed extensions (so-called detectors; see below).

Roundup can be operated both as an independent server process and via mod python or (if necessary) as a CGI script with the help of e.g. B. the web server program apache .

Concepts

Roundup is highly customizable:

Database schema

The schema describes classes of objects. In the template provided as a template called classic there are, for example, the classes issue (process), msg (message), user (user), file (file attachment). Additional classes (e.g. customer, product, location) or relationships ( link ) between classes can easily be added.

The database schema is specified in a Python file in the root directory of the respective bug tracker instance; this scheme is read in by Roundup when the Apache server is started (or if it is not operated as an independent server process) . If changes are found (e.g. in the form of new fields), the tables of the underlying relational database are automatically expanded.

Page templates

Roundup uses the Template Attribute Language (TAL) known from Zope to generate HTML or XHTML pages. Some templates ( stencils ) can be used universally, such as B. _generic.index.html, which allows (authorized users) to edit the entries of all classes that do not have their own index template.

If a request for “issue123” arrives, this designator is first broken down into the class “issue” and the ID “123”; “item” is assumed to be the template selection, unless otherwise specified. First of all, the template file issue.item.html is searched for; if this is not available, _generic.item.html is used as an alternative. Only if this is missing does an error occur.

Detectors

Many Roundup functions, including some standard functions, are implemented with the help of so-called detectors , which are stored in the “detectors” subdirectory of the tracker instance. These are Python functions to which the object to be changed (if it already exists) and the changes to the attribute values ​​are available.

Detectors are divided into auditors and reactors . The primary purpose of the auditors is to automatically make certain changes before executing a transaction. For example, in the standard configuration, a user is (Engl. User to prospective list) (Engl. Nosy list ) added when an operation or a task (Engl. Him issue ) is assigned for processing. Unauthorized changes can also be rejected and the user can be requested to correct his entries (at least in the web interface). The reactors are carried out according to the auditors and are used e.g. B. to automatically send new messages or comments in one process by e-mail to all members of the respective interested party list.

Detectors are triggered when one of the actions

  • "Create" (creating an object)
  • "Set" (changing attributes)
  • "Retire" (deactivate) and
  • "Restore" (reactivate)

is carried out (or an attempt is made). They can be used to map even complex administrative workflows .

Extensions

In the instance subdirectory "extensions", additional functions can be stored that are required for extended functionalities, e.g. B. cannot be realized with the means of the TAL alone; new actions are also possible.

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

Individual evidence

  1. Email announcement from 2020-07-13
  2. The roundup Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on September 26, 2018).
  3. License texts from Roundup from the current version control system
  4. roundup-tracker.org

Web links