[Notes] [Git][BuildStream/nosoftware/alignment][laurence/update-policies] Update BuildStream_policies.md



Title: GitLab

Laurence Urhegyi pushed to branch laurence/update-policies at BuildStream / nosoftware / alignment

Commits:

1 changed file:

Changes:

  • BuildStream_policies.md
    ... ... @@ -6,9 +6,9 @@ For a detailed explanation of how to hack on BuildStream, please see the
    6 6
     [CONTRIBUTING.rst](https://gitlab.com/BuildStream/buildstream/blob/master/CONTRIBUTING.rst) guide.
    
    7 7
     
    
    8 8
     
    
    9
    -## BuildStream on Gitlab: policies
    
    9
    +## Use of Gitlab features 
    
    10 10
     
    
    11
    -We intend to make use of some of GitLab's features in order to structure the
    
    11
    +We intend to make use of some of Gitlab's features in order to structure the
    
    12 12
     activity of the project. In doing so we are trying to achieve the
    
    13 13
     following goals:
    
    14 14
     
    
    ... ... @@ -25,182 +25,91 @@ and value all contributions to the project!
    25 25
     
    
    26 26
     ### Milestones
    
    27 27
     
    
    28
    -Milestone on Gitlab matches relevant events that are related with time frames like release cycles and events. The only current global milestones across the entire BuildStream Group are release cycles.
    
    28
    +[Milestones](https://gitlab.com/groups/BuildStream/-/milestones) on Gitlab denote
    
    29
    +time-bound periods: we are using milestones to structure releases and events. 
    
    30
    +See all group level milestones [here](https://gitlab.com/groups/BuildStream/-/milestones).
    
    29 31
     
    
    30
    -General description of how milestones work on Gitlab: <https://docs.gitlab.com/ee/user/project/milestones/>
    
    31
    -
    
    32
    -Global milestones on Gitlab: <https://gitlab.com/groups/BuildStream/-/milestones>
    
    32
    +Note: milestones are not to be confused with [Epics](https://docs.gitlab.com/ee/user/group/epics) 
    
    33
    +which allow you to group sub tasks into an overall goal. 
    
    34
    +Epics are currently not available for us to use in this version of Gitlab.
    
    33 35
     
    
    34 36
     
    
    35 37
     
    
    36 38
     ### Labels
    
    37 39
     
    
    38
    -Labels allow us to structure, filter and visualise some of the Gitlab elements in different ways. Some of those labels apply to the entire BuildStream group and some only apply to specific repositories (projects).
    
    40
    +[Labels](https://docs.gitlab.com/ee/user/project/labels.html) allow us to 
    
    41
    +filter tickets (ie, 'issues' in Gitlab terminology) in useful ways.
    
    42
    +
    
    43
    + Labels add complexity and effort as they grow in number, so the ideal approach 
    
    44
    + is to have the minimum possible but to use them consistently. Sadly, we currenlty have 
    
    45
    + far too many labels, so if you want to add a new one, please do discuss this the [mailing 
    
    46
    + list](https://mail.gnome.org/mailman/listinfo/buildstream-list) first. 
    
    39 47
     
    
    40
    -Check the description of labels on Gitlab: <https://docs.gitlab.com/ee/user/project/labels.html>
    
    48
    +We have both [global scale labels](https://gitlab.com/groups/BuildStream/-/labels) and 
    
    49
    +[BuildStream project specific labels](https://gitlab.com/BuildStream/buildstream/labels).
    
    41 50
     
    
    42
    -Check the global scale labels: <https://gitlab.com/groups/BuildStream/-/labels>
    
    51
    +When raising an issue, please consider which labels are appropriate:
    
    43 52
     
    
    44
    -The global ones are:
    
    53
    +* Topic labels: each repository has its own labels that allow you to structure tickets per topic. For example, there's a 'Documentation' label for tasks related to documentation. 
    
    45 54
     
    
    46
    -* Status scale:
    
    47
    -	* Backlog: default state on Gitlab so no label needed.
    
    48
    -	* Todo: processed elements that should be done in the future.
    
    49
    -	* Doing: WIP
    
    50
    -	* Review: items that are under review once the developer or contributor has finished it. 
    
    51
    -	* Closed: items that has been processed and canceled, finished or no longer apply. Default state on Gitlab so no label needed.
    
    52
    -* Severity scale (these labels are prioritized):
    
    55
    +* Severity scale: please apply the below in order to get the attention of the core development team, as these labels are prioritized in weekly meetings:
    
    53 56
         * No label: unprocessed item, no or low priority.
    
    54 57
         * Important: default severity for processed items that should be executed/considered.
    
    55 58
         * Urgent: to pay attention in the immediate future when possible.
    
    56 59
         * Critical: topics that require attention immediately when possible.
    
    57
    -* Impact scale: this scale is restricted to the buildstream project for now.
    
    58
    -	* high_impact: the crash/feature/task takes place frequently or is a recurrent one and has a significant impact on users everyday or key work.
    
    59
    -	* No label: the crash/feature/task is infrequent or hard to reproduce and the impact on the users is low or hard to determine.
    
    60
    -* Topic labels: each repository has its own labels that allow to structure tickets per topic.
    
    60
    +    
    
    61 61
     
    
    62
    -Check the buildstream project specific topic labels: <https://gitlab.com/BuildStream/buildstream/labels>
    
    63 62
     
    
    64
    -In order to propose new labels or a change in the current ones, please send a mail to the mailing list or add a ticket in the alignment repo: <https://gitlab.com/BuildStream/nosoftware/alignment/issues>
    
    65 63
     
    
    66 64
     ### Issue Boards
    
    67 65
     
    
    68
    -Boards allow anybody interested in BuildStream to visualise and manage (workflow) issues in a simple way. BuildStream has boards at global level (group), subgroup level (nosoftware) and project level.
    
    66
    +[Issue boards](https://docs.gitlab.com/ee/user/project/issue_board.html) allow anybody interested in BuildStream to visualise and manage issues in a simple way.
    
    67
    +There are [Global level boards](https://gitlab.com/groups/BuildStream/-/boards/580444?milestone_title=BuildStream_v1.1>&=) and 
    
    68
    +[BuildStream project specific boards](https://gitlab.com/BuildStream/buildstream/boards/580451?milestone_title=BuildStream_v1.1>&=).
    
    69
    +There is a drop down menu allowing you to select every available board. The most relevant to most people is the [Status-All Board](https://gitlab.com/BuildStream/buildstream/boards/134373).
    
    69 70
     
    
    70
    -* Check the description of labels on Gitlab: <https://about.gitlab.com/features/issueboard/>
    
    71
    -* Check the global boards: <https://gitlab.com/groups/BuildStream/-/boards/580444?milestone_title=BuildStream_v1.1>&= 
    
    72
    -* Check the buildstream repo specific boards: <https://gitlab.com/BuildStream/buildstream/boards/580451?milestone_title=BuildStream_v1.1>&=
    
    73
    -* There is a menu in the above pages to select every available board.
    
    71
    +Issues start life in the ``Backlog`` column by default, and we move them into
    
    72
    +  ``ToDo`` when we aim to complete them soon.  ``Doing`` is only for when an item is 
    
    73
    +  currently being worked on. When on the Board view, dragging and dropping an issue from
    
    74
    +  column to column automatically adjusts the relevant labels.
    
    74 75
     
    
    75
    -There are three main groups of boards:
    
    76
    +There are two main types of boards:
    
    76 77
     
    
    77
    -* Status boards: allow anybody to visualize Work in Progress (WIP) and move tickets from one status to another one so there is no need to manually change the labels, including when a ticket is closed.
    
    78
    -* Severity boards: allow anybody to visualize how relevant the tickets are for developers, based on a variety of criteria that ends up on a notion of priority. It also is useful to move the tickets from one severity state to another one so there is no need to manually change the labels, including when a ticket is closed.
    
    79
    -* Other boards: there are other kind of boards for specific use cases.
    
    78
    +* Status boards: shows WIP visibility of all items currently in flight. 
    
    79
    +* Severity boards: shows relevant tickets for developers, based on priority, eg critical bugs.
    
    80 80
     
    
    81 81
     ### Templates
    
    82 82
     
    
    83
    -The usage of issues and merge requests templates allow community members to understand which information is required for developers and contributors to fully understand and process the bug/task/request adequately. Templates are assigned per project/repo and need to be selected when creating an issue or merge request.
    
    84
    -
    
    85
    -
    
    86
    -Check the information about templates from Gitlab: <https://docs.gitlab.com/ee/user/project/description_templates.html>
    
    87
    -
    
    88
    -Check the templates used at BuildStream:
    
    89
    -* buildstream repo/project templates:
    
    90
    -	* Default template:
    
    91
    -	* Bug template:
    
    92
    -	* Merge request template:
    
    93
    -* alignment/communication repos templates:
    
    94
    -    * task template: https://gitlab.com/BuildStream/nosoftware/alignment/blob/master/.gitlab/issue_templates/task.md
    
    95
    -    * bug template: https://gitlab.com/BuildStream/nosoftware/alignment/blob/master/.gitlab/issue_templates/bug.md
    
    96
    -    * Merge request template: https://gitlab.com/BuildStream/buildstream/blob/master/.gitlab/merge_request_templates/bst_merge_request.md
    
    97
    -
    
    98
    -### Technical/engineering tasks: best practices.
    
    99
    -
    
    100
    -These are the best practices that are applied to Gitlab at BuildStream in relation with bugs and tasks. Please read them carefully and try to apply them.
    
    101
    -
    
    102
    -#### Open/create a technical issue
    
    103
    -
    
    104
    -In order to open a new task the best place is the green button at this page: <https://gitlab.com/BuildStream/buildstream/issues>. Please follow these considerations:
    
    105
    -* Use the default template.
    
    106
    -* Fill out the information required.
    
    107
    -	* Select the milestone/version affected or related with the task.
    
    108
    -	* If the ticket is related with the current milestone/version and older, please leave the default option.
    
    109
    -* Save the ticket.
    
    110
    -* Apply further metadata if you are sure about which labels to use.
    
    111
    -	* Leave the Assignee blank unless you know who is the person responsible for that issue.
    
    112
    -	* Consider applying topic labels if are familiar with them.
    
    113
    -		* If the issue is just a breakdown of another task, please consider applying the same topic labels.
    
    114
    -* Further considerations:
    
    115
    -	* If you want to notify somebody about the ticket, please add his/her name as first comment. Try to avoid naming people for notification reasons in the ticket description.
    
    116
    -	* It is extremely useful that you use the Related Topics field adding:
    
    117
    -		* #"ticket id" if the ticket you just created is related with another ticket from the same repo.
    
    118
    -		* Relative link if the ticket you just created is related with a ticket from the BuildStream group or a different group within gitlab.com.
    
    119
    -		* A full URL if the ticket is related with a gitlab ticket under a different domain.
    
    120
    -		* The MR associated with the ticket. Please do not forget this.
    
    121
    -	* If your issue remains unprocessed after a few days/weeks, please ask through the project mailing list about it. It should be the exception but it might have been overlooked or remain unnoticed.  
    
    122
    -
    
    123
    -#### Update an engineering task / ticket
    
    124
    -
    
    125
    -Assuming the bulk of the work on engineering tasks takes places on Merge Requests (code), it is strongly recommended that you follow these advices:
    
    126
    -* Assign the ticket to you when you start working on it. More than one person can be assigned to a single task.
    
    127
    -* Assign the correct milestone and labels if they are not in place already.
    
    128
    -   * If the task is being executed, please assign the label "Doing", removing the "ToDo" label.
    
    129
    -   * Fill out the "Related Issues" field if there are other bugs or tasks that have a dependency or are related with the one it is being executed.
    
    130
    -* Update the ticket when a relevant event takes place. In any case, update the ticket every couple of days.
    
    131
    -    * This is very important for others to follow up your work.
    
    132
    -
    
    133
    -#### Close an engineering task
    
    134
    -
    
    135
    -(coming soon)
    
    136
    -    
    
    137
    -### Bugs: best practices
    
    138
    -    
    
    139
    -#### Open/create a bug
    
    140
    -
    
    141
    -In order to open a new bug the best place is the green button at this page: <https://gitlab.com/BuildStream/buildstream/issues>. Please follow these considerations:
    
    142
    -* Use the Bug template. Choose it from the template menu when creating a new bug.
    
    143
    -* Fill out the information required. This is extremely important in the case of bugs. Developers will need to reproduce it in order to process it adequately.
    
    144
    -	* Please fill out the milestone/version affected. 
    
    145
    -		* Refer to milestones adding the "%" symbol and selecting from the available options.
    
    146
    -		* If the affected version is the current
    
    147
    -* Save the ticket.
    
    148
    -* Apply further metadata if you are sure about which labels to use.
    
    149
    -	* If the bug shows up frequently and has a big impact in your everyday work or is present while performing a key action, please consider applying the label: high_impact. Otherwise, please do not apply it.
    
    150
    -	* If you know the person responsible for analyzing/ processing the bug, please assign the bug to that person. Otherwise, leave it unassigned. The same policy applies to any topic labels.
    
    151
    -	* Please remember that the Bug template already have the label "bug" assigned by default.
    
    152
    -	* Do not assign any severity or status label unless you are going to work on it yourself. In case of doubt, apply the lowest value. 
    
    153
    -* Further considerations:
    
    154
    -	* Please refer to the considerations made for issues since they also apply to this case.
    
    155
    -
    
    156
    -#### Update a bug
    
    157
    -
    
    158
    -Assuming the bulk of the work on bugs takes places on Merge Requests (code), it is strongly recommended that you follow these advices:
    
    159
    -* Assign the bug to you. More than one person can be assigned to a single bug.
    
    160
    -* Assign the correct milestone and labels if they are not in place already.
    
    161
    -   * If the bug is being investigated or resolved, please assign the label "Doing", removing the "ToDo" label.
    
    162
    -   * Fill out the "Related Issues" field if there are other bugs or tasks that have a dependency or are related with the one it is being executed.
    
    163
    -* Update the ticket when a relevant event takes place. In any case, update the ticket every couple of days.
    
    164
    -    * This is very important for others to follow up your work.
    
    165
    -	
    
    166
    -## Merge requests: best practices.
    
    167
    -
    
    168
    -These are the different policies that the project applies to merge requests.
    
    83
    +[Templates](https://docs.gitlab.com/ee/user/project/description_templates.html) are a good way to prompt users for certain information.
    
    169 84
     
    
    170
    -#### Close a Bug
    
    85
    +When opening a new isue or merge request, please follow the template guideline, and include as much information as possible.
    
    171 86
     
    
    172
    -(coming soon)
    
    87
    +We have two templates for issues:
    
    173 88
     
    
    174
    -### Merge requests (MR): best practices
    
    89
    +* Bugs
    
    90
    +* Tasks
    
    175 91
     
    
    176
    -#### Open/create a merge request
    
    92
    +### Raising a ticket (ie, gitlab issue): best practice
    
    177 93
     
    
    178
    -Please read carefully the following policies before opening a new merge request. The best place to create a new merge request is this page: <https://gitlab.com/BuildStream/buildstream/merge_requests>. Please follow these considerations:
    
    179
    -* Use the default template.
    
    180
    -* Fill out the information required.
    
    181
    -	* As in the case of the bugs, please be verbose. It will make the review process simpler and faster.
    
    182
    -* Save the merge request.
    
    183
    -* Apply further metadata if you are sure about which labels to use.
    
    184
    -	* It is extremely important that you add to the merge request description the issue id/number this merge request affects to.
    
    185
    -	* It is important to assign the merge request to a reviewer if you know who that person is. Please use the buildstream IRC channel to find out who that person is, if you can. Otherwise, leave it unassigned.
    
    186
    -* Further considerations:
    
    187
    -	* We do not apply for now status labels to merge requests.
    
    188
    -	* Severity labels will be applied in very specific cases only.
    
    189
    -	* If you want to notify somebody about the merge request, please add his/her name as first comment, starting by the character "@". Try to avoid naming people for notification reasons in the merge request  description field.
    
    190
    -	* If your merge request remains unprocessed for over a week, please ask through IRC (#buildstream in irc.gonme.org) about it. It should be the exception but it might have been overlooked, remain unnoticed or the default reviewer is overloaded.
    
    94
    +- When raising an issue, please:
    
    95
    +   
    
    96
    +  - check to see if there already is an issue to cover this task (if not then 
    
    97
    +    raise a new one)
    
    98
    +  - assign the appropriate label or labels (tip: the vast majority of issues 
    
    99
    +    raised will be either an enhancement or a bug)
    
    100
    +  - consider which release (ie, milestone) this ticket falls under
    
    101
    +    
    
    102
    +- If you plan to work on an issue, please:
    
    191 103
     
    
    192
    -#### Update a merge request
    
    193
    -	
    
    194
    -It is strongly recommended that you follow these advices:
    
    195
    -* Assign the Merge Request to you when you start working on it. Please remember than more than one person can be assigned to the MR.
    
    196
    -* Assign the correct milestone and labels if they are not in place already.
    
    197
    -   * If the MR is in progress, please assign to it the label "Doing", removing the "ToDo" label if present.
    
    198
    -   * every MR should be related in the description field to at least one engineering task or bug. Please check this is the case. 
    
    199
    -* Update the MR when a relevant event takes place.
    
    104
    +  - self-assign the ticket
    
    105
    +  - ensure the ticket is in the ``ToDo`` column of the [Status-All Board](https://gitlab.com/BuildStream/buildstream/boards/134373) if you aim to 
    
    106
    +    work on it soon but are not yet working on it, and
    
    107
    +    the ``Doing`` column if you are working on it currently.
    
    200 108
     
    
    201
    -#### Close a Merge Request
    
    109
    +- Please note that Gitlab issues are for either 'tasks' or 'bugs' - ie not for 
    
    110
    +  long discussions (where the mailing list is a better choice) or for ranting, 
    
    111
    +  for example.
    
    202 112
     
    
    203
    -(coming soon)
    
    204 113
     
    
    205 114
     ## Roadmap policies
    
    206 115
     	
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]