index.md 11.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<!-- 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)*

- [Contribute to GitLab](#contribute-to-gitlab)
- [Security vulnerability disclosure](#security-vulnerability-disclosure)
- [Code of conduct](#code-of-conduct)
- [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)
- [Contribution Flow](#contribution-flow)
- [Workflow labels](#workflow-labels)
  - [Type labels](#type-labels)
  - [Subject labels](#subject-labels)
  - [Team labels](#team-labels)
  - [Milestone labels](#milestone-labels)
  - [Bug Priority labels](#bug-priority-labels)
  - [Bug Severity labels](#bug-severity-labels)
19
     - [Severity impact guidance](#severity-impact-guidance)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
  - [Label for community contributors](#label-for-community-contributors)
- [Implement design & UI elements](#implement-design--ui-elements)
- [Issue tracker](#issue-tracker)
  - [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)
- [Merge requests](#merge-requests)
  - [Merge request guidelines](#merge-request-guidelines)
  - [Contribution acceptance criteria](#contribution-acceptance-criteria)
- [Definition of done](#definition-of-done)
- [Style guides](#style-guides)

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

## Contribute to GitLab

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

Thank you for your interest in contributing to GitLab. This guide details how
to contribute to GitLab in a way that is efficient for everyone.

Looking for something to work on? Look for issues with the label [Accepting Merge Requests](#i-want-to-contribute).

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.

If you have read this guide and want to know how the GitLab [core team]
operates please see [the GitLab contributing process](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/PROCESS.md).

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

## Security vulnerability disclosure

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.

## 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/).

## Closing policy for issues and merge requests

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.

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

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

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
coach is going to finish the merge request we assign the
~"coach will finish" label.

## Helping others

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].

Sign up for the mailing list, answer GitLab questions on StackOverflow or
respond in the IRC channel. You can also sign up on [CodeTriage][codetriage] to help with
the remaining issues on the GitHub issue tracker.

## I want to contribute!

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
please consider we favor
[asynchronous communication](https://about.gitlab.com/handbook/communication/#internal-communication) over real time communication. Thanks for your contribution!

## Contribution Flow

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

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

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.

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.

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.

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.

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.

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.

## Workflow labels

Rémy Coutable's avatar
Rémy Coutable committed
155
This [documentation](issue_workflow.md) outlines the current workflow labels.
156 157 158

### Type labels

Rémy Coutable's avatar
Rémy Coutable committed
159
This [documentation](issue_workflow.md) outlines the current type labels.
160 161 162

### Subject labels

Rémy Coutable's avatar
Rémy Coutable committed
163
This [documentation](issue_workflow.md) outlines the current subject labels.
164 165 166

### Team labels

Rémy Coutable's avatar
Rémy Coutable committed
167
This [documentation](issue_workflow.md) outlines the current team labels.
168 169 170

### Milestone labels

Rémy Coutable's avatar
Rémy Coutable committed
171
This [documentation](issue_workflow.md) outlines the current milestone labels.
172 173 174

### Bug Priority labels

Rémy Coutable's avatar
Rémy Coutable committed
175
This [documentation](issue_workflow.md) outlines the current bug priority  labels.
176 177 178

### Bug Severity labels

Rémy Coutable's avatar
Rémy Coutable committed
179
This [documentation](issue_workflow.md) outlines the current severity labels.
180 181 182

#### Severity impact guidance

Rémy Coutable's avatar
Rémy Coutable committed
183
This [documentation](issue_workflow.md) outlines the current severity impact guidance.
184 185 186

### Label for community contributors

Rémy Coutable's avatar
Rémy Coutable committed
187
This [documentation](issue_workflow.md) outlines the current policy regarding community contributor issues.
188 189 190

## Implement design & UI elements

Rémy Coutable's avatar
Rémy Coutable committed
191
This [documentation](design.md) outlines the current design and UI guidelines.
192 193 194

## Issue tracker

Rémy Coutable's avatar
Rémy Coutable committed
195
This [documentation](issue_workflow.md) outlines the issue tracker process.
196 197 198

### Issue triaging

Rémy Coutable's avatar
Rémy Coutable committed
199
This [documentation](issue_workflow.md) outlines the current issue triaging process.
200 201 202

### Feature proposals

Rémy Coutable's avatar
Rémy Coutable committed
203
This [documentation](issue_workflow.md) outlines the feature proposal process.
204 205 206 207 208 209 210

### Issue tracker guidelines

This [documentation](issue_workflow.md) outlines the issue tracker guidelines.

### Issue weight

Rémy Coutable's avatar
Rémy Coutable committed
211
This [documentation](issue_workflow.md) outlines the issue weight guidelines.
212 213 214

### Regression issues

Rémy Coutable's avatar
Rémy Coutable committed
215
This [documentation](issue_workflow.md) outlines the regression issue process.
216 217 218

### Technical and UX debt

Rémy Coutable's avatar
Rémy Coutable committed
219
This [documentation](issue_workflow.md) about technical and UX debt has been moved.
220 221 222

### Stewardship

Rémy Coutable's avatar
Rémy Coutable committed
223
This [documentation](issue_workflow.md) outlines the stewardship process.
224 225 226

## Merge requests

Rémy Coutable's avatar
Rémy Coutable committed
227
This [documentation](merge_request_workflow.md) outlines the current merge request process.
228 229 230

### Merge request guidelines

Rémy Coutable's avatar
Rémy Coutable committed
231
This [documentation](merge_request_workflow.md) outlines the current merge request guidelines.
232 233 234

### Contribution acceptance criteria

Rémy Coutable's avatar
Rémy Coutable committed
235
This [documentation](merge_request_workflow.md) outlines the current acceptance criteria for contributions.
236 237 238

## Definition of done

Rémy Coutable's avatar
Rémy Coutable committed
239
This [documentation](merge_request_workflow.md) outlines the definition of done.
240 241

## Style guides
Rémy Coutable's avatar
Rémy Coutable committed
242
This [documentation](design.md) outlines the current style guidelines.
243 244 245 246

---

[Return to Development documentation](../README.md)