debian-mirror-gitlab/doc/development/contributing/index.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

145 lines
7.6 KiB
Markdown
Raw Normal View History

2021-01-03 14:25:43 +05:30
---
type: reference, dev
stage: none
group: Development
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2021-01-03 14:25:43 +05:30
---
2018-12-05 23:21:45 +05:30
# Contribute to GitLab
2018-11-20 20:47:30 +05:30
Thank you for your interest in contributing to GitLab. This guide details how
2018-12-13 13:39:08 +05:30
to contribute to GitLab in a way that is easy for everyone.
2018-11-20 20:47:30 +05:30
2020-05-24 23:13:21 +05:30
For a first-time step-by-step guide to the contribution process, see our
[Contributing to GitLab](https://about.gitlab.com/community/contribute/) page.
2018-11-20 20:47:30 +05:30
2020-06-23 00:09:42 +05:30
Looking for something to work on? See the
[How to contribute](#how-to-contribute) section for more information.
2018-12-13 13:39:08 +05:30
2020-05-24 23:13:21 +05:30
GitLab comes in two flavors:
2018-11-20 20:47:30 +05:30
2020-05-24 23:13:21 +05:30
- 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.
2018-11-20 20:47:30 +05:30
## Code of conduct
2019-07-31 22:56:46 +05:30
We want to create a welcoming environment for everyone who is interested in contributing.
2023-04-23 21:23:45 +05:30
For more information about our commitment to an open and welcoming environment, see our [Code of Conduct page](https://about.gitlab.com/community/contribute/code-of-conduct/).
2018-11-20 20:47:30 +05:30
Issues and merge requests should be in English and contain appropriate language
for audiences of all ages.
2020-05-24 23:13:21 +05:30
## How to contribute
2018-11-20 20:47:30 +05:30
2020-06-23 00:09:42 +05:30
If you would like to contribute to GitLab:
- Issues with the
2023-05-27 22:25:52 +05:30
[`~Seeking community contributions` label](../labels/index.md#label-for-community-contributors)
2020-06-23 00:09:42 +05:30
are a great place to start.
2020-11-24 15:15:51 +05:30
- Optimizing our tests is another great opportunity to contribute. You can use
[RSpec profiling statistics](https://gitlab-org.gitlab.io/rspec_profiling_stats/) to identify
slowest tests. These tests are good candidates for improving and checking if any of
[best practices](../testing_guide/best_practices.md)
could speed them up.
2020-06-23 00:09:42 +05:30
- Consult the [Contribution Flow](#contribution-flow) section to learn the process.
2020-05-24 23:13:21 +05:30
2020-06-23 00:09:42 +05:30
### Contribution flow
The general flow of contributing to GitLab is:
2023-05-27 22:25:52 +05:30
1. [Read about](https://gitlab.com/gitlab-community/meta) and [request access](https://gitlab.com/gitlab-community/meta#request-access-to-community-forks)
to the GitLab Community forks. In some cases, you will want to set up the
2020-06-23 00:09:42 +05:30
[GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit) to
2023-05-27 22:25:52 +05:30
[develop against the GitLab community fork](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/index.md#develop-in-your-own-gitlab-fork).
1. Create a feature branch and make changes in the [GitLab community fork](https://gitlab.com/gitlab-community/gitlab).
2020-06-23 00:09:42 +05:30
1. When you're ready, [create a new merge request](../../user/project/merge_requests/creating_merge_requests.md).
1. In the merge request's description:
- Ensure you provide complete and accurate information.
- Review the provided checklist.
2022-07-23 23:45:48 +05:30
1. Once you're ready, mark your MR as ready for review with `@gitlab-bot ready`.
- This will add the `~"workflow::ready for review"` label, and then automatically assign a merge request coach as reviewer.
- If you know a relevant reviewer (for example, someone that was involved a related issue), you can also
assign them directly with `@gitlab-bot ready @username`.
#### Review process
2020-06-23 00:09:42 +05:30
When you submit code to GitLab, we really want it to get merged! However, we always review
submissions carefully, and this takes time. Code submissions will usually be reviewed by two
[domain experts](../code_review.md#domain-experts) before being merged:
- A [reviewer](../code_review.md#the-responsibility-of-the-reviewer).
- A [maintainer](../code_review.md#the-responsibility-of-the-maintainer).
2022-07-23 23:45:48 +05:30
After review, the reviewer could ask the author to update the merge request. In that case, the reviewer would set the `~"workflow::in dev"` label.
Once the merge request has been updated and set as ready for review again (for example, with `@gitlab-bot ready`), they will review the code again.
This process may repeat any number of times before merge, to help make the contribution the best it can be.
Lastly, keep the following in mind when submitting merge requests:
2020-06-23 00:09:42 +05:30
- When reviewers are reading through a merge request they may request guidance from other
reviewers.
2021-02-22 17:27:13 +05:30
- If the code quality is found to not meet GitLab standards, the merge request reviewer will
2020-06-23 00:09:42 +05:30
provide guidance and refer the author to our:
2021-01-29 00:20:46 +05:30
- [Documentation](../documentation/styleguide/index.md) style guide.
2021-02-22 17:27:13 +05:30
- [Code style guides](style_guides.md).
2020-06-23 00:09:42 +05:30
- Sometimes style guides will be followed but the code will lack structural integrity, or the
2021-04-29 21:17:54 +05:30
reviewer will have reservations about the code's overall quality. When there is a reservation,
2020-06-23 00:09:42 +05:30
the reviewer will inform the author and provide some guidance.
- Though GitLab generally allows anyone to indicate
2021-06-08 01:23:25 +05:30
[approval](../../user/project/merge_requests/approvals/index.md) of merge requests, the
2020-06-23 00:09:42 +05:30
maintainer may require [approvals from certain reviewers](../code_review.md#approval-guidelines)
before merging a merge request.
2022-07-23 23:45:48 +05:30
- Sometimes a maintainer may choose to close a merge request. They will fully disclose why it will not
be merged, as well as some guidance. The maintainers will be open to discussion about how to change
the code so it can be approved and merged in the future.
2020-06-23 00:09:42 +05:30
2022-07-23 23:45:48 +05:30
#### Getting attention on your merge request
2020-06-23 00:09:42 +05:30
GitLab will do its best to review community contributions as quickly as possible. Specially
appointed developers review community contributions daily. Look at the
[team page](https://about.gitlab.com/company/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
2021-10-27 15:23:28 +05:30
written some front-end code, you should mention the frontend merge request coach. If
your code has multiple disciplines, you may mention multiple merge request coaches.
2020-06-23 00:09:42 +05:30
GitLab receives a lot of community contributions. If your code has not been reviewed within two
2022-07-23 23:45:48 +05:30
working days of its initial submission, you can ask for help with `@gitlab-bot help`.
2020-06-23 00:09:42 +05:30
#### Issues workflow
2018-11-20 20:47:30 +05:30
2019-12-04 20:38:33 +05:30
This [documentation](issue_workflow.md) outlines the current issue workflow:
2018-11-20 20:47:30 +05:30
2019-03-02 22:35:43 +05:30
- [Issue triaging](issue_workflow.md#issue-triaging)
2023-05-27 22:25:52 +05:30
- [Labels](../labels/index.md)
2019-03-02 22:35:43 +05:30
- [Feature proposals](issue_workflow.md#feature-proposals)
- [Issue weight](issue_workflow.md#issue-weight)
- [Regression issues](issue_workflow.md#regression-issues)
2023-05-27 22:25:52 +05:30
- [Technical and UX debt](../labels/index.md#technical-and-ux-debt)
2019-12-04 20:38:33 +05:30
- [Technical debt in follow-up issues](issue_workflow.md#technical-debt-in-follow-up-issues)
2018-11-20 20:47:30 +05:30
2020-06-23 00:09:42 +05:30
#### Merge requests workflow
2018-11-20 20:47:30 +05:30
This [documentation](merge_request_workflow.md) outlines the current merge request process.
2022-08-27 11:52:29 +05:30
- [Merge request guidelines](merge_request_workflow.md#merge-request-guidelines-for-contributors)
2019-03-02 22:35:43 +05:30
- [Contribution acceptance criteria](merge_request_workflow.md#contribution-acceptance-criteria)
- [Definition of done](merge_request_workflow.md#definition-of-done)
2019-07-07 11:18:12 +05:30
- [Dependencies](merge_request_workflow.md#dependencies)
2018-11-20 20:47:30 +05:30
2023-04-23 21:23:45 +05:30
## Closing policy for issues and merge requests
2019-12-26 22:10:19 +05:30
2023-04-23 21:23:45 +05:30
- For the criteria for closing issues, see [the Issue Triage handbook page](https://about.gitlab.com/handbook/engineering/quality/issue-triage/#outdated-issues).
- For the criteria for closing merge requests, see [the Merge Request Workflow](merge_request_workflow.md).
2019-12-26 22:10:19 +05:30
2020-05-24 23:13:21 +05:30
## Getting an Enterprise Edition License
2018-11-20 20:47:30 +05:30
2020-05-24 23:13:21 +05:30
If you need a license for contributing to an EE-feature, see
2023-03-04 22:38:38 +05:30
[relevant information](https://about.gitlab.com/handbook/marketing/community-relations/code-contributor-program/operations/#contributing-to-the-gitlab-enterprise-edition-ee).
2023-04-23 21:23:45 +05:30
## Finding help
- [Get help](https://about.gitlab.com/get-help/).
- Join the community-run [Discord server](https://discord.com/invite/gitlab) and find other contributors in the `#contribute` channel.