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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
issue or
bug tracking system 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 used ...
featuring a command-line, web and
e-mail Electronic mail (usually shortened to email; alternatively hyphenated e-mail) is a method of transmitting and receiving Digital media, digital messages using electronics, electronic devices over a computer network. It was conceived in the ...
interface. It is written in Python 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 () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
. It was once described as "like Bugzilla without the six years of training, or RT without that tedious
MySQL MySQL () is an Open-source software, 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 rel ...
rubbish."


Features

The standard configuration of Roundup features: * a
web interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
for viewing, editing and searching issues *
REST REST (Representational State Transfer) is a software architectural style that was created to describe the design and guide the development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of ...
and XMLRPC interfaces for remote
automation Automation describes a wide range of technologies that reduce human intervention in processes, mainly by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machine ...
and web applications * a
Mail The mail or post is a system for physically transporting postcards, letter (message), letters, and parcel (package), parcels. A postal service can be private or public, though many governments place restrictions on private systems. Since the mid ...
gateway allowing creation and changing of issues * a database abstraction layer, currently supporting (among others) Python's built-in "anydbm" module,
PostgreSQL PostgreSQL ( ) also known as Postgres, is a free and open-source software, free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transaction processing, transactions ...
,
MySQL MySQL () is an Open-source software, 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 rel ...
and SQLite * issue-specific "nosy lists", used for e-mail notifications and conversation (each issue effectively becoming a mini
mailing list A mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. Mailing lists are often rented or sold. If rented, the renter agrees to use the mailing list only at contra ...
) * an authorization system, based on roles (of users), classes and objects * an interactive
shell Shell may refer to: Architecture and design * Shell (structure), a thin structure ** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses Science Biology * Seashell, a hard outer layer of a marine ani ...
for
backup In information technology, a backup, or data backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. The verb form, referring to the process of doing so, is "wikt:back ...
and restore tasks and for manipulation of objects Roundup supports several web backends. It can be run standalone, as a background
daemon A demon is a malevolent supernatural being, evil spirit or fiend in religion, occultism, literature, fiction, mythology and folklore. Demon, daemon or dæmon may also refer to: Entertainment Fictional entities * Daemon (G.I. Joe), a character ...
process A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management * Business process, activities that produce a specific s ...
, as a CGI script or as WSGI application.


Concepts

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


Database schema

The
database In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
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 Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
or
XHTML Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated. While HTML, pr ...
output. Version 1.5.0 adds experimental support for alternative template engines, such as Jinja2. 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 Class, Classes, or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used d ...
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
subroutine In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times. Callable units provide a ...
s 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 Notable issue tracking systems, including bug tracking systems, help desk and service desk issue tracking systems, as well as asset management systems, include the following. The comparison includes client-server application, distributed and host ...


References


External links

* {{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