Ticket Workflow » History » Version 4
rainerkoenig, 2023-11-24 13:24
1 | 1 | rainerkoenig | # Ticket Workflow |
---|---|---|---|
2 | |||
3 | This document describes how we handle tickets in QE Yam. |
||
4 | |||
5 | 2 | rainerkoenig | ## General rules of thumb |
6 | - All tickets that require changes in the code base should be of type `action`. |
||
7 | - Every ticket should have a **parent ticket** with the type `coordination`. Coordination tickets are a sort of master plan for something that is too big for just one ticket. |
||
8 | - At the moment of writing the only *target version* that we can select for QE Yam is `Current`. |
||
9 | - Follow the [[Create ticket guidlines]] when creating a ticket. |
||
10 | |||
11 | 1 | rainerkoenig | ## Graphical overview |
12 | |||
13 | 2 | rainerkoenig |  |
14 | |||
15 | ## The default path (green) |
||
16 | - Tickets start with status `New`. |
||
17 | - When the ticket is clear enough to work on the status changes to `Workable`. |
||
18 | - Some team member picks that ticket from the top of the list of [workable tickets](https://progress.opensuse.org/projects/qe-yast/issues?query_id=869) **and** assigns himself to the ticket. The status of the ticket switches to `In progress`. |
||
19 | 3 | rainerkoenig | - The assigne works on the ticket, submits MRs/PRs and fulfills the acceptance criteria. In some cases you might also consider what is described below under "Possible deviations from the default path". |
20 | 2 | rainerkoenig | - After PRs or MRs were merged we **wait** that the changes also work in production and not only in our verifcation runs. |
21 | - Then the ticket status can change to `Resolved`. |
||
22 | |||
23 | ## The rejection path (red) |
||
24 | - Sometimes tickets can be rejected because they are already addressed in another ticket or other reasons. Then the ticket status changes to `Rejected` and the one that does this change should write a comment about the reason **why** this ticket is rejected. |
||
25 | |||
26 | ## Blocking tickets |
||
27 | - Sometimes while you work on a ticket you find out, that there are circumstances beyond this current ticket that block you in working on this ticket. In that case switch the status to `blocked` and comment on the reason for this block. |
||
28 | - If you have blocked tickets,then visit the [list of blocked tickets](https://progress.opensuse.org/projects/qe-yast/issues?query_id=903) from time to time to see if the reason for the block still exists, if not then switch the status back to `In progress`. |
||
29 | |||
30 | ## Closing tickets (blue) |
||
31 | 1 | rainerkoenig | - Sometimes you find out that the problem described in the ticket does no longer exist. Then you can switch the status to `Closed`. |
32 | 3 | rainerkoenig | |
33 | ## Possible deviation from the default path |
||
34 | - If a ticket seems too big or too complex then a good choice is to split up the issue into some smaller and more manageable tickets. |
||
35 | 4 | rainerkoenig | - If you decide to split, then you have 2 possibilities: |
36 | |||
37 | ### Make the too big ticket a sub-project |
||
38 | - change the tracker type of this ticket to `coordination`. |
||
39 | - submit new tickets for the smaller actions steps that have this ticket as their *parent ticket*. |
||
40 | |||
41 | ### Just create smaller chunks of work |
||
42 | - Decrease complexity of the current ticket by editing the description |
||
43 | - submit new tickets for the remaining smaller steops and use the same *parent ticket* as the original ticket has. So we keep a simple structure with not too many layers of coordination tickets. |
||
44 | |||
45 | Whatever you chose, please set the status of the newly created tickets to `Workable` so that also colleauges can take over some of the action steps. |