CONTRIBUTING.md 14.9 KB
Newer Older
J
Jamie Hurewitz 已提交
1 2 3
## Developer Certificate of Origin + License

By contributing to GitLab B.V., You accept and agree to the following terms and
D
dosire 已提交
4 5 6 7
conditions for Your present and future Contributions submitted to GitLab B.V.
Except for the license granted herein to GitLab B.V. and recipients of software
distributed by GitLab B.V., You reserve all right, title, and interest in and to
Your Contributions. All Contributions are subject to the following DCO + License
J
Jamie Hurewitz 已提交
8
terms.
J
Jamie Hurewitz 已提交
9

D
dosire 已提交
10
[DCO + License](https://gitlab.com/gitlab-org/dco/blob/master/README.md)
11

12 13 14 15
All Documentation content that resides under the [doc/ directory](/doc) of this
repository is licensed under Creative Commons:
[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).

16
_This notice should stay as the first item in the CONTRIBUTING.md file._
17 18 19

---

20 21 22 23
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*

24
- [Contributing Documentation has been moved](#contributing-documentation-has-been-moved)
25
- [Contribute to GitLab](#contribute-to-gitlab)
26
- [Security vulnerability disclosure](#security-vulnerability-disclosure)
27
- [Code of conduct](#code-of-conduct)
28 29 30
- [Closing policy for issues and merge requests](#closing-policy-for-issues-and-merge-requests)
- [Helping others](#helping-others)
- [I want to contribute!](#i-want-to-contribute)
31
- [Contribution Flow](#contribution-flow)
32
- [Workflow labels](#workflow-labels)
33 34 35 36 37 38
  - [Type labels](#type-labels)
  - [Subject labels](#subject-labels)
  - [Team labels](#team-labels)
  - [Release Scoping labels](#release-scoping-labels)
  - [Priority labels](#priority-labels)
  - [Severity labels](#severity-labels)
39
     - [Severity impact guidance](#severity-impact-guidance)
40 41
  - [Label for community contributors](#label-for-community-contributors)
- [Implement design & UI elements](#implement-design--ui-elements)
42
- [Issue tracker](#issue-tracker)
43 44 45 46 47 48 49
  - [Issue triaging](#issue-triaging)
  - [Feature proposals](#feature-proposals)
  - [Issue tracker guidelines](#issue-tracker-guidelines)
  - [Issue weight](#issue-weight)
  - [Regression issues](#regression-issues)
  - [Technical and UX debt](#technical-and-ux-debt)
  - [Stewardship](#stewardship)
50
- [Merge requests](#merge-requests)
51 52
  - [Merge request guidelines](#merge-request-guidelines)
  - [Contribution acceptance criteria](#contribution-acceptance-criteria)
53 54
- [Definition of done](#definition-of-done)
- [Style guides](#style-guides)
55 56 57

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

58
---
S
sytses 已提交
59

60 61 62 63 64
## Contributing Documentation has been moved

As of July 2018, all the documentation for contributing to the GitLab project has been moved to a new location.
[view the new documentation](doc/development/contributing/index.md) to find the latest information.

S
sytses 已提交
65
## Contribute to GitLab
K
Koen Punt 已提交
66

67
Thank you for your interest in contributing to GitLab. This guide details how
R
Ray Paik 已提交
68 69 70 71
to contribute to GitLab in a way that is easy for everyone.

For a first-time step-by-step guide to the contribution process, please see
["Contributing to GitLab"](https://about.gitlab.com/contributing/).
72

V
Victor Wu 已提交
73
Looking for something to work on? Look for issues with the label [Accepting Merge Requests](#i-want-to-contribute).
74

75 76 77 78 79
GitLab comes into two flavors, GitLab Community Edition (CE) our free and open
source edition, and GitLab Enterprise Edition (EE) which is our commercial
edition. Throughout this guide you will see references to CE and EE for
abbreviation.

R
Ray Paik 已提交
80
If you want to know how the GitLab [core team]
81 82
operates please see [the GitLab contributing process](PROCESS.md).

R
Ray Paik 已提交
83
[GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/)
84

85 86
## Security vulnerability disclosure

87 88 89 90 91
Please report suspected security vulnerabilities in private to
`support@gitlab.com`, also see the
[disclosure section on the GitLab.com website](https://about.gitlab.com/disclosure/).
Please do **NOT** create publicly viewable issues for suspected security
vulnerabilities.
92

93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
## Code of conduct

As contributors and maintainers of this project, we pledge to respect all
people who contribute through reporting issues, posting feature requests,
updating documentation, submitting pull requests or patches, and other
activities.

We are committed to making participation in this project a harassment-free
experience for everyone, regardless of level of experience, gender, gender
identity and expression, sexual orientation, disability, personal appearance,
body size, race, ethnicity, age, or religion.

Examples of unacceptable behavior by participants include the use of sexual
language or imagery, derogatory comments or personal attacks, trolling, public
or private harassment, insults, or other unprofessional conduct.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct. Project maintainers who do not
follow the Code of Conduct may be removed from the project team.

This code of conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community.

Instances of abusive, harassing, or otherwise unacceptable behavior can be
reported by emailing `contact@gitlab.com`.

This Code of Conduct is adapted from the [Contributor Covenant][contributor-covenant], version 1.1.0,
available at [http://contributor-covenant.org/version/1/1/0/](http://contributor-covenant.org/version/1/1/0/).

D
dosire 已提交
123
## Closing policy for issues and merge requests
K
Koen Punt 已提交
124

125 126 127 128
GitLab is a popular open source project and the capacity to deal with issues
and merge requests is limited. Out of respect for our volunteers, issues and
merge requests not in line with the guidelines listed in this document may be
closed without notice.
A
Ariejan de Vroom 已提交
129

130 131
Please treat our volunteers with courtesy and respect, it will go a long way
towards getting your issue resolved.
132

133 134
Issues and merge requests should be in English and contain appropriate language
for audiences of all ages.
135

136 137 138 139
If a contributor is no longer actively working on a submitted merge request
we can decide that the merge request will be finished by one of our
[Merge request coaches][team] or close the merge request. We make this decision
based on how important the change is for our product vision. If a Merge request
F
Filipa Lacerda 已提交
140
coach is going to finish the merge request we assign the
141 142
~"coach will finish" label.

S
Sytse Sijbrandij 已提交
143 144
## Helping others

145 146
Please help other GitLab users when you can.
The methods people will use to seek help can be found on the [getting help page][getting-help].
147 148

Sign up for the mailing list, answer GitLab questions on StackOverflow or
N
nozo 已提交
149
respond in the IRC channel. You can also sign up on [CodeTriage][codetriage] to help with
150
the remaining issues on the GitHub issue tracker.
S
Sytse Sijbrandij 已提交
151

J
Job van der Voort 已提交
152 153
## I want to contribute!

154 155 156 157 158
If you want to contribute to GitLab [issues with the label `Accepting Merge Requests` and small weight][accepting-mrs-weight]
is a great place to start. Issues with a lower weight (1 or 2) are deemed
suitable for beginners. These issues will be of reasonable size and challenge,
for anyone to start contributing to GitLab. If you have any questions or need help visit [Getting Help](https://about.gitlab.com/getting-help/#discussion) to
learn how to communicate with GitLab. If you're looking for a Gitter or Slack channel
159
please consider we favor
160
[asynchronous communication](https://about.gitlab.com/handbook/communication/#internal-communication) over real time communication. Thanks for your contribution!
J
Job van der Voort 已提交
161

162
## Contribution Flow
163

164
When contributing to GitLab, your merge request is subject to review by merge request maintainers of a particular specialty.
165

166
When you submit code to GitLab, we really want it to get merged, but there will be times when it will not be merged.
167

168
When maintainers are reading through a merge request they may request guidance from other maintainers. If merge request maintainers conclude that the code should not be merged, our reasons will be fully disclosed. If it has been decided that the code quality is not up to GitLab’s standards, the merge request maintainer will refer the author to our docs and code style guides, and provide some guidance.
169

170
Sometimes style guides will be followed but the code will lack structural integrity, or the maintainer will have reservations about the code’s overall quality. When there is a reservation the maintainer will inform the author and provide some guidance.  The author may then choose to update the merge request. Once the merge request has been updated and reassigned to the maintainer, they will review the code again. Once the code has been resubmitted any number of times, the maintainer may choose to close the merge request with a summary of why it will not be merged, as well as some guidance. If the merge request is closed the maintainer will be open to discussion as to how to improve the code so it can be approved in the future.
171

172
GitLab will do its best to review community contributions as quickly as possible. Specially appointed developers review community contributions daily. You may take a look at the [team page](https://about.gitlab.com/team/) for the merge request coach who specializes in the type of code you have written and mention them in the merge request.  For example, if you have written some JavaScript in your code then you should mention the frontend merge request coach. If your code has multiple disciplines you may mention multiple merge request coaches.
173

174
GitLab receives a lot of community contributions, so if your code has not been reviewed within 4 days of its initial submission feel free to re-mention the appropriate merge request coach.
175

176
When submitting code to GitLab, you may feel that your contribution requires the aid of an external library. If your code includes an external library please provide a link to the library, as well as reasons for including it.
177

178
When your code contains more than 500 changes, any major breaking changes, or an external library, `@mention` a maintainer in the merge request. If you are not sure who to mention, the reviewer will add one early in the merge request process.
179

180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
[core team]: https://about.gitlab.com/core-team/
[team]: https://about.gitlab.com/team/
[getting-help]: https://about.gitlab.com/getting-help/
[codetriage]: http://www.codetriage.com/gitlabhq/gitlabhq
[accepting-mrs-weight]: https://gitlab.com/gitlab-org/gitlab-ce/issues?assignee_id=0&label_name[]=Accepting%20Merge%20Requests&sort=weight_asc
[ce-tracker]: https://gitlab.com/gitlab-org/gitlab-ce/issues
[ee-tracker]: https://gitlab.com/gitlab-org/gitlab-ee/issues
[google-group]: https://groups.google.com/forum/#!forum/gitlabhq
[stackoverflow]: https://stackoverflow.com/questions/tagged/gitlab
[fpl]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=feature+proposal
[accepting-mrs-ce]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=Accepting+Merge+Requests
[accepting-mrs-ee]: https://gitlab.com/gitlab-org/gitlab-ee/issues?label_name=Accepting+Merge+Requests
[gitlab-mr-tracker]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests
[gdk]: https://gitlab.com/gitlab-org/gitlab-development-kit
[git-squash]: https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits
[closed-merge-requests]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests?assignee_id=&label_name=&milestone_id=&scope=&sort=&state=closed
[definition-of-done]: http://guide.agilealliance.org/guide/definition-of-done.html
[contributor-covenant]: http://contributor-covenant.org
[rss-source]: https://github.com/bbatsov/ruby-style-guide/blob/master/README.md#source-code-layout
[rss-naming]: https://github.com/bbatsov/ruby-style-guide/blob/master/README.md#naming
[changelog]: doc/development/changelog.md "Generate a changelog entry"
[doc-guidelines]: doc/development/documentation/index.md "Documentation guidelines"
[js-styleguide]: doc/development/fe_guide/style_guide_js.md "JavaScript styleguide"
[scss-styleguide]: doc/development/fe_guide/style_guide_scss.md "SCSS styleguide"
[newlines-styleguide]: doc/development/newlines_styleguide.md "Newlines styleguide"
[UX Guide for GitLab]: http://docs.gitlab.com/ce/development/ux_guide/
[license-finder-doc]: doc/development/licensing.md
[GitLab Inc engineering workflow]: https://about.gitlab.com/handbook/engineering/workflow/#labelling-issues
[polling-etag]: https://docs.gitlab.com/ce/development/polling.html
[testing]: doc/development/testing_guide/index.md
[us-english]: https://en.wikipedia.org/wiki/American_English
211 212


213
## Workflow labels
214

215
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.  
216

217

218
### Type labels
219

220
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
221 222


223
### Subject labels
224

225
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
226

227

228
### Team labels
229

230
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
S
Sean McGivern 已提交
231

232

233
### Release Scoping labels
234

235
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
F
Fabio Busatto 已提交
236

237

238
### Priority labels
M
Mek Stittri 已提交
239

240
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
M
Mek Stittri 已提交
241

242

243
### Severity labels
244

245
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
246

247
#### Severity impact guidance
248

249
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
250

251

252
### Label for community contributors
253

254
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
255 256 257 258


## Implement design & UI elements

259
This [documentation](doc/development/contributing/design.md) has been moved.
260

261

262 263
## Issue tracker

264
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
265

266 267
### Issue triaging

268
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
269 270


271 272
### Feature proposals

273
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
274 275 276

### Issue tracker guidelines

277
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
278 279


280 281
### Issue weight

282
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
283 284


285
### Regression issues
286

287
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
288 289


290
### Technical and UX debt
291

292
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
293 294


295 296
### Stewardship

297
This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
298 299


D
dosire 已提交
300
## Merge requests
301

302
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
303

304

D
dosire 已提交
305
### Merge request guidelines
306

307
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
308

309

310
### Contribution acceptance criteria
311

312
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
313 314


315
## Definition of done
316

F
Franklin Yu 已提交
317
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
318 319


320
## Style guides
321

322
This [documentation](doc/development/contributing/design.md) has been moved.