Project

General

Profile

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
![Ticket workflow](twf.png)
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.