Edgewall Software

Changes between Version 54 and Version 86 of TracTickets


Ignore:
Timestamp:
(multiple changes)
Author:
(multiple changes)
Comment:
(multiple changes)

Legend:

Unmodified
Added
Removed
Modified
  • TracTickets

    v54 v86  
     1= The Trac Ticket System
     2[[TracGuideToc]]
    13[[TranslatedPages]]
    24
    3 = The Trac Ticket System =
    4 [[TracGuideToc]]
     5As the central project management element of Trac, tickets can be used for '''project tasks''', '''feature requests''', '''bug reports''' and '''software support issues''', among others.
    56
    6 The Trac ticket database provides simple but effective tracking of issues and bugs within a project.
     7As with the TracWiki, this subsystem has been designed to make user contribution and participation as simple as possible. Tickets can be edited, annotated, assigned, prioritized and discussed.
    78
    8 As the central project management element of Trac, tickets are used for '''project tasks''', '''feature requests''', '''bug reports''' and '''software support issues'''.
     9[=#edit-permissions]
     10The default installation doesn't permit to non-authenticated users ("anonymous" users) to change anything, even to comment on an issue, for obvious spam prevention reasons. Check the local contributing policy, or contact your local Trac administrator.
    911
    10 As with the TracWiki, this subsystem has been designed with the goal of making user contribution and participation as simple as possible. It should be as easy as possible to report bugs, ask questions and suggest improvements.
     12== Ticket Fields
    1113
    12 An issue is assigned to a person who must resolve it or reassign the ticket to someone else.
    13 All tickets can be edited, annotated, assigned, prioritized and discussed at any time.
     14A ticket contains the following information:
    1415
    15 == Ticket Fields ==
     16 * '''Summary''' — Simple text without WikiFormatting.
     17 * '''Description''' — The body of the ticket. Accepts WikiFormatting.
     18 * '''Reporter''' — The author of the ticket.
     19 * '''Type''' — The default types are `defect`, `enhancement` and `task`.
     20 * '''Component''' — The project module or subsystem that this ticket concerns.
     21 * '''Version''' — Version of the project that this ticket pertains to.
     22 * '''Keywords''' — Useful for searching and report generation.
     23 * '''Priority''' — The default priorities are `trivial`, `minor`, `major`, `critical` and `blocker`. A dropdown list when multiple priorities are defined.
     24 * '''Severity''' — Similar to Priority, but the distinction may be useful for some projects. No severities are defined by default, therefore the field will be hidden from the ticket form.
     25 * '''Milestone''' — Milestone in which the ticket will be resolved. A dropdown list.
     26 * '''Assigned to/Owner''' — Principal person responsible for handling the issue.
     27 * '''Cc''' — A comma-separated list of other users or email addresses to notify when changes are made to a ticket.
     28 * '''Resolution''' — Reason why a ticket was closed. Default values are `fixed`, `invalid`, `wontfix`, `duplicate`, `worksforme`.
     29 * '''Status''' — The statuses are defined in the [TracWorkflow#BasicTicketWorkflowCustomization ticket workflow]. For the default workflow the statuses are `new`, `assigned`, `accepted`, `closed` and `reopened`.
    1630
    17 A  ticket contains the following information attributes:
    18  
    19  * '''Reporter''' — The author of the ticket.
    20  * '''Type''' — The nature of the ticket (for example, defect or enhancement request)
     31'''Notes:'''
     32 - The type, [trac:TicketComponent component], [TracRoadmap milestone], version, priority, severity fields and resolution can be managed using [TracAdmin trac-admin] or !WebAdmin.
    2133
    22  * '''Component''' — The project module or subsystem this ticket concerns.
    23  * '''Version''' — Version of the project that this ticket pertains to.
    24  * '''Keywords''' — Keywords that a ticket is marked with.  Useful for searching and report generation.
     34== Changing and Commenting Tickets
    2535
    26  * '''Priority''' — The importance of this issue, ranging from ''trivial'' to ''blocker''.
    27  * '''Milestone''' — When this issue should be resolved at the latest.
    28  * '''Assigned to/Owner''' — Principal person responsible for handling the issue.
    29  * '''Cc''' — A comma-separated list of other users or E-Mail addresses to notify. ''Note that this does not imply responsiblity or any other policy.''
    30  
    31  * '''Resolution''' — Reason for why a ticket was closed. One of {{{fixed}}}, {{{invalid}}}, {{{wontfix}}}, {{{duplicate}}}, {{{worksforme}}}.
    32  * '''Status''' — What is the current status? One of {{{new}}}, {{{assigned}}}, {{{closed}}}, {{{reopened}}}.
    33  * '''Summary''' — A brief description summarizing the problem or issue.
    34  * '''Description''' — The body of the ticket. A good description should be specific, descriptive and to the point.
     36With appropriate permissions, tickets can be commented and ticket properties changed. When viewing a ticket, the history of changes will appear below the ticket properties box.
    3537
    36 '''Note:''' Versions of Trac prior to 0.9 did not have the ''type'' field, but instead provided a ''severity'' field and different default values for the ''priority'' field. This change was done to simplify the ticket model by removing the somewhat blurry distinction between ''priority'' and ''severity''. However, the old model is still available if you prefer it: just add/modify the default values of the ''priority'' and ''severity'', and optionally hide the ''type'' field by removing all the possible values through [wiki:TracAdmin trac-admin].
     38By default an authenticated user can edit their own ticket comments. Users with `TICKET_EDIT_COMMENT` can edit any comment.
    3739
    38 '''Note:''' the [trac:TicketTypes type], [trac:TicketComponent component], version, priority and severity fields can be managed with [wiki:TracAdmin trac-admin] or with the [trac:WebAdmin WebAdmin] plugin.
     40Comment editing is meant for making small corrections to comments, like fixing formatting or spelling errors. For major edits, you should be adding a new comment instead. Editing a comment will not produce a new entry on [/timeline], while entering a new comment or other changes will do.
    3941
    40 '''Note:''' Description of the builtin ''priority'' values is available at [trac:TicketTypes#Whyistheseverityfieldgone TicketTypes]
     42All edits (field changes, new comments, comment edits) update the "last changed" time of the ticket.
    4143
    42 == Changing and Commenting Tickets ==
     44'''Note:'''
     45 - TracLinks and WikiFormatting can be used in the ticket description and comments. Use TracLinks to refer to other issues, changesets and files.
    4346
    44 Once a ticket has been entered into Trac, you can at any time change the
    45 information by '''annotating''' the bug. This means changes and comments to
    46 the ticket are logged as a part of the ticket itself.
     47 - See TracNotification for how to configure email notifications on ticket changes.
    4748
    48 When viewing a ticket, the history of changes will appear below the main ticket area.
     49 - See TracWorkflow for information about the state transitions (ticket lifecycle), and customization of the workflow.
    4950
    50 ''In the Trac project, we use ticket comments to discuss issues and tasks. This makes
    51 understanding the motivation behind a design- or implementation choice easier,
    52 when returning to it later.''
     51== Hiding Fields
    5352
    54 '''Note:''' An important feature is being able to use TracLinks and
    55 WikiFormatting in ticket descriptions and comments. Use TracLinks to refer to
    56 other issues, changesets or files to make your ticket more specific and easier
    57 to understand.
     53Many of the default ticket fields can be hidden from the ticket web interface by removing all the possible values through the !WebAdmin or using [TracAdmin trac-admin]. This only applies to drop-down lists: ''type'', ''priority'', ''severity'', ''component'', ''version'' and ''milestone''.
    5854
    59 '''Note:''' See TracNotification for how to configure email notifications of ticket changes.
     55== Adding Custom Fields
    6056
    61 '''Note:''' See TracWorkflow for information about the state transitions (ticket lifecycle), and how this workflow can be customized.
     57Trac lets you add custom ticket fields. See TracTicketsCustomFields for more information.
    6258
    63 == Default Values for Drop-Down Fields ==
     59== Default Values for Drop-Down Fields
    6460
    65 The option selected by default for the various drop-down fields can be set in [wiki:TracIni trac.ini], in the `[ticket]` section:
     61The option selected by default for the various drop-down fields can be set in [TracIni trac.ini]. Refer to the values prefixed with `default_` in the [[TracIni#ticket-section|"[ticket]"]] section. The default value of several fields can also be set through the !WebAdmin.
    6662
    67  * `default_component`: Name of the component selected by default
    68  * `default_milestone`: Name of the default milestone
    69  * `default_priority`: Default priority value
    70  * `default_severity`: Default severity value
    71  * `default_type`: Default ticket type
    72  * `default_version`: Name of the default version
    73  * `default_owner`: Name of the default owner, ''if no owner for the component has been set''
     63If any of these options are omitted, the default value will either be the first in the list, or an empty value when allowed. The [[TracIni#ticket-allowed_empty_fields-option|allowed_empty_fields]] option determines which fields may have an empty value.
    7464
    75 If any of these options are omitted, the default value will either be the first in the list, or an empty value, depending on whether the field in question is required to be set.  Some of these can be chosen through the [trac:WebAdmin WebAdmin] plugin in the "Ticket System" section (others in the "trac.ini" section).  The default owner for a ticket will be the component owner, if that is set, or `default_owner`, if not.
     65== Assign-to as Drop-Down List
    7666
     67If the list of possible ticket owners is finite, you can change the ''assign-to'' ticket field from a text input to a drop-down list. This is done by setting the `restrict_owner` option of the `[ticket]` section in [TracIni trac.ini] to `true`. In that case, Trac will populate the list with all users who **have an authenticated session** and possess the `TICKET_MODIFY` [TracPermissions permissions].
    7768
    78 == Hiding Fields and Adding Custom Fields ==
     69An authenticated session will be created the first time a user authenticates with the project. You can manually add an authenticated session using the ["TracAdmin#?session add" trac-admin] `session add` command. The `:1` suffix on the session id (i.e. username) is the key to creating an authenticated session:
     70{{{#!sh
     71trac-admin /path/to/projenv session add <sid>:1 [name] [email]
     72}}}
    7973
    80 Many of the default ticket fields can be hidden from the ticket web interface simply by removing all the possible values through [wiki:TracAdmin trac-admin]. This of course only applies to drop-down fields, such as ''type'', ''priority'', ''severity'', ''component'', ''version'' and ''milestone''.
     74You may find the dropdown list is //overpopulated// with users that are no longer active in the project. Revoking authentication privileges will not remove the session data that is used to populate the dropdown list. The [TracAdmin trac-admin] command can be used to list and remove sessions:
    8175
    82 Trac also lets you add your own custom ticket fields. See TracTicketsCustomFields for more information.
     76 - List all sessions:
     77{{{#!sh
     78trac-admin /path/to/projenv session list
     79}}}
     80 - Remove a session:
     81{{{#!sh
     82trac-admin /path/to/projenv session delete SID
     83}}}
    8384
     85Alternatively, you can just revoke `TICKET_MODIFY` from users that you don't want to be included in the list. However, that will not be possible if you've granted `TICKET_MODIFY` to all //anonymous// or //authenticated// users.
    8486
    85 == Assign-to as Drop-Down List ==
     87'''Notes:'''
     88 - If you need more flexibility, then use subclass `ConfigurableTicketWorkflow` and override the `get_allowed_owners` method (see [trac:#12807 Trac ticket 12807]).
    8689
    87 If the list of possible ticket owners is finite, you can change the ''assign-to'' ticket field from a text input to a drop-down list. This is done by setting the `restrict_owner` option of the `[ticket]` section in [wiki:TracIni trac.ini] to “true”. In that case, Trac will use the list of all users who have accessed the project to populate the drop-down field.
     90 - Activating this option may cause some performance degradation. Read more about this in the [trac:TracPerformance#Configuration Trac performance] page.
    8891
    89 To appear in the dropdown list, a user needs be registered with the project, ''i.e.'' a user session should exist in the database. Such an entry is automatically created in the database the first time the user submits a change in the project, for example when editing the user's details in the ''Settings'' page, or simply by authenticating if the user has a login. Also, the user must have `TICKET_MODIFY` [TracPermissions permissions].
     92== Preset Values for New Tickets
    9093
    91 '''Note:''' See [http://pacopablo.com/wiki/pacopablo/blog/set-assign-to-drop-down Populating Assign To Drop Down] on how to add user entries at database level
     94To create a link to the new-ticket form filled with preset values, you need to call the `/newticket?` URL with `variable=value` separated by `&`. Possible variables are:
    9295
    93 '''Note 2:''' If you need serious flexibility and aren't afraid of a little plugin coding of your own, see [http://trac-hacks.org/wiki/FlexibleAssignToPlugin FlexibleAssignTo] (disclosure: I'm the author)
     96 * '''type''' — The type droplist.
     97 * '''reporter''' — Name or email of the reporter.
     98 * '''summary''' — Summary line for the ticket.
     99 * '''description''' — Long description of the ticket.
     100 * '''component''' — The component dropdown list.
     101 * '''version''' — The version dropdown list.
     102 * '''severity''' — The severity dropdown list.
     103 * '''keywords''' — The keywords or tags.
     104 * '''priority''' — The priority dropdown list.
     105 * '''milestone''' — The milestone dropdown list.
     106 * '''cc''' — The list of emails for notifying about the ticket change.
    94107
    95 '''Note 3:''' Activating this option may cause some performance degradation, read more about this in the [trac:TracPerformance#Configuration Trac performance] page.
     108Example: `[/newticket?summary=Compile%20Error&version=1.0&component=gui]`
    96109
    97 == Preset Values for New Tickets ==
     110To set the ticket owner the workflow action may also need to be selected. For the [TracWorkflow#TicketCreateAction default workflow], the //create and assign// action can be selected with `action=create_and_assign` and the owner specified by assigning `action_create_and_assign_reassign_owner`. Alternatively, you could avoid needing to select the action by using the [TracWorkflow#BasicTicketWorkflowCustomization default attribute] to make //create and assign// the default action.
    98111
    99 To create a link to the new-ticket form filled with preset values, you need to call the `/newticket?` URL with variable=value separated by &.
     112For other custom workflow actions, determine the variable names by inspecting the `name` attribute of the //action// radio button and the //owner// input or select element.
    100113
    101 Possible variables are :
     114== Deleting Tickets #deleter
    102115
    103  * '''type''' — The type droplist
    104  * '''reporter''' — Name or email of the reporter
    105  * '''summary''' — Summary line for the ticket
    106  * '''description''' — Long description of the ticket
    107  * '''component''' — The component droplist
    108  * '''version''' — The version droplist
    109  * '''severity''' — The severity droplist
    110  * '''keywords''' — The keywords
    111  * '''priority''' — The priority droplist
    112  * '''milestone''' — The milestone droplist
    113  * '''owner''' — The person responsible for the ticket
    114  * '''cc''' — The list of emails for notifying about the ticket change
     116Ticket delete and ticket change delete functions are enabled through an optional component. To enable the functionality edit the [TracIni#components-section "[components]"] section of TracIni:
     117{{{#!ini
     118[components]
     119tracopt.ticket.deleter.* = enabled
     120}}}
    115121
    116 '''Example:''' ''/trac/newticket?summary=Compile%20Error&version=1.0&component=gui''[[BR]]
     122The //Delete// buttons appears next to the //Reply// buttons in the ticket description and ticket change areas. `TICKET_ADMIN` permission is required for deleting tickets and ticket changes.
     123
     124Tickets and ticket changes can also be deleted using the TracAdmin `ticket remove` and `ticket remove_comment` commands.
     125
     126== Cloning Tickets #cloner
     127
     128The ticket clone function is enabled through an optional component. To enable the functionality edit the [TracIni#components-section "[components]"] section of TracIni:
     129{{{#!ini
     130[components]
     131tracopt.ticket.clone.* = enabled
     132}}}
     133
     134The //Clone// buttons appears next to the //Reply// buttons in the ticket description and ticket change areas. The ticket summary, description and properties are cloned, with minor modifications such as changing the ticket reporter to the currently authenticated user.
    117135
    118136----
    119 See also:  TracGuide, TracWiki, TracTicketsCustomFields, TracNotification, TracReports, TracQuery
     137See also: TracTicketsCustomFields, TracNotification, TracReports, TracQuery, TracRepositoryAdmin#CommitTicketUpdater