Mercurial > p > roundup > code
diff 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 |
line wrap: on
line diff
--- a/doc/features.txt Sun Nov 05 11:38:18 2023 -0500 +++ b/doc/features.txt Sun Aug 17 16:12:25 2025 -0400 @@ -8,128 +8,118 @@ Roundup Features ================ -Roundup is a simple-to-use and -install issue-tracking system with -web, e-mail and command-line interfaces. It is based on the winning design -from Ka-Ping Yee in the :index:`Software Carpentry` "Track" design competition. +Roundup is an easy-to-use and -install issue-tracking system with +web, e-mail and command-line interfaces. Based on the winning design +from Ka-Ping Yee in the :index:`Software Carpentry` "Track" design +competition. -*simple to install* - - installation (including web interface) takes about 30 minutes - - instant-gratification ``python demo.py`` takes less than 5 minutes :) - - five templates included in the distribution for you to base your tracker on - - play with the demo, customise it and then use *it* as the template for - your production tracker - - requires *no* additional support software - python (2.7 or 3.6+) is - enough to get you going - - supports higher-performance storage backends like sqlite_, - mysql_ and postgresql_ - -*simple to use* - - accessible through the web (html, REST or XMLRPC), email, - command-line or Python programs - - may be used to track bugs, features, user feedback, sales opportunities, - milestones, ... - - automatically keeps a full history of changes to issues with - configurable verbosity and easy access to information about who created - or last modified *any* item in the database - - issues have their own mini mailing list (nosy list) - - users may sign themselves up, there may be automatic signup for - incoming email and users may handle their own password reset requests +**Installation and Setup** -*highly configurable* - - web interface HTML is fully editable - - database schema is also fully editable (only the "user" class is required) - with a full set of data types (including dates and many-to-many relations) - across all storages available - - authorization is fine grained and can be based on the properties of - a user and resource (`ABAC, PBAC (Attribute or Policy/Purpose Based Access - Control <https://en.wikipedia.org/wiki/Attribute-based_access_control>`_)) - - customised automatic auditors and reactors may be written that perform - actions before and after changes are made to entries in the database, - or may veto the creation or modification of items in the database - - samples are provided for all manner of configuration changes and - customisations +- Start using the software in `instant-gratification (demo) mode`_ with + ``python demo.py`` or `a Docker container`_ in under 5 minutes. +- Choose from `five included templates`_ for your tracker. +- `Customize`_ and use the demo as a template for your production tracker. +- No need for additional support software, just Python (3.7+) + to get started. +- Basic installation (including a web interface) takes about 30 minutes. +- Supports embedded databases like `SQLite`_ and dbm. Upgradable + to databases like `MySQL`_ or `PostgreSQL`_ if needed. +- Can be run in a container like Docker or kubernetes. +- Deploy in your network as a standalone web server or `through + various methods`_ like WSGI, FastCGI, plain CGI, etc. +- Essential tracking features depend on the Python standard + library. Supplementary packages from PyPI are optional and can be + tailored to fit your unique threat model and security needs. + +**Issue Tracking and Management** -*fast, scalable* - - with the sqlite, mysql and postgresql backends, roundup is - also fast and scalable, easily handling thousands of issues and users - with decent response times - - database indexes are automatically added for those backends that - support them (sqlite, mysql and postgresql) - - indexed full text search (FTS) gives fast responses to searches across all - messages and indexed string properties - - support for the Xapian, Whoosh, sqlite or postgres full-text - indexing engines for large trackers +- Manage your issues your way. Handle bugs, features, milestones, + user feedback, fleet maintenance, office issues etc. +- Issues become a mini mailing list to keep everyone informed. +- Searches on specific properties (e.g. open issues with a high + priority) can be saved and reused or shared with other users. +- Full Text Search for quick searches across messages. +- Keeps a detailed history of issue changes. +- Email is a first class method for interacting with issues. -*documented* - - documentation exists for installation, upgrading, maintenance, users and - customisation +**Scalability and Performance** + +- Default trackers use simple HTML with low resource requirements. +- Fast and scalable with sqlite, mysql, and postgresql backends. +- Indexes are automatically configured. +- Supports full-text indexing engines (xapian, whoosh, SQLite, + PostgreSQL) for large trackers. + +**Customization** -*web interface* - - fully editable interfaces for listing and display of items - - extendable to include wizards, parent/meta bug displays, ... - - differentiates between anonymous, known and admin users - - may be set up to require login, and may also only allow admin users - to register new users - - authentication of user registration and user-driven password resetting - using email and one time keys - - may be run using WSGI or through CGI as a normal cgi script, as a - stand-alone web server, under mod_wsgi (mod_python is deprecated) - or through Zope - - searching may be performed using many constraints, including a full-text - search of messages attached to issues - - file attachments (added through the web or email) are served up with the - correct content-type and filename - - email change messages generated by roundup appear to be sent by the - person who made the change, but responses will go back through the nosy - list by default - - flexible access control built around Permissions and Roles with assigned - Permissions - - generates valid HTML4 or XHTML - - detects concurrent user changes - - saving and editing of user-defined queries which may optionally be - shared with other users +- The database schema can be updated to `track additional data`_. +- The web interface can be redesigned to fit your workflow. +- Extensible web interface with various features like `wizards`_, + bug displays, etc. +- Add business rules using `auditors and reactors`_ for actions before + and after database changes. +- Comprehensive documentation for customization, installation, + maintenance, and user guidance. + +**Data Security, Privacy and Authorization** + +- Your data remains on your servers. +- You can choose if AI can access the data. +- Can use HTTPS for security over the web. +- Fine-grained authorization (`ABAC`_, `ReBAC`_, `RBAC`_) based on + user, resource, and external properties. + +.. _`ABAC`: https://en.wikipedia.org/wiki/Attribute-based_access_control +.. _`ReBAC`: https://en.wikipedia.org/wiki/Relationship-based_access_control +.. _`RBAC`: https://en.wikipedia.org/wiki/Role-based_access_control + +**Documentation and User Management** + +- Users can sign up through the web interface or new user creation + can be limited to admin users. +- Can use an `external user database`_ (LDAP, password file) +- Self-serve password reset for users via email. + +**Email Integration and Automation** -*e-mail interface* - - may be set up using sendmail-like delivery alias, POP polling or mailbox - polling - - may auto-register users who send in mail and aren't known to roundup - - nosy list configuration controls how people are added and when messages - are sent to the list - - auto-filing of "unformatted" messages into a particular class - - e-mail attachments are handled sanely, being attached to the issue they're - intended for, and forwarded on to the nosy list - - sane handling of content-type and content-encoding of messages (text/plain - preferred in all situations) - - email packages that display threading will show issue messages correctly - threaded - - users may send in messages from multiple addresses and be associated - with the same roundup username - - built-in security features like TLS and APOP +- Update issues via email with new messages and the ability to + change properties of issues (e.g. close an issue). +- Secure email handling with features like TLS, APOP, IMAPS/OAUTH. +- Optional auto-registration for email users. +- Configurable nosy list for each issue controls email notifications. +- Proper handling of email attachments and content types. + +**Command-Line and API Access** + +- Manage database interactively from the command line. +- Automate modifications using standard shell scripting. +- Python programs can use the Roundup Python API to manage/automate issues. +- Sample scripts provided for various tasks. -*command-line* - - may be used to interactively manage roundup databases - - may be scripted using standard shell scripting - - roundup's API may also be used by other Python programs - a sample is - provided that runs once a day and emails people their assigned issues - - a variety of sample shell scripts are provided (weekly reports, issue - generation, ...) +**Remote Access Interfaces** -*xmlrpc interface* - - simple remote tracker interface with basic HTTP authentication - available at the /xmlrpc endpoint. - - provides same access to tracker as roundup-admin, but based on - XMLRPC calls - - see the `xmlrpc guide`_ for more details basic and advanced clients etc. +- `RESTful API`_ accessible with basic HTTP authentication or optional JWT. +- `XMLRPC interface`_ for remote tracker access with basic + HTTP authentication. +- Configurable CORS support for third-party web pages. +- Ability to `generate and authenticate JSON Web Tokens (JWT) + <rest.html#changing-access-roles-with-json-web-tokens>`_. -*RESTful interface* - - accessible using basic HTTP authentication at /rest starting point - - able to be extended with new endpoints - - authentication can be done using JSON Web Tokens (JWT) - - CORS support for use by third party web pages. - - see the `rest guide`_ for details. - -.. _sqlite: https://www.sqlite.org/index.html +.. _`auditors and reactors`: reference.html#auditor-or-reactor +.. _`customize`: customizing.html +.. _`external user database`: customizing.html#using-external-user-databases +.. _`five included templates`: installation.html#choosing-your-template +.. _`instant-gratification (demo) mode`: + installation.html#for-the-really-impatient +.. _`a Docker container`: installation.html#running-in-demo-mode-with-docker .. _mysql: https://pypi.org/project/MySQL-python/ .. _postgresql: https://www.psycopg.org/ -.. _`xmlrpc guide`: xmlrpc.html -.. _`rest guide`: rest.html +.. _`restful api`: rest.html +.. _`run in a container`: installation.html#docker-support +.. _sqlite: https://www.sqlite.org/index.html +.. _`track additional data`: + customizing.html#adding-a-new-field-to-the-classic-schema +.. _`through various methods`: installation.html#configure-a-web-interface +.. _wizards: + customizing.html#setting-up-a-wizard-or-druid-for-controlled-adding-of-issues +.. _`xmlrpc interface`: xmlrpc.html
