PROCESS.md 10.8 KB
Newer Older
1 2 3 4
# GitLab Contributing Process

## Purpose of describing the contributing process

5 6 7 8 9
Below we describe the contributing process to GitLab for two reasons. So that
contributors know what to expect from maintainers (possible responses, friendly
treatment, etc.). And so that maintainers know what to expect from contributors
(use the latest version, ensure that the issue is addressed, friendly treatment,
etc.).
10

11 12
- [GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/)

13
## Common actions
14

15
### Issue team
16 17 18 19 20 21 22 23 24 25 26 27

- Looks for issues without [workflow labels](#how-we-handle-issues) and triages
  issue
- Closes invalid issues with a comment (duplicates,
  [fixed in newer version](#issue-fixed-in-newer-version),
  [issue report for old version](#issue-report-for-old-version), not a problem
  in GitLab, etc.)
- Asks for feedback from issue reporter
  ([invalid issue reports](#improperly-formatted-issue),
  [format code](#code-format), etc.)
- Monitors all issues for feedback (but especially ones commented on since
  automatically watching them)
28
- Closes issues with no feedback from the reporter for two weeks
29

30
### Merge marshall & merge request coach
31

32 33 34 35 36 37 38 39
- Responds to merge requests the issue team mentions them in and monitors for
  new merge requests
- Provides feedback to the merge request submitter to improve the merge request
  (style, tests, etc.)
- Mark merge requests `Ready for Merge` when they meet the
  [contribution acceptance criteria]
- Mention developer(s) based on the
  [list of members and their specialities][team]
40
- Closes merge requests with no feedback from the reporter for two weeks
41 42 43 44

## Priorities of the issue team

1. Mentioning people (critical)
45 46 47
1. Workflow labels (normal)
1. Functional labels (minor)
1. Assigning issues (avoid if possible)
48

49 50
## Mentioning people

51 52
The most important thing is making sure valid issues receive feedback from the
development team. Therefore the priority is mentioning developers that can help
53
on those issues. Please select someone with relevant experience from
54 55 56 57 58
[GitLab core team][core-team]. If there is nobody mentioned with that expertise
look in the commit history for the affected files to find someone. Avoid
mentioning the lead developer, this is the person that is least likely to give a
timely response. If the involvement of the lead developer is needed the other
core team members will mention this person.
59 60 61

## Workflow labels

62 63
Workflow labels are purposely not very detailed since that would be hard to keep
updated as you would need to re-evaluate them after every comment. We optionally
Mark Pundsack's avatar
Mark Pundsack committed
64
use functional labels on demand when we want to group related issues to get an
65 66
overview (for example all issues related to RVM, to tackle them in one go) and
to add details to the issue.
67

68 69
- ~"Awaiting Feedback" Feedback pending from the reporter
- ~UX needs help from a UX designer
70 71
- ~Frontend needs help from a Front-end engineer. Please follow the
  ["Implement design & UI elements" guidelines].
72 73
- ~"Accepting Merge Requests" is a low priority, well-defined issue that we
  encourage people to contribute to. Not exclusive with other labels.
74
- ~"feature proposal" is a proposal for a new feature for GitLab. People are encouraged to vote
75
in support or comment for further detail. Do not use `feature request`.
76
- ~bug is an issue reporting undesirable or incorrect behavior.
77
- ~customer is an issue reported by enterprise subscribers. This label should
78
be accompanied by *bug* or *feature proposal* labels.
Mark Pundsack's avatar
Mark Pundsack committed
79

Sid Sijbrandij's avatar
Sid Sijbrandij committed
80 81
Example workflow: when a UX designer provided a design but it needs frontend work they remove the UX label and add the frontend label.

82 83
## Functional labels

84 85 86
These labels describe what development specialities are involved such as: `CI`,
`Core`, `Documentation`, `Frontend`, `Issues`, `Merge Requests`, `Omnibus`,
`Release`, `Repository`, `UX`.
87

88 89 90 91
## Assigning issues

If an issue is complex and needs the attention of a specific person, assignment is a good option but assigning issues might discourage other people from contributing to that issue. We need all the contributions we can get so this should never be discouraged. Also, an assigned person might not have time for a few weeks, so others should feel free to takeover.

92
## Label colors
93

94 95 96 97 98 99 100 101 102
- Light orange `#fef2c0`: workflow labels for issue team members (awaiting
  feedback, awaiting confirmation of fix)
- Bright orange `#eb6420`: workflow labels for core team members (attached MR,
  awaiting developer action/feedback)
- Light blue `#82C5FF`: functional labels
- Green labels `#009800`: issues that can generally be ignored. For example,
  issues given the following labels normally can be closed immediately:
  - Support (see copy & paste response:
    [Support requests and configuration questions](#support-requests-and-configuration-questions)
103

104 105
## Be kind

106 107 108 109 110
Be kind to people trying to contribute. Be aware that people may be a non-native
English speaker, they might not understand things or they might be very
sensitive as to how you word things. Use Emoji to express your feelings (heart,
star, smile, etc.). Some good tips about giving feedback to merge requests is in
the [Thoughtbot code review guide].
111

112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
## Feature Freeze

5 working days before the 22nd the stable branches for the upcoming release will
be frozen for major changes. Merge requests may still be merged into master
during this period. By freezing the stable branches prior to a release there's
no need to worry about last minute merge requests potentially breaking a lot of
things.

What is considered to be a major change is determined on a case by case basis as
this definition depends very much on the context of changes. For example, a 5
line change might have a big impact on the entire application. Ultimately the
decision will be made by those reviewing a merge request and the release
manager.

During the feature freeze all merge requests that are meant to go into the next
release should have the correct milestone assigned _and_ have the label
~"Pick into Stable" set. Merge requests without a milestone and this label will
not be merged into any stable branches.

131 132 133 134
## Copy & paste responses

### Improperly formatted issue

135
Thanks for the issue report. Please reformat your issue to conform to the \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
136 137 138

### Issue report for old version

Robert Schilling's avatar
Robert Schilling committed
139
Thanks for the issue report but we only support issues for the latest stable version of GitLab. I'm closing this issue but if you still experience this problem in the latest stable version, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
140 141 142

### Support requests and configuration questions

143 144 145 146 147
Thanks for your interest in GitLab. We don't use the issue tracker for support
requests and configuration questions. Please check our
\[getting help\]\(https://about.gitlab.com/getting-help/) page to see all of the available
support options. Also, have a look at the \[contribution guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md)
for more information.
148 149 150 151 152 153 154

### Code format

Please use ``` to format console output, logs, and code as it's very hard to read otherwise.

### Issue fixed in newer version

155
Thanks for the issue report. This issue has already been fixed in newer versions of GitLab. Due to the size of this project and our limited resources we are only able to support the latest stable release as outlined in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker). In order to get this bug fix and enjoy many new features please \[upgrade\]\(https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update). If you still experience issues at that time please open a new issue following our issue tracker guidelines found in the \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
156

157
### Improperly formatted merge request
158

Robert Schilling's avatar
Robert Schilling committed
159
Thanks for your interest in improving the GitLab codebase! Please update your merge request according to the \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-request-guidelines).
160 161 162

### Inactivity close of an issue

Robert Schilling's avatar
Robert Schilling committed
163
It's been at least 2 weeks (and a new release) since we heard from you. I'm closing this issue but if you still experience this problem, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
164

165
### Inactivity close of a merge request
166

Robert Schilling's avatar
Robert Schilling committed
167
This merge request has been closed because a request for more information has not been reacted to for more than 2 weeks. If you respond and conform to the merge request guidelines in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-requests) we will reopen this merge request.
168

169 170
### Accepting merge requests

171 172 173
Is there an issue on the
\[issue tracker\]\(https://gitlab.com/gitlab-org/gitlab-ce/issues) that is
similar to this? Could you please link it here?
174
Please be aware that new functionality that is not marked
175
\[accepting merge requests\]\(https://gitlab.com/gitlab-org/gitlab-ce/issues?milestone_id=&scope=all&sort=created_desc&state=opened&utf8=%E2%9C%93&assignee_id=&author_id=&milestone_title=&label_name=Accepting+Merge+Requests)
176
might not make it into GitLab.
177 178 179

### Only accepting merge requests with green tests

Jeroen van Baarsen's avatar
Jeroen van Baarsen committed
180 181 182 183
We can only accept a merge request if all the tests are green. I've just
restarted the build. When the tests are still not passing after this restart and
you're sure that is does not have anything to do with your code changes, please
rebase with master to see if that solves the issue.
184 185 186 187

### Closing down the issue tracker on GitHub

We are currently in the process of closing down the issue tracker on GitHub, to
188
prevent duplication with the GitLab.com issue tracker.
189
Since this is an older issue I'll be closing this for now. If you think this is
190 191 192 193 194
still an issue I encourage you to open it on the \[GitLab.com issue tracker\]\(https://gitlab.com/gitlab-org/gitlab-ce/issues).

[core-team]: https://about.gitlab.com/core-team/
[team]: https://about.gitlab.com/team/
[contribution acceptance criteria]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#contribution-acceptance-criteria
195
["Implement design & UI elements" guidelines]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#implement-design-ui-elements
196
[Thoughtbot code review guide]: https://github.com/thoughtbot/guides/tree/master/code-review