@@ -12,137 +12,105 @@ Roundup is an easy-to-use and -install issue-tracking system with
1212web, e-mail and command-line interfaces. Based on the winning design
1313from Ka-Ping Yee in the :index:`Software Carpentry` "Track" design competition.
1414
15- *simple to try*
16- - instant-gratification ``python demo.py`` or spin up a Docker
17- container in less than 5 minutes :)
18- - base your tracker on one of five templates included in the distribution
19- - play with the demo, customise it and then use *it* as the template for
20- your production tracker
21- - requires *no* additional support software - python (3.6+ or 2.7) is
22- enough to get you going
23-
24- *simple to install*
25- - basic installation (including web interface) takes about 30 minutes
26- - supports embedded databases like sqlite_ and dbm so you don't
27- need a separate database like mysql_ or postgresql_
28- - can be run in a container (Docker)
29-
30- *flexible*
31- - manage your issues your way
32- - use it to track bugs, features, user feedback, sales opportunities,
33- fleet maintenance requests, office issues, milestones, ...
34- - can be deployed in your network running as a stand alone
35- web server (with optional reverse proxy), WSGI (with
36- mod_wsi under Apache, Nginx w/ gunicorn), FastCGI, as a
37- plain cgi script, or through Zope
38-
39- *simple to use*
40- - default trackers have a basic web interface usable on any device
41- - users may sign themselves up, there may be automatic signup for
42- incoming email and users may handle their own password reset requests
43- - accessible through the web (html, REST or XMLRPC), email,
44- command-line or Python programs
45- - indexed Full Text Search (FTS) gives fast responses to searches across all
46- messages and indexed string properties
47- - automatically keeps a full history of changes to issues with
48- configurable verbosity and easy access to information about who created
49- or last modified *any* item in the database
50- - issues have their own mini mailing list (nosy list) to keep
51- everybody informed
52-
53- *fast, scalable*
54- - with the sqlite, mysql and postgresql backends, Roundup is
55- also fast and scalable, easily handling thousands of issues and users
56- with decent response times
57- - database indexes are automatically added for those backends that
58- support them (sqlite, mysql and postgresql)
59- - support for the Xapian, Whoosh, sqlite or Postgres full-text
60- indexing engines for large trackers
61-
62- *highly configurable*
63- - web interface HTML is fully editable using TAL or jinja2
64- templating languages
65- - database schema is fully editable (only the "user" class is required)
66- with a full set of data types (including dates and many-to-many relations)
67- across all available databases
68- - fine grained authorization can be based on the properties of
69- a user and resource (`Attribute or Policy/Purpose Based Access
70- Control (ABAC or PBAC)
71- <https://en.wikipedia.org/wiki/Attribute-based_access_control>`_))
72- - customised automatic auditors and reactors to perform
73- actions before and after changes are made to entries in the database,
74- or may veto the creation or modification of items in the database
75-
76- *private and self-hosted*
77- - your data on your servers
78- - used for AI training only if you want
79- - can be containerized or not
80-
81- *documented*
82- - documentation exists for installation, upgrading, maintenance, users
83- - samples are provided for all manner of configuration changes and
84- customisations
85-
86- *web interface*
87- - fully editable interfaces for listing and display of items
88- - extendable to include wizards, parent/meta bug displays, ...
89- - differentiates between anonymous, known and admin users
90- - may be set up to require login, and may also only allow admin users
91- to register new users
92- - authentication of user registration and user-driven password resetting
93- using email and one time keys
94- - searching may be performed using many constraints, including a full-text
95- search of messages attached to issues
96- - file attachments (added through the web or email) are served up with the
97- correct content-type and filename
98- - email change messages generated by Roundup appear to be sent by the
99- person who made the change, but responses will go back through the nosy
100- list by default
101- - detects concurrent user changes
102- - saving and editing of user-defined queries which may optionally be
103- shared with other users
104-
105- *e-mail interface*
106- - may be set up using sendmail-like delivery alias, POP polling or mailbox
107- polling
108- - may auto-register users who send in mail and aren't known to Roundup
109- - nosy list configuration controls how people are added and when messages
110- are sent to the list
111- - auto-filing of "unformatted" messages into a particular class
112- - e-mail attachments are handled sanely: attached to the issue they're
113- intended for, and forwarded on to the nosy list
114- - sane handling of content-type and content-encoding of messages (text/plain
115- preferred in all situations)
116- - email packages that display threading will show issue messages correctly
117- threaded
118- - users can have multiple email addresses may associated
119- with the same Roundup username/account
120- - built-in security features like TLS, APOP, IMAPS w/ OAUTH
121-
122- *command-line*
123- - may be used to interactively manage Roundup databases
124- - may be scripted using standard shell scripting
125- - Roundup's API may also be used by other Python programs
126- - a variety of sample shell and Python scripts are provided (weekly
127- reports, new issue from command line, daily open ticket summary
128- email sent to the person assigned to the tickets, ...)
129-
130- *xmlrpc interface*
131- - simple remote tracker interface with basic HTTP authentication
132- available at the /xmlrpc endpoint.
133- - provides same access to tracker as roundup-admin, but based on
134- XMLRPC calls
135- - see the `xmlrpc guide`_ for more details basic and advanced clients etc.
136-
137- *RESTful interface*
138- - accessible using basic HTTP authentication at /rest starting point
139- - able to be extended with new endpoints
140- - CORS support for use by third party web pages.
141- - authentication can be done using JSON Web Tokens (JWT)
142- - see the `rest guide`_ for details.
143-
144- .. _sqlite: https://www.sqlite.org/index.html
15+ **Installation and Setup**
16+
17+ - Start using the software in `instant-gratifcation (demo) mode`_ with
18+ ``python demo.py`` or `a Docker container`_ in under 5 minutes.
19+ - Choose from `five included templates`_ for your tracker.
20+ - `Customize`_ and use the demo as a template for your production tracker.
21+ - No need for additional support software, just Python (3.6+ or 2.7)
22+ to get started.
23+ - Basic installation (including a web interface) takes about 30 minutes.
24+ - Supports embedded databases like `SQLite`_ and dbm. Upgradable
25+ to databases like `MySQL`_ or `PostgreSQL`_ if needed.
26+ - Can be run in a container like Docker or kubernetes.
27+ - Deploy in your network as a standalone web server or `through
28+ various methods`_ like WSGI, FastCGI, plain CGI, etc.
29+
30+ **Issue Tracking and Management**
31+
32+ - Manage your issues your way. Handle bugs, features, milestones,
33+ user feedback, fleet maintainance, office issues etc.
34+ - Searches on specific properties (e.g. open issues with a high
35+ priorty) can be saved and reused or shared with outer users.
36+ - Full Text Search for quick searches across messages.
37+ - Keeps a detailed history of issue changes.
38+ - Issues become a mini mailing list to keep everyone informed.
39+ - Email is a first class method for interacting with issues.
40+
41+ **Scalability and Performance**
42+
43+ - Default trackers use simple HTML with low resource requirements.
44+ - Fast and scalable with sqlite, mysql, and postgresql backends.
45+ - Indexes are automatically configured.
46+ - Supports full-text indexing engines (xapian, whoosh, SQLite,
47+ PostgreSQL) for large trackers.
48+
49+ **Customization**
50+
51+ - The database schema can be updated to `track additional data`_.
52+ - The web interface can be redesigned to fit your workflow.
53+ - Extensible web interface with various features like `wizards`_,
54+ bug displays, etc.
55+ - Add business rules using `auditors and reactors`_ for actions before
56+ and after database changes.
57+ - Comprehensive documentation for customization, installation,
58+ maintenance, and user guidance.
59+
60+ **Data Security, Privacy and Authorization**
61+
62+ - Your data remains on your servers.
63+ - You can choose if AI can access the data.
64+ - Can use HTTPS for security over the web.
65+ - Fine-grained authorization (ABAC, PEBAC) based on user and resource
66+ properties.
67+
68+ **Documentation and User Management**
69+
70+ - Users can sign up through the web interface or new user creation
71+ can be limited to admin users.
72+ - Can use an `external user database`_ (LDAP, password file)
73+ - Self-server password reset for users via email.
74+
75+ **Email Integration and Automation**
76+
77+ - Update issues via email with new messages and the abilility to
78+ change properties of issues (e.g. close an issue).
79+ - Secure email handling with features like TLS, APOP, IMAPS/OAUTH.
80+ - Optional auto-registration for email users.
81+ - Configurable nosy list for each issue controls email notifications.
82+ - Proper handling of email attachments and content types.
83+
84+ **Command-Line and API Access**
85+
86+ - Manage database interactively from the command line.
87+ - Automate modifications using standard shell scripting.
88+ - Python programs can use the Roundup Python API to manage/automate issues.
89+ - Sample scripts provided for various tasks.
90+
91+ **Remote Access Interfaces**
92+
93+ - `XMLRPC interface`_ for remote tracker access with basic
94+ HTTP authentication.
95+ - `RESTful API`_ accessible with basic HTTP authentication or optional JWT.
96+ - Configurable CORS support for third-party web pages.
97+ - Ability to generate and authenticate JSON Web Tokens (JWT).
98+
99+ .. _`auditors and reactors`: reference.html#auditor-or-reactor
100+ .. _`customize`: customizing.html
101+ .. _`external user database`: customizing.html#using-external-user-databases
102+ .. _`five included templates`: installation.html#choosing-your-template
103+ .. _`instant-gratifcation (demo) mode`:
104+ installation.html#for-the-really-impatient
105+ .. _`a Docker container`: installation.html#running-in-demo-mode-with-docker
145106.. _mysql: https://pypi.org/project/MySQL-python/
146107.. _postgresql: https://www.psycopg.org/
147- .. _`xmlrpc guide`: xmlrpc.html
148- .. _`rest guide`: rest.html
108+ .. _`restful api`: rest.html
109+ .. _`run in a container`: installation.html#docker-support
110+ .. _sqlite: https://www.sqlite.org/index.html
111+ .. _`track additional data`:
112+ customizing.html#adding-a-new-field-to-the-classic-schema
113+ .. _`through various methods`: installation.html#configure-a-web-interface
114+ .. _wizards:
115+ customizing.html#setting-up-a-wizard-or-druid-for-controlled-adding-of-issues
116+ .. _`xmlrpc interface`: xmlrpc.html
0 commit comments