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
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 an 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 have as much information as possible and being able to identify incomplete ones.
Unfortunately not every reporter (especially a reporter new to the Qt community) 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 put towards the reporter and after 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 is permitted for the experienced users.
Upon transitioning an issue into the NMI state the initial NMI label is set by the system and activity monitoring is started. The table below shows the automation reaction once the Jira issues NMI state has been reached.
|Current issue label||User activity||Automated handling reaction|
|NMI label set||A comment from the reporter or an unrelated user is added.||The NMI label is unset.
After 2 weeks of no user 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||A comment from the reporter or an unrelated user is added.||NMI and RNMI will is unset.
After two weeks of no user activity, the issue is automatically closed with an appropriate message.
|<<No NMI label>>||A comment from the reporter or an unrelated user has no effect.||Issue will be transitioned back to "Reported" state (after one day without activity). The assumption is that further information was provided but the user forgot to transition the issue.|
|Any combination||A comment from the assignee is added.||The NMI label is renewed.|
|Any combination||User moves issue out of NMI state.||The potentially existing NMI or RNMI labels are removed.|
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
|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 firstname.lastname@example.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.