Mercurial > p > roundup > code
diff doc/user_guide.txt @ 659:e429649ed124
More documentation cleanups.
- renamed .stx to .txt so they're identifiable as readable files.
- fixed FAQ and announcement formatting
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 13 Mar 2002 23:00:48 +0000 |
| parents | |
| children | c52122f38c9b 54333751e98d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/user_guide.txt Wed Mar 13 23:00:48 2002 +0000 @@ -0,0 +1,276 @@ +User Guide +========== + +Command Line Tool +----------------- + +Usage: ``roundup-admin [-i instance home] [-u login] [-c] <command> <arguments>`` + +Options: + +-i instance home specify the issue tracker "home directory" to administer +-u the ``user[:password]`` to use for commands +-c when outputting lists of data, comma-separate them + ++-----------------------------------------------------------------------------+ +| Command Help | ++=============+===============================================================+ +|commit |Usage: commit | +| |The changes made during an interactive session are not | +| |automatically written to the database - they must be committed | +| |using this command. | +| | | +| |One-off commands on the command-line are automatically | +| |committed if they are successful. | ++-------------+---------------------------------------------------------------+ +|create |Usage: create classname property=value ... | +| |This creates a new entry of the given class using the property | +| |name=value arguments provided on the command line after the | +| |"create" command. | ++-------------+---------------------------------------------------------------+ +|display |Usage: display designator | +| |This lists the properties and their associated values for the | +| |given node. | ++-------------+---------------------------------------------------------------+ +|export |Usage: export class[,class] destination dir | +| |This action exports the current data from the database into | +| |tab-separated-value files that are placed in the nominated | +| |destination | +| |directory. The journals are not exported. | ++-------------+---------------------------------------------------------------+ +|find |Usage: find classname propname=value ... | +| |Find the nodes of the given class with a given link property | +| |value. The | +| |value may be either the nodeid of the linked node, or its key | +| |value. | ++-------------+---------------------------------------------------------------+ +|get |Usage: get property designator[,designator]* | +| |Retrieves the property value of the nodes specified by the | +| |designators. | ++-------------+---------------------------------------------------------------+ +|help |Usage: help topic | +| |commands -- list commands | +| |x -- help specific to a command | +| |initopts -- init command options | +| |all -- all available help | ++-------------+---------------------------------------------------------------+ +|history |Usage: history designator | +| |Lists the journal entries for the node identified by the | +| |designator. | ++-------------+---------------------------------------------------------------+ +|import |Usage: import class file | +| |The file must define the same properties as the class | +| |(including having | +| |a "header" line with those property names.) The new nodes are | +| |added to | +| |the existing database - if you want to create a new database | +| |using the | +| |imported data, then create a new database (or, tediously, | +| |retire all | +| |the old data.) | ++-------------+---------------------------------------------------------------+ +|initialise |Usage: initialise [template [backend [admin password]]] | +| |The command will prompt for the instance home directory (if not| +| |supplied | +| |through INSTANCE HOME or the -i option. The template, backend | +| |and admin | +| |password may be specified on the command-line as arguments, in | +| |that | +| |order. | +| | | +| |See also initopts help. | ++-------------+---------------------------------------------------------------+ +|list |Usage: list classname [property] | +| |Lists all instances of the given class. If the property is not | +| |specified, the "label" property is used. The label property is| +| |tried | +| |in order: the key, "name", "title" and then the first property,| +| |alphabetically. | ++-------------+---------------------------------------------------------------+ +|retire |Usage: retire designator[,designator]* | +| |This action indicates that a particular node is not to be | +| |retrieved by | +| |the list or find commands, and its key value may be re-used. | ++-------------+---------------------------------------------------------------+ +|rollback |Usage: rollback | +| |The changes made during an interactive session are not | +| |automatically written to the database - they must be committed | +| |manually. This command undoes all those changes, so a commit | +| |immediately after would make no changes to the database. | ++-------------+---------------------------------------------------------------+ +|set |Usage: set designator[,designator]* propname=value ... | +| |Sets the property to the value for all designators given. | ++-------------+---------------------------------------------------------------+ +|specification|Usage: specification classname | +| |This lists the properties for a given class. | ++-------------+---------------------------------------------------------------+ +|table |Usage: table classname [property[,property]*] | +| |Lists all instances of the given class. If the properties are | +| |not | +| |specified, all properties are displayed. By default, the column| +| |widths | +| |are the width of the property names. The width may be | +| |explicitly defined | +| |by defining the property as "name:width". For example:: | +| | | +| | roundup> table priority id,name:10 | +| | Id Name | +| | 1 fatal-bug | +| | 2 bug | +| | 3 usability | +| | 4 feature | ++-------------+---------------------------------------------------------------+ + + +All commands (except help) require an instance specifier. This is just the path to +the roundup instance you're working with. A roundup instance is where roundup +keeps the database and configuration file that defines an issue tracker. It may be +thought of as the issue tracker's "home directory". It may be specified in the +environment variable ``ROUNDUP_INSTANCE`` or on the command line as "``-i instance``". + +A designator is a classname and a nodeid concatenated, eg. bug1, user10, ... +Property values are represented as strings in command arguments and in the printed +results: + +- Strings are, well, strings. +- Password values will display as their encoded value. +- Date values are printed in the full date format in the local time zone, + and accepted in the full format or any of the partial formats explained + below.:: + + Input of... Means... + "2000-04-17.03:45" 2000-04-17.08:45:00 + "2000-04-17" 2000-04-17.00:00:00 + "01-25" yyyy-01-25.00:00:00 + "08-13.22:13" yyyy-08-14.03:13:00 + "11-07.09:32:43" yyyy-11-07.14:32:43 + "14:25" yyyy-mm-dd.19:25:00 + "8:47:11" yyyy-mm-dd.13:47:11 + "." "right now" + +- Link values are printed as node designators. When given as an argument, + node designators and key strings are both accepted. +- Multilink values are printed as lists of node designators joined by + commas. When given as an argument, node designators and key strings are + both accepted; an empty string, a single node, or a list of nodes joined + by commas is accepted. + +When multiple nodes are specified to the roundup get or roundup set commands, the +specified properties are retrieved or set on all the listed nodes. When multiple +results are returned by the roundup get or roundup find commands, they are printed +one per line (default) or joined by commas (with the "``-c``" option). + +Where the command changes data, a login name/password is required. The login may +be specified as either "``name``" or "``name:password``". + +- ``ROUNDUP_LOGIN`` environment variable +- the "``-u``" command-line option + +If either the name or password is not supplied, they are obtained from the +command-line. + + +Web Interface +------------- + +Index views may be modified by the following arguments: + ++-----------+--------------------------------------------------------------+ +| :sort | sort by prop name, optionally preceeded with '-' | +| | to give descending or nothing for ascending sorting. | ++-----------+--------------------------------------------------------------+ +| :group | group by prop name, optionally preceeded with '-' or | +| | to sort in descending or nothing for ascending order. | ++-----------+--------------------------------------------------------------+ +| :filter | selects which props should be displayed in the filter | +| | section. Default is all. | ++-----------+--------------------------------------------------------------+ +| :columns | selects the columns that should be displayed. | +| | Default is all. | ++-----------+--------------------------------------------------------------+ +| propname | selects the values the node properties given by propname | +| | must have (very basic search/filter). | ++-----------+--------------------------------------------------------------+ + +Not sure what to put in here... + +E-Mail Gateway +-------------- + +Performing Actions +~~~~~~~~~~~~~~~~~~ + +The subject line of the incoming message is examined to determine whether the +message is an attempt to create a new item or to discuss an existing item. A +designator enclosed in square brackets is sought as the first thing on the +subject line (after skipping any "Fwd:" or "Re:" prefixes). +If an item designator (class name and id number) is found there, the newly +created "msg" node is added to the "messages" property for that item, and any +new "file" nodes are added to the "files" property for the item. +If just an item class name is found there, we attempt to create a new item of +that class with its "messages" property initialized to contain the new "msg" +node and its "files" property initialized to contain any new "file" nodes. + +Setting Properties +~~~~~~~~~~~~~~~~~~ + +The e-mail interface also provides a simple way to set properties on items. At +the end of the subject line, propname=value pairs can be specified in square +brackets, using the same conventions as for the roundup set shell command. +explanatory message given in the exception. + +Message content +~~~~~~~~~~~~~~~ + +Incoming messages are examined for multiple parts: + +* In a multipart/mixed message or part, each subpart is extracted and + examined. The text/plain subparts are assembled to form the textual body + of the message, to be stored in the file associated with a "msg" class + node. Any parts of other types are each stored in separate files and + given "file" class nodes that are linked to the "msg" node. +* In a multipart/alternative message or part, we look for a text/plain + subpart and ignore the other parts. + +Message summary +::::::::::::::: + +The "summary" property on message nodes is taken from the first non-quoting +section in the message body. The message body is divided into sections by blank +lines. Sections where the second and all subsequent lines begin with a ">" or +"|" character are considered "quoting sections". The first line of the first +non-quoting section becomes the summary of the message. + +Address handling +~~~~~~~~~~~~~~~~ + +All of the addresses in the To: and Cc: headers of the incoming message are +looked up among the user nodes, and the corresponding users are placed in the +"recipients" property on the new "msg" node. The address in the From: header +similarly determines the "author" property of the new "msg" node. The default +handling for addresses that don't have corresponding users is to create new +users with no passwords and a username equal to the address. (The web interface +does not permit logins for users with no passwords.) If we prefer to reject +mail from outside sources, we can simply register an auditor on the "user" +class that prevents the creation of user nodes with no passwords. + +Triggers +~~~~~~~~ + +Both cases may trigger detectors (in the first case we are calling the set() +method to add the message to the item's spool; in the second case we are +calling the create() method to create a new node). If an auditor raises an +exception, the original message is bounced back to the sender with the + +Nosy Lists +:::::::::: + +A standard detector is provided that watches for additions to the "messages" +property. When a new message is added, the detector sends it to all the users +on the "nosy" list for the item that are not already on the "recipients" list +of the message. Those users are then appended to the "recipients" property on +the message, so multiple copies of a message are never sent to the same user. +The journal recorded by the hyperdatabase on the "recipients" property then +provides a log of when the message was sent to whom. + +
