annotate doc/features.txt @ 3682:193f316dbbe9

More transitive-property support. - Implemented transitive properties in sort and group specs. Sort/group specs can now be lists of specs. - All regression tests except for one metakit backend test related to metakit having no representation of NULL pass - Fixed more PEP 8 whitespace peeves (and probably introduced some new ones :-) - Moved Proptree from support.py to hyperdb.py due to circular import - Moved some proptree-specific methods from Class to Proptree - Added a test for sorting by ids -> should be numeric sort (which now really works for all backends) - Added "required" attribute to all property classes in hyperdb (e.g., String, Link,...), see Feature Requests [SF#539081] -> factored common stuff to _Type. Note that I also converted to a new-style class when I was at it. Bad: The repr changes for new-style classes which made some SQL backends break (!) because the repr of Multilink is used in the schema storage. Fixed the repr to be independent of the class type. - Added get_required_props to Class. Todo: should also automagically make the key property required... - Add a sort_repr method to property classes. This defines the sort-order. Individual backends may use diffent routines if the outcome is the same. This one has a special case for id properties to make the sorting numeric. Using these methods isn't mandatory in backends as long as the sort-order is correct. - Multilink sorting takes orderprop into account. It used to sort by ids. You can restore the old behaviour by specifying id as the orderprop of the Multilink if you really need that. - If somebody specified a Link or Multilink as orderprop, we sort by labelprop of that class -- not transitively by orderprop. I've resited the tempation to implement recursive orderprop here: There could even be loops if several classes specify a Link or Multilink as the orderprop... - Fixed a bug in Metakit-Backend: When sorting by Links, the backend would do a natural join to the Link class. It would rename the "id" attribute before joining but *not* all the other attributes of the joined class. So in one test-case we had a name-clash with priority.name and status.name when sorting *and* grouping by these attributes. Depending on the order of joining this would produce a name-clash with broken sort-results (and broken display if the original class has an attribute that clashes). I'm now doing the sorting of Links in the generic filter method for the metakit backend. I've left the dead code in the metakit-backend since correctly implementing this in the backend will probably be more efficient. - updated doc/design.html with the new docstring of filter.
author Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
date Mon, 21 Aug 2006 12:19:48 +0000
parents f0432dc11c2d
children fdc9eb78d708
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 ================
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 Roundup Features
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 ================
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 Roundup is a simple-to-use and -install issue-tracking system with
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 web, e-mail and command-line interfaces. It is based on the winning design
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 from Ka-Ping Yee in the Software Carpentry "Track" design competition.
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
9 *simple to install*
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
10 - installation (including web interface) takes about 30 minutes
2660
2ebeb53eb336 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2259
diff changeset
11 - instant-gratification ``python demo.py`` :)
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
12 - two templates included in the distribution for you to base your tracker on
2660
2ebeb53eb336 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2259
diff changeset
13 - play with the demo, customise it and then use *it* as the template for
2ebeb53eb336 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2259
diff changeset
14 your production tracker
3533
f0432dc11c2d *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 3526
diff changeset
15 - requires *no* additional support software - python (2.3+) is
2223
9b447ac40be3 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2138
diff changeset
16 enough to get you going
2138
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
17 - easy to set up higher-performance storage backends like sqlite_,
2258
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
18 metakit_, mysql_ and postgresql_
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 *simple to use*
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 - accessible through the web, email, command-line or Python programs
740
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
22 - may be used to track bugs, features, user feedback, sales opportunities,
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
23 milestones, ...
2259
f47ab53269cd *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2258
diff changeset
24 - automatically keeps a full history of changes to issues with
f47ab53269cd *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2258
diff changeset
25 configurable verbosity and easy access to information about who created
f47ab53269cd *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2258
diff changeset
26 or last modified *any* item in the database
1649
6d392197daa3 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 1228
diff changeset
27 - issues have their own mini mailing list (nosy list)
2258
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
28 - users may sign themselves up, there may be automatic signup for
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
29 incoming email and users may handle their own password reset requests
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
31 *highly configurable*
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
32 - web interface HTML is fully editable
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
33 - database schema is also fully editable (only the "user" class is required)
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
34 with a full set of data types (including dates and many-to-many relations)
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
35 across all storages available
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
36 - customised automatic auditors and reactors may be written that perform
2138
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
37 actions before and after changes are made to entries in the database,
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
38 or may veto the creation or modification of items int he database
2258
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
39 - samples are provided for all manner of configuration changes and
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
40 customisations
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
41
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
42 *fast, scalable*
2138
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
43 - with the sqlite, metakit, mysql and postgresql backends, roundup is
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
44 also fast and scalable, easily handling thousands of issues and users
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
45 with decent response times
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
46 - database indexes are automatically added for those backends that
f76d1642014a doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents: 1649
diff changeset
47 support them (sqlite, metakit, mysql and postgresql)
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
48 - indexed text searching giving fast responses to searches across all
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
49 messages and indexed string properties
3526
9b99fff18683 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2660
diff changeset
50 - support for the Xapian full-text indexing engine for large trackers
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
51
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
52 *documented*
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
53 - documentation exists for installation, upgrading, maintenance, users and
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
54 customisation
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56 *web interface*
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
57 - fully editable interfaces for listing and display of items
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
58 - extendable to include wizards, parent/meta bug displays, ...
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 - differentiates between anonymous, known and admin users
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 - may be set up to require login, and may also only allow admin users
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 to register new users
1649
6d392197daa3 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 1228
diff changeset
62 - authentication of user registration and user-driven password resetting
6d392197daa3 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 1228
diff changeset
63 using email and one time keys
740
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
64 - may be run through CGI as a normal cgi script, as a stand-alone
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
65 web server, or through Zope
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
66 - searching may be performed using many constraints, including a full-text
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
67 search of messages attached to issues
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
68 - file attachments (added through the web or email) are served up with the
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
69 correct content-type and filename
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
70 - email change messages generated by roundup appear to be sent by the
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
71 person who made the change, but responses will go back through the nosy
741
b48a19a88b65 Cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 740
diff changeset
72 list by default
2258
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
73 - flexible access control built around Permissions and Roles with assigned
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
74 Permissions
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
75 - generates valid HTML4 or XHTML
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
76 - detects concurrent user changes
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
77 - saving and editing of user-defined queries which may optionally be
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
78 shared with other users
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79
741
b48a19a88b65 Cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 740
diff changeset
80 *e-mail interface*
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 - may be set up using sendmail-like delivery alias, POP polling or mailbox
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 polling
740
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
83 - may auto-register users who send in mail and aren't known to roundup
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 - nosy list configuration controls how people are added and when messages
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 are sent to the list
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 - auto-filing of "unformatted" messages into a particular class
740
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
87 - e-mail attachments are handled sanely, being attached to the issue they're
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
88 intended for, and forwarded on to the nosy list
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
89 - sane handling of content-type and content-encoding of messages (text/plain
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
90 preferred in all situations)
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
91 - email packages that display threading will show issue messages correctly
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
92 threaded
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
93 - users may send in messages from multiple addresses and be associated
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
94 with the same roundup username
1649
6d392197daa3 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 1228
diff changeset
95 - built-in security features like TLS and APOP
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 *command-line*
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98 - may be used to interactively manage roundup databases
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 - may be scripted using standard shell scripting
740
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
100 - roundup's API may also be used by other Python programs - a sample is
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
101 provided that runs once a day and emails people their assigned issues
1649
6d392197daa3 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 1228
diff changeset
102 - a variety of sample shell scripts are provided (weekly reports, issue
6d392197daa3 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 1228
diff changeset
103 generation, ...)
739
c612747b1126 Added a Features doc
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
104
1228
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
105 .. _sqlite: http://www.hwaci.com/sw/sqlite/
Richard Jones <richard@users.sourceforge.net>
parents: 742
diff changeset
106 .. _metakit: http://www.equi4.com/metakit/
2258
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
107 .. _mysql: http://sourceforge.net/projects/mysql-python
c8f426142289 doc changes
Richard Jones <richard@users.sourceforge.net>
parents: 2223
diff changeset
108 .. _postgresql: http://initd.org/software/initd/psycopg
740
2d50d6a17617 more marketing ;)
Richard Jones <richard@users.sourceforge.net>
parents: 739
diff changeset
109

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