Mercurial > p > roundup > code
comparison doc/features.txt @ 8033:6cebbb42c883
docs: regroup feature list using GPT and update
Gave GPT 3.5 the original list of features annotated with the section
header when needed to understand feature context. Asked it to
recategorize.
Took it's output and moved some things around, edited, and added more
links.
Also added links to the wiki for OAUTH and Shibboleth extrnal user
databases to the customizing document section on external user
databases.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 11 Jun 2024 16:39:07 -0400 |
| parents | 4ed91247e8dc |
| children | b1ff8c0e3e1d |
comparison
equal
deleted
inserted
replaced
| 8032:ce1e65af97fb | 8033:6cebbb42c883 |
|---|---|
| 10 | 10 |
| 11 Roundup is an easy-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. 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 competition. |
| 14 | 14 |
| 15 *simple to try* | 15 **Installation and Setup** |
| 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 | 16 |
| 24 *simple to install* | 17 - Start using the software in `instant-gratifcation (demo) mode`_ with |
| 25 - basic installation (including web interface) takes about 30 minutes | 18 ``python demo.py`` or `a Docker container`_ in under 5 minutes. |
| 26 - supports embedded databases like sqlite_ and dbm so you don't | 19 - Choose from `five included templates`_ for your tracker. |
| 27 need a separate database like mysql_ or postgresql_ | 20 - `Customize`_ and use the demo as a template for your production tracker. |
| 28 - can be run in a container (Docker) | 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 | 29 |
| 30 *flexible* | 30 **Issue Tracking and Management** |
| 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 | 31 |
| 39 *simple to use* | 32 - Manage your issues your way. Handle bugs, features, milestones, |
| 40 - default trackers have a basic web interface usable on any device | 33 user feedback, fleet maintainance, office issues etc. |
| 41 - users may sign themselves up, there may be automatic signup for | 34 - Searches on specific properties (e.g. open issues with a high |
| 42 incoming email and users may handle their own password reset requests | 35 priorty) can be saved and reused or shared with outer users. |
| 43 - accessible through the web (html, REST or XMLRPC), email, | 36 - Full Text Search for quick searches across messages. |
| 44 command-line or Python programs | 37 - Keeps a detailed history of issue changes. |
| 45 - indexed Full Text Search (FTS) gives fast responses to searches across all | 38 - Issues become a mini mailing list to keep everyone informed. |
| 46 messages and indexed string properties | 39 - Email is a first class method for interacting with issues. |
| 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 | 40 |
| 53 *fast, scalable* | 41 **Scalability and Performance** |
| 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 | 42 |
| 62 *highly configurable* | 43 - Default trackers use simple HTML with low resource requirements. |
| 63 - web interface HTML is fully editable using TAL or jinja2 | 44 - Fast and scalable with sqlite, mysql, and postgresql backends. |
| 64 templating languages | 45 - Indexes are automatically configured. |
| 65 - database schema is fully editable (only the "user" class is required) | 46 - Supports full-text indexing engines (xapian, whoosh, SQLite, |
| 66 with a full set of data types (including dates and many-to-many relations) | 47 PostgreSQL) for large trackers. |
| 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 | 48 |
| 76 *private and self-hosted* | 49 **Customization** |
| 77 - your data on your servers | |
| 78 - used for AI training only if you want | |
| 79 - can be containerized or not | |
| 80 | 50 |
| 81 *documented* | 51 - The database schema can be updated to `track additional data`_. |
| 82 - documentation exists for installation, upgrading, maintenance, users | 52 - The web interface can be redesigned to fit your workflow. |
| 83 - samples are provided for all manner of configuration changes and | 53 - Extensible web interface with various features like `wizards`_, |
| 84 customisations | 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. | |
| 85 | 59 |
| 86 *web interface* | 60 **Data Security, Privacy and Authorization** |
| 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 | 61 |
| 105 *e-mail interface* | 62 - Your data remains on your servers. |
| 106 - may be set up using sendmail-like delivery alias, POP polling or mailbox | 63 - You can choose if AI can access the data. |
| 107 polling | 64 - Can use HTTPS for security over the web. |
| 108 - may auto-register users who send in mail and aren't known to Roundup | 65 - Fine-grained authorization (ABAC, PEBAC) based on user and resource |
| 109 - nosy list configuration controls how people are added and when messages | 66 properties. |
| 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 | 67 |
| 122 *command-line* | 68 **Documentation and User Management** |
| 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 | 69 |
| 130 *xmlrpc interface* | 70 - Users can sign up through the web interface or new user creation |
| 131 - simple remote tracker interface with basic HTTP authentication | 71 can be limited to admin users. |
| 132 available at the /xmlrpc endpoint. | 72 - Can use an `external user database`_ (LDAP, password file) |
| 133 - provides same access to tracker as roundup-admin, but based on | 73 - Self-server password reset for users via email. |
| 134 XMLRPC calls | |
| 135 - see the `xmlrpc guide`_ for more details basic and advanced clients etc. | |
| 136 | 74 |
| 137 *RESTful interface* | 75 **Email Integration and Automation** |
| 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 | 76 |
| 144 .. _sqlite: https://www.sqlite.org/index.html | 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 .. _mysql: https://pypi.org/project/MySQL-python/ | 106 .. _mysql: https://pypi.org/project/MySQL-python/ |
| 146 .. _postgresql: https://www.psycopg.org/ | 107 .. _postgresql: https://www.psycopg.org/ |
| 147 .. _`xmlrpc guide`: xmlrpc.html | 108 .. _`restful api`: rest.html |
| 148 .. _`rest guide`: 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 |
