@@ -12,137 +12,105 @@ Roundup is an easy-to-use and -install issue-tracking system with
12
12
web, e-mail and command-line interfaces. Based on the winning design
13
13
from Ka-Ping Yee in the :index:`Software Carpentry` "Track" design competition.
14
14
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
145
106
.. _mysql: https://pypi.org/project/MySQL-python/
146
107
.. _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