Roundup (issue tracker)

Last updated
Roundup
Original author(s) Ka-Ping Yee
Developer(s) Richard Jones, Roundup Initiative
Initial release18 August 2001;21 years ago (2001-08-18)
Stable release
2.2.0 [1] / 13 July 2022;6 months ago (2022-07-13)
Repository
Written in Python
Operating system Cross-platform
Type Issue tracking system
License MIT license [2]
Website www.roundup-tracker.org

Roundup is an open-source issue or bug tracking system featuring a command-line, web and e-mail interface. It is written in Python and designed to be highly customizable. [3]

Contents

History

Roundup was designed by Ka-Ping Yee for the Software Carpentry project and was developed from 2001 to 2016 under the direction of Richard Jones. Since then, it has been developed by the Roundup community. It was the issue tracker for the Python programming language for 17 years before migrating to GitHub. [4] It was once described as "like Bugzilla without the six years of training, or RT without that tedious MySQL rubbish." [5]

Features

The standard configuration of Roundup features:

Roundup supports several web backends. [10] It can be run standalone, as a background daemon process, as a CGI script [11] or as WSGI application.

Concepts

Roundup is customized by changing the contents of the tracker instance directory:

Database schema

The database schema is defined in a Python file in the tracker instance's root directory; it is re-read whenever the server is started anew. When changes are found (e.g. new attributes), the tables of the underlying RDBS are altered accordingly.

Page templates

Roundup uses the Template Attribute Language (TAL) to create HTML or XHTML output. Version 1.5.0 adds experimental support for alternative template engines, such as Jinja2. [12]

Templates are named after the classes in database. Roundup automatically chooses template based on class name requested from URL. Some templates are used for several classes, e.g. _generic.index.html, which allows (authorized) users to change the objects of all classes which lack an own index template.

When an "issue123" is requested, this designator is split in the issue class and the id "123". [13] By default an "item" template is chosen: First, an issue.item.html template file is looked for; if it can't be found, _generic.item.html is used as a fallback option. If this is missing equally, an error occurs.

Detectors

Many Roundup functions, including some of the standard functionality, are implemented using so-called detectors, [14] which are located in the "detectors" sub-directory of the tracker instance. They are Python subroutines which have access to the object to change (if already created) and the requested attribute changes.

Detectors are distinguished between auditors and reactors. Auditors are used primarily for several automatic changes (in the standard configuration, the assignedto user is automatically added to the nosy list of the issue), and to refuse un-allowed changes; reactors are executed thereafter and used e.g. for the e-mail notification feature, sending notification mails to all users interested in a certain issue when a comment is added to it.

Detectors are triggered whenever one of the actions

is requested. They can be used to create an elaborated custom workflow.

Extensions

The instance subdirectory "extensions" can hold additional files which are needed for extended functionalities which can't (conveniently) be done with TAL; even totally new actions are possible.

Python modules which are used by both detectors and extensions can be put in the "lib" subdirectory

See also

Related Research Articles

Zope is a family of free and open-source web application servers written in Python, and their associated online community. Zope stands for "Z Object Publishing Environment", and was the first system using the now common object publishing methodology for the Web. Zope has been called a Python killer app, an application that helped put Python in the spotlight.

<span class="mw-page-title-main">Model–view–controller</span> Software design pattern

Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user.

<span class="mw-page-title-main">WebObjects</span> Java web application server and framework originally developed by NeXT Software

WebObjects was a Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

The following tables compare general and technical information for a number of wiki software packages.

The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

<span class="mw-page-title-main">Mantis Bug Tracker</span> Bug tracking system

Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

Push technology or server push is a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server. It is contrasted with pull/get, where the request for the transmission of information is initiated by the receiver or client.

<span class="mw-page-title-main">Django (web framework)</span> Python web framework

Django is a free and open-source, Python-based web framework that follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.

Core Data is an object graph and persistence framework provided by Apple in the macOS and iOS operating systems. It was introduced in Mac OS X 10.4 Tiger and iOS with iPhone SDK 3.0. It allows data organized by the relational entity–attribute model to be serialized into XML, binary, or SQLite stores. The data can be manipulated using higher level objects representing entities and their relationships. Core Data manages the serialized version, providing object lifecycle and object graph management, including persistence. Core Data interfaces directly with SQLite, insulating the developer from the underlying SQL.

<span class="mw-page-title-main">TurboGears</span>

TurboGears is a Python web application framework consisting of several WSGI components such as WebOb, SQLAlchemy, Kajiki template language and Repoze.

This article is a comparison of issue tracking systems that are notable, including bug tracking systems, help desk and service desk issue tracking systems, as well as asset management systems. The comparison includes client-server application, distributed and hosted systems.

<span class="mw-page-title-main">LedgerSMB</span> Accounting software planning system

LedgerSMB is a free software double entry accounting and Enterprise Resource Planning (ERP) system. Accounting data is stored in a SQL database server and a standard web browser can be used as its user interface. The system uses the Perl programming language and a Perl database interface module for processing, and PostgreSQL for data storage. LedgerSMB is a client-server application, with server access through a web browser.

<span class="mw-page-title-main">Silverstripe CMS</span> Content management system

Silverstripe CMS is a free and open source content management system (CMS) and framework for creating and maintaining websites and web applications. It provides an out of the box web-based administration panel that enables users to make modifications to parts of the website, which includes a WYSIWYG website editor. The core of the software is Silverstripe Framework, a PHP Web application framework.

<span class="mw-page-title-main">SPIP</span>

SPIP is a free software content management system designed for web site publishing, oriented towards online collaborative editing.

Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network. Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

<span class="mw-page-title-main">Shinken (software)</span>

Shinken is an open source computer system and network monitoring software application compatible with Nagios. It watches hosts and services, gathers performance data and alerts users when error conditions occur and again when the conditions clear.

The following outline is provided as an overview of and topical guide to the Perl programming language:

<span class="mw-page-title-main">Yesod (web framework)</span>

Yesod is a free and open-source web framework based on Haskell for productive development of type-safe, REST model based, high performance web applications, developed by Michael Snoyman et al.

ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, such as C# or Visual Basic. The main building blocks of Web Forms pages are server controls, which are reusable components responsible for rendering HTML markup and responding to events. A technique called view state is used to persist the state of server controls between normally stateless HTTP requests.

References

  1. "Roundup Issue Tracker / [Roundup-users] Roundup Issue Tracker 2.2.0".
  2. License - Roundup current documentation
  3. The primary user interface is the web interface. A so-called classic tracker template is distributed as the standard template and data structure set, but can be used as a starting point for customization
  4. Python Bug Tracker
  5. NTKnow 2002/07/05 - TRACKING
  6. REST documentation
  7. E-Mail User Interface, Roundup user's guide
  8. Design of Nosy Lists
  9. access control, Roundup design description
  10. "Installing Roundup - Roundup 2.2.0 documentation".
  11. usage via CGI is rare and not recommended, for performance reasons
  12. "Roundup: A simple-to-use and -install issue-tracking system with command-line, web and e-mail interfaces. Highly customisable".
  13. identifiers and designators, Roundup design description
  14. detector interface, Roundup design description