comparison doc/features.txt @ 8416:370689471a08 issue2550923_computed_property

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

Roundup Issue Tracker: http://roundup-tracker.org/