Jira Tips and Tricks
This page describes automated processes and features which might be useful to understand when working with Qt's bug tracker Jira https://bugreports.qt.io
Extended Search Capabilities
Jira uses JQL to allow the user to find issues with certain criteria. Out of the box the language provides a relatively large set of operators, function and keywords. However, there are corner cases when those capabilities are not sufficient. For example, the default JQL set does not allow the search for "issues on which user xyz commented on during the last 24h" or "issues whose version field matches a regular expression". To enable some of those more obscure use cases Qt's bug tracker extend the default JQL language set using custom plugins. The list below provides a summary
* Jira's JQL documentation * JQL Booster Pack
The auto completion feature of Jira's JQL search field provides a limited discovery of those additional capabilities too.
Need More Info (NMI) handling
Qt's bug tracker utilizes the "Need more info" (NMI) state which indicates that the current assignee of a issue or bug requires more information from the reporter. The issue remains in the state until the reporter has provided the requested information. The information can either be provided by commenting or updating the issue description. Once the info was provided, the reporter must transition the issue out of the NMI state by pressing the "Provide Missing Info" button. The overall purpose of this state is to ensure bug reports with as much information as possible and being able to identify incomplete ones.
Unfortunately not every reporter (especially reporter new to the Qt community one) is aware of the obligation. Therefore an automated cleanup procedure is employed to remind reporters of their obligation and (if necessary) prevent issues from being stuck in the "Need More Info" state. After two weeks of inactivity a reminder is posted to the Jira issue stating the expectations from the reporter and another two weeks of inactivity automatically close the issue (with an automated explanation).
The following table provides a summary of the automated handling in Jira. Workflow conditions are recorded via Jira labels. At the same time manual control of the cleanup procedure by the experienced users is permitted. The table assumes that the issue at hand is in the NMI state.
Set issue label | Expectation | Automated handling |
---|---|---|
NMI label set | The reporter must provide additional information and should transition the issue out of NMI. Any comment from the assignee will unset the NMI label | After 2 wks of no activity, the RNMI label is set. Setting of the RNMI label will trigger the posting of a comment to the reporter. |
NMI & RNMI label set | NMI and RNMI will be unset if the reporter posts a comment. | After 2 wks of no activity, the issue is automatically closed with an appropriate message. |
<<No NMI label>> | Any comment from the assignee renews the NMI label. | Issue will be transitioned back to "Reported" state (after 1 day without activity). The assumption is that further information was provided but the user forgot to transition the issue. |
Jira permissions
The Jira bug tracker utilizes three general permission levels obtained by users (apart from Jira Admin permissions). The below table summarizes the different levels and outlines their individual capabilities. The rights
Permission Level | Description | Capabilities |
---|---|---|
User | This permission level is the default permission for every user. |
|
Triager | The user can reassign any issue to a different user including him/herself. This permits the user to elevate their own permissions to the set of capabilities given to the issue's assignee. This right can be obtained by contacting Jira admins under jira-admin@qt-project.org. |
|
Open Governance Approver | The user can edit just about any issue independent of whether he/she is assignee or reporter. This level can be reached by being a contributor to the Qt project and having been granted OG Approver rights as per Open Governance (see Qt Governance Model) |
|
Note that some projects have individual permission sets which may differ from the above configuration.