diff options
Diffstat (limited to 'doc/development/contributing')
-rw-r--r-- | doc/development/contributing/index.md | 100 | ||||
-rw-r--r-- | doc/development/contributing/issue_workflow.md | 12 | ||||
-rw-r--r-- | doc/development/contributing/merge_request_workflow.md | 8 | ||||
-rw-r--r-- | doc/development/contributing/style_guides.md | 2 |
4 files changed, 73 insertions, 49 deletions
diff --git a/doc/development/contributing/index.md b/doc/development/contributing/index.md index 8270e52e0ab..aebff633f58 100644 --- a/doc/development/contributing/index.md +++ b/doc/development/contributing/index.md @@ -3,35 +3,40 @@ Thank you for your interest in contributing to GitLab. This guide details how 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/community/contribute/). +For a first-time step-by-step guide to the contribution process, see our +[Contributing to GitLab](https://about.gitlab.com/community/contribute/) page. -Looking for something to work on? Look for issues with the label [`Accepting merge requests`](#i-want-to-contribute). +Looking for something to work on? Look for issues with the label +[`~Accepting merge requests`](#how-to-contribute). -GitLab comes in 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. +GitLab comes in two flavors: -To get an overview of GitLab community membership including those that would be reviewing or merging your contributions, please visit [the community roles page](community_roles.md). +- GitLab Community Edition (CE), our free and open source edition. +- GitLab Enterprise Edition (EE), which is our commercial edition. + +Throughout this guide you will see references to CE and EE for abbreviation. + +To get an overview of GitLab community membership, including those that would review or merge +your contributions, visit [the community roles page](community_roles.md). If you want to know how the GitLab [core team](https://about.gitlab.com/community/core-team/) -operates please see [the GitLab contributing process](https://gitlab.com/gitlab-org/gitlab/blob/master/PROCESS.md). +operates, see [the GitLab contributing process](https://gitlab.com/gitlab-org/gitlab/blob/master/PROCESS.md). -[GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/) +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 +Report suspected security vulnerabilities in private to `support@gitlab.com`, also see the [disclosure section on the GitLab.com website](https://about.gitlab.com/security/disclosure/). -Please do **NOT** create publicly viewable issues for suspected security -vulnerabilities. + +DANGER: **Danger:** +Do **NOT** create publicly viewable issues for suspected security vulnerabilities. ## Code of conduct We want to create a welcoming environment for everyone who is interested in contributing. -Please visit our [Code of Conduct page](https://about.gitlab.com/community/contribute/code-of-conduct/) to learn more about our commitment to an open and welcoming environment. +Visit our [Code of Conduct page](https://about.gitlab.com/community/contribute/code-of-conduct/) to learn more about our commitment to an open and welcoming environment. ## Closing policy for issues and merge requests @@ -40,39 +45,56 @@ 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 +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](https://about.gitlab.com/company/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. When a team member picks up a community contribution, +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](https://about.gitlab.com/company/team/). +- 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. + +When a team member picks up a community contribution, we credit the original author by adding a changelog entry crediting the author and optionally include the original author on at least one of the commits within the MR. ## 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](https://about.gitlab.com/get-help/). +Help other GitLab users when you can. +The methods people use to seek help can be found on the [getting help page](https://about.gitlab.com/get-help/). -Sign up for the mailing list, answer GitLab questions on StackOverflow or -respond in the IRC channel. +Sign up for the mailing list, answer GitLab questions on StackOverflow or respond in the IRC channel. -## I want to contribute +## How to contribute If you want to contribute to GitLab, -[issues with the `Accepting merge requests` label](issue_workflow.md#label-for-community-contributors) +[issues with the `~Accepting merge requests` label](issue_workflow.md#label-for-community-contributors) are a great place to start. + If you have any questions or need help visit [Getting Help](https://about.gitlab.com/get-help/) 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! +learn how to communicate with GitLab. We have a [Gitter channel for contributors](https://gitter.im/gitlab/contributors), +however we favor +[asynchronous communication](https://about.gitlab.com/handbook/communication/#internal-communication) over real time communication. + +Thanks for your contribution! + +### GitLab Development Kit + +The GitLab Development Kit (GDK) helps contributors run a local GitLab instance with all the +required dependencies. It can be used to test changes to GitLab and related projects before raising +a Merge Request. + +For more information, see the [`gitlab-development-kit`](https://gitlab.com/gitlab-org/gitlab-development-kit) +project. ## Contribution Flow @@ -92,7 +114,7 @@ When submitting code to GitLab, you may feel that your contribution requires the 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. -## Issues workflow +### Issues workflow This [documentation](issue_workflow.md) outlines the current issue workflow: @@ -105,7 +127,7 @@ This [documentation](issue_workflow.md) outlines the current issue workflow: - [Technical and UX debt](issue_workflow.md#technical-and-ux-debt) - [Technical debt in follow-up issues](issue_workflow.md#technical-debt-in-follow-up-issues) -## Merge requests workflow +### Merge requests workflow This [documentation](merge_request_workflow.md) outlines the current merge request process. @@ -120,13 +142,15 @@ This [documentation](style_guides.md) outlines the current style guidelines. ## Implement design & UI elements -This [design documentation](design.md) outlines the current process for implementing -design & UI elements. +This [design documentation](design.md) outlines the current process for implementing design and UI +elements. -## Getting an Enterprise Edition License +## Contribute documentation -If you need a license for contributing to an EE-feature, please [follow these instructions](https://about.gitlab.com/handbook/marketing/community-relations/code-contributor-program/#for-contributors-to-the-gitlab-enterprise-edition-ee). +For information on how to contribute documentation, see GitLab +[documentation guidelines](../documentation/index.md). ---- +## Getting an Enterprise Edition License -[Return to Development documentation](../README.md) +If you need a license for contributing to an EE-feature, see +[relevant information](https://about.gitlab.com/handbook/marketing/community-relations/code-contributor-program/#for-contributors-to-the-gitlab-enterprise-edition-ee). diff --git a/doc/development/contributing/issue_workflow.md b/doc/development/contributing/issue_workflow.md index 13ff35ed65c..be416bf636e 100644 --- a/doc/development/contributing/issue_workflow.md +++ b/doc/development/contributing/issue_workflow.md @@ -36,7 +36,7 @@ project. To allow for asynchronous issue handling, we use [milestones](https://gitlab.com/groups/gitlab-org/-/milestones) and [labels](https://gitlab.com/gitlab-org/gitlab/-/labels). Leads and product managers handle most of the -scheduling into milestones. Labelling is a task for everyone. +scheduling into milestones. Labeling is a task for everyone. Most issues will have labels for at least one of the following: @@ -156,9 +156,9 @@ As a team needs some way to collect the work their members are planning to be as Normally there is a 1:1 relationship between Stage labels and Group labels. In the spirit of "Everyone can contribute", any issue can be picked up by any group, depending on current priorities. When picking up an issue belonging to a different -group, it should be relabelled. For example, if an issue labelled `~"devops::create"` +group, it should be relabeled. For example, if an issue labeled `~"devops::create"` and `~"group::knowledge"` is picked up by someone in the Access group of the Plan stage, -the issue should be relabelled as `~"group::access"` while keeping the original +the issue should be relabeled as `~"group::access"` while keeping the original `~"devops::create"` unchanged. We also use stage and group labels to help quantify our [throughput](https://about.gitlab.com/handbook/engineering/management/throughput/). @@ -264,7 +264,7 @@ release. There are three levels of Release Scoping labels: milestone. If these issues are not done in the current release, they will strongly be considered for the next release. - ~"Next Patch Release": Issues to put in the next patch release. Work on these - first, and add the "Pick Into X" label to the merge request, along with the + first, and add the `~"Pick into X.Y"` label to the merge request, along with the appropriate milestone. Each issue scheduled for the current milestone should be labeled ~Deliverable @@ -347,7 +347,7 @@ there is the ~"stewardship" label. This label is to be used for issues in which the stewardship of GitLab is a topic of discussion. For instance if GitLab Inc. is planning to add -features from GitLab EE to GitLab CE, related issues would be labelled with +features from GitLab EE to GitLab CE, related issues would be labeled with ~"stewardship". A recent example of this was the issue for @@ -461,7 +461,7 @@ fixing in the same MR, but not worth creating a follow-up issue for. Renaming a method that is used in many places to make its intent slightly clearer may be worth fixing, but it should not happen in the same MR, and is generally not worth the overhead of having an issue of its own. These issues would invariably -be labelled `~P4 ~S4` if we were to create them. +be labeled `~P4 ~S4` if we were to create them. More severe technical debt can have implications for development velocity. If it isn't addressed in a timely manner, the codebase becomes needlessly difficult diff --git a/doc/development/contributing/merge_request_workflow.md b/doc/development/contributing/merge_request_workflow.md index 0ac08ec2eae..a70fadfe8a9 100644 --- a/doc/development/contributing/merge_request_workflow.md +++ b/doc/development/contributing/merge_request_workflow.md @@ -17,10 +17,10 @@ wireframes of the proposed feature if it will also change the UI. Merge requests should be submitted to the appropriate project at GitLab.com, for example [GitLab](https://gitlab.com/gitlab-org/gitlab/-/merge_requests), [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests), -[GitLab Omnibus](https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests), etc. +[Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests), etc. If you are new to GitLab development (or web development in general), see the -[I want to contribute!](index.md#i-want-to-contribute) section to get started with +[how to contribute](index.md#how-to-contribute) section to get started with some potentially easy issues. To start developing GitLab, download the [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit) @@ -138,7 +138,7 @@ For more information see [How to Write a Git Commit Message](https://chris.beams Example commit message template that can be used on your machine that embodies the above (guide for [how to apply template](https://codeinthehole.com/tips/a-useful-template-for-commit-messages/)): -```text +```plaintext # (If applied, this commit will...) <subject> (Max 50 char) # |<---- Using a Maximum Of 50 Characters ---->| @@ -244,7 +244,7 @@ request: 1. The [CI environment preparation](https://gitlab.com/gitlab-org/gitlab/blob/master/scripts/prepare_build.sh). 1. The [Omnibus package creator](https://gitlab.com/gitlab-org/omnibus-gitlab). -### Incremental improvements +## Incremental improvements We allow engineering time to fix small problems (with or without an issue) that are incremental improvements, such as: diff --git a/doc/development/contributing/style_guides.md b/doc/development/contributing/style_guides.md index 9a0b654f47f..9e4870eadc4 100644 --- a/doc/development/contributing/style_guides.md +++ b/doc/development/contributing/style_guides.md @@ -53,7 +53,7 @@ should enable all RuboCop rules to avoid style-related discussions/nitpicking/back-and-forth in reviews. Additionally, we have a dedicated -[newlines styleguide](../newlines_styleguide.md), as well as dedicated +[newlines style guide](../newlines_styleguide.md), as well as dedicated [test-specific style guides and best practices](../testing_guide/index.md). ## Database migrations |