HOME

TheInfoList



OR:

Roundup is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
issue Issue or issues may refer to: Publishing * ''Issue'' (company), a mobile publishing company * ''Issue'' (magazine), a monthly Korean comics anthology magazine * Issue (postal service), a stamp or a series of stamps released to the public * '' ...
or
bug tracking system A bug tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system. Many bug tracking systems, such as those ...
featuring a command-line, web and
e-mail Electronic mail (email or e-mail) is a method of exchanging messages ("mail") between people using electronic devices. Email was thus conceived as the electronic ( digital) version of, or counterpart to, mail, at a time when "mail" mean ...
interface. It is written in
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pr ...
and designed to be highly customizable.


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 GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, conti ...
. It was once described as "like
Bugzilla Bugzilla is a web-based general-purpose bug tracking system and testing tool originally developed and used by the Mozilla project, and licensed under the Mozilla Public License. Released as open-source software by Netscape Communications i ...
without the six years of training, or RT without that tedious
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database orga ...
rubbish."


Features

The standard configuration of Roundup features: * a web interface for viewing, editing and searching issues * REST and XMLRPC interfaces for remote automation and web applications * a
Mail The mail or post is a system for physically transporting postcards, letters, and parcels. A postal service can be private or public, though many governments place restrictions on private systems. Since the mid-19th century, national postal sys ...
gateway allowing creation and changing of issues * a database abstraction layer, currently supporting (among others)
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pr ...
's built-in "anydbm" module,
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the Ingr ...
,
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database orga ...
and
SQLite SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the mos ...
* issue-specific "nosy lists", used for e-mail notifications and conversation (each issue effectively becoming a mini mailing list) * an authorization system, based on roles (of users), classes and objects * an interactive shell for backup and restore tasks and for manipulation of objects Roundup supports several web backends. It can be run standalone, as a background
daemon Daimon or Daemon (Ancient Greek: , "god", "godlike", "power", "fate") originally referred to a lesser deity or guiding spirit such as the daimons of ancient Greek religion and mythology and of later Hellenistic religion and philosophy. The word ...
process, as a CGI script or as
WSGI The Web Server Gateway Interface (WSGI, pronounced ''whiskey'' or ) is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, ve ...
application.


Concepts

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


Database schema

The database schema is defined in a
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pr ...
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 The Template Attribute Language (TAL) is a templating language used to generate dynamic HTML and XML pages. Its main goal is to simplify the collaboration between programmers and designers. This is achieved by embedding TAL statements inside valid ...
(TAL) to create
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript ...
or
XHTML Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages. It mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated. While HTML, prior ...
output. Version 1.5.0 adds experimental support for alternative template engines, such as
Jinja2 Jinja is a web template engine for the Python programming language. It was created by Armin Ronacher and is licensed under a BSD License. Jinja is similar to the Django template engine but provides Python-like expressions while ensuring that ...
. 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". 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'',detector interface
Roundup design description 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 * create * set (change of attributes) * retire * restore 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

*
Comparison of issue-tracking systems 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, ...


References


External links

*
Repository
{{Bug tracking systems Bug and issue tracking software Help desk software Free project management software Free software programmed in Python Software using the MIT license Web applications Python (programming language) software