Skip to content

Commit c10b84b

Browse files
committed
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.
1 parent a73f695 commit c10b84b

File tree

2 files changed

+109
-134
lines changed

2 files changed

+109
-134
lines changed

doc/customizing.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,11 @@ So you could reimplement this as something like::
10341034
username = self.db.user.get(self.userid, 'username')
10351035
# now verify the password supplied against the LDAP store
10361036

1037+
Other External Databases
1038+
~~~~~~~~~~~~~~~~~~~~~~~~
1039+
1040+
See examples for `Shibboleth`_ and info about using `OAUTH`_ in the
1041+
Roundup Wiki.
10371042

10381043
Changes to Tracker Behaviour
10391044
----------------------------
@@ -2438,11 +2443,13 @@ Even more examples of customisation have been contributed by
24382443
users. They can be found on the `wiki
24392444
<https://wiki.roundup-tracker.org/CustomisationExamples>`_.
24402445

2446+
.. _change the rate limiting method: rest.html#creating-custom-rate-limits
24412447
.. _`design documentation`: design.html
24422448
.. _`developer's guide`: developers.html
2443-
.. _`rest interface documentation`: rest.html#programming-the-rest-api
2444-
.. _change the rate limiting method: rest.html#creating-custom-rate-limits
24452449
.. _`directions in the rest interface documentation`: rest.html#enabling-the-rest-api
2450+
.. _oauth: https://wiki.roundup-tracker.org/OauthAuthentication
2451+
.. _`rest interface documentation`: rest.html#programming-the-rest-api
2452+
.. _`shibboleth`: https://wiki.roundup-tracker.org/ShibbolethLogin
24462453
.. _`xmlrpc interface documentation`: xmlrpc.html#through-roundup
24472454
.. _`zxcvbn`: https://github.com/dwolfhub/zxcvbn-python
24482455

doc/features.txt

Lines changed: 100 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -12,137 +12,105 @@ Roundup is an easy-to-use and -install issue-tracking system with
1212
web, e-mail and command-line interfaces. Based on the winning design
1313
from 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

Comments
 (0)