Commit bfd61295 authored by Rémy Coutable's avatar Rémy Coutable

Improve the contributing documentation

This removes duplicated content from CONTRIBUTING.md and consolidate
everything under doc/development/contributing/.

This also fixes missing links.

Lastly, this moves the style guides from the "Implement design & UI
elements" page to a new "Style guides" page.
Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent c230b5d1
...@@ -64,228 +64,56 @@ As of July 2018, all the documentation for contributing to the GitLab project ha ...@@ -64,228 +64,56 @@ As of July 2018, all the documentation for contributing to the GitLab project ha
## Contribute to GitLab ## Contribute to GitLab
Thank you for your interest in contributing to GitLab. This guide details how This [documentation](doc/development/contributing/index.md#contribute-to-gitlab) has been moved.
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/).
Looking for something to work on? Look for issues in the [Backlog (Accepting merge requests) milestone](#i-want-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.
To get an overview of GitLab community membership including those that would be reviewing or merging your contributions, please visit [the community roles page](doc/development/contributing/community_roles.md).
If you want to know how the GitLab [core team]
operates please see [the GitLab contributing process](PROCESS.md).
[GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/)
## Security vulnerability disclosure ## Security vulnerability disclosure
Please report suspected security vulnerabilities in private to This [documentation](doc/development/contributing/index.md#security-vulnerability-disclosure) has been moved.
`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 ## Code of Conduct
### Our Pledge This [documentation](doc/development/contributing/index.md#code-of-conduct) has been moved.
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
### Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
### Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
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, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
### Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
### Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at conduct@gitlab.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
### Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
## Closing policy for issues and merge requests ## Closing policy for issues and merge requests
GitLab is a popular open source project and the capacity to deal with issues This [documentation](doc/development/contributing/index.md#closing-policy-for-issues-and-merge-requests) has been moved.
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 ## Helping others
Please help other GitLab users when you can. This [documentation](doc/development/contributing/index.md#helping-others) has been moved.
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! ## I want to contribute!
If you want to contribute to GitLab, [issues in the Backlog (Accepting merge requests)](https://gitlab.com/gitlab-org/gitlab-ce/issues?scope=all&utf8=✓&state=opened&assignee_id=0&milestone_title=Backlog%20&#40;Accepting%20merge%20requests&#41;) This [documentation](doc/development/contributing/index.md#i-want-to-contribute) has been moved.
are 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 ## Contribution Flow
When contributing to GitLab, your merge request is subject to review by merge request maintainers of a particular specialty. This [documentation](doc/development/contributing/index.md) has been moved.
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.
[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
## Workflow labels ## Workflow labels
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Type labels ### Type labels
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Subject labels ### Subject labels
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Team labels ### Team labels
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Release Scoping labels ### Release Scoping labels
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Priority labels ### Priority labels
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Severity labels ### Severity labels
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
...@@ -294,17 +122,14 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo ...@@ -294,17 +122,14 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Label for community contributors ### Label for community contributors
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
## Implement design & UI elements ## Implement design & UI elements
This [documentation](doc/development/contributing/design.md) has been moved. This [documentation](doc/development/contributing/design.md) has been moved.
## Issue tracker ## Issue tracker
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
...@@ -313,7 +138,6 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo ...@@ -313,7 +138,6 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Feature proposals ### Feature proposals
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
...@@ -322,32 +146,26 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo ...@@ -322,32 +146,26 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Issue weight ### Issue weight
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Regression issues ### Regression issues
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Technical and UX debt ### Technical and UX debt
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
### Stewardship ### Stewardship
This [documentation](doc/development/contributing/issue_workflow.md) has been moved. This [documentation](doc/development/contributing/issue_workflow.md) has been moved.
## Merge requests ## Merge requests
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
### Merge request guidelines ### Merge request guidelines
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
...@@ -357,12 +175,10 @@ This [documentation](doc/development/contributing/merge_request_workflow.md) has ...@@ -357,12 +175,10 @@ This [documentation](doc/development/contributing/merge_request_workflow.md) has
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
## Definition of done ## Definition of done
This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved.
## Style guides ## Style guides
This [documentation](doc/development/contributing/design.md) has been moved. This [documentation](doc/development/contributing/design.md) has been moved.
...@@ -8,7 +8,7 @@ description: 'Learn how to contribute to GitLab.' ...@@ -8,7 +8,7 @@ description: 'Learn how to contribute to GitLab.'
## Get started! ## Get started!
- Set up GitLab's development environment with [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/README.md) - Set up GitLab's development environment with [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/README.md)
- [GitLab contributing guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md) - [GitLab contributing guide](contributing/index.md)
- [Architecture](architecture.md) of GitLab - [Architecture](architecture.md) of GitLab
- [Rake tasks](rake_tasks.md) for development - [Rake tasks](rake_tasks.md) for development
......
...@@ -9,4 +9,8 @@ GitLab community members and their privileges/responsibilities. ...@@ -9,4 +9,8 @@ GitLab community members and their privileges/responsibilities.
| Developer |Has access to GitLab internal infrastructure & issues (e.g. HR-related) | GitLab employee or a Core Team member (with an NDA) | | Developer |Has access to GitLab internal infrastructure & issues (e.g. HR-related) | GitLab employee or a Core Team member (with an NDA) |
| Contributor | Can make contributions to all GitLab public projects | Have a GitLab.com account | | Contributor | Can make contributions to all GitLab public projects | Have a GitLab.com account |
[List of current reviewers/maintainers](https://about.gitlab.com/handbook/engineering/projects/#gitlab-ce) [List of current reviewers/maintainers](https://about.gitlab.com/handbook/engineering/projects/#gitlab-ce).
\ No newline at end of file
---
[Return to Contributing documentation](index.md)
...@@ -13,7 +13,10 @@ There is a special type label called ~"product discovery". It represents a disco ...@@ -13,7 +13,10 @@ There is a special type label called ~"product discovery". It represents a disco
~"product discovery" issues are like any other issue and should contain a milestone label, ~"Deliverable" or ~"Stretch", when scheduled in the current milestone. ~"product discovery" issues are like any other issue and should contain a milestone label, ~"Deliverable" or ~"Stretch", when scheduled in the current milestone.
The initial issue should be about the problem we are solving. If a separate [product discovery issue](#product-discovery-issues) is needed for additional research and design work, it will be created by a PM or UX person. Assign the ~UX, ~"product discovery" and ~"Deliverable" labels, add a milestone and use a title that makes it clear that the scheduled issue is product discovery The initial issue should be about the problem we are solving. If a separate [product discovery issue](https://about.gitlab.com/handbook/engineering/ux/ux-department-workflow/#how-we-use-labels)
is needed for additional research and design work, it will be created by a PM or UX person.
Assign the ~UX, ~"product discovery" and ~"Deliverable" labels, add a milestone and
use a title that makes it clear that the scheduled issue is product discovery
(e.g. `Product discovery for XYZ`). (e.g. `Product discovery for XYZ`).
In order to complete a product discovery issue in a release, you must complete the following: In order to complete a product discovery issue in a release, you must complete the following:
...@@ -23,34 +26,6 @@ In order to complete a product discovery issue in a release, you must complete t ...@@ -23,34 +26,6 @@ In order to complete a product discovery issue in a release, you must complete t
1. Copy the design to the description of the delivery issue for which the product discovery issue was created. Do not simply refer to the product discovery issue as a separate source of truth. 1. Copy the design to the description of the delivery issue for which the product discovery issue was created. Do not simply refer to the product discovery issue as a separate source of truth.
1. In some cases, a product discovery issue also identifies future enhancements that will not go into the issue that originated the product discovery issue. For these items, create new issues containing the designs to ensure they are not lost. Put the issues in the backlog if they are agreed upon as good ideas. Otherwise leave them for triage. 1. In some cases, a product discovery issue also identifies future enhancements that will not go into the issue that originated the product discovery issue. For these items, create new issues containing the designs to ensure they are not lost. Put the issues in the backlog if they are agreed upon as good ideas. Otherwise leave them for triage.
## Style guides
1. [Ruby](https://github.com/bbatsov/ruby-style-guide).
Important sections include [Source Code Layout][rss-source] and
[Naming][rss-naming]. Use:
- multi-line method chaining style **Option A**: dot `.` on the second line
- string literal quoting style **Option A**: single quoted by default
1. [Rails](https://github.com/bbatsov/rails-style-guide)
1. [Newlines styleguide][newlines-styleguide]
1. [Testing][testing]
1. [JavaScript styleguide][js-styleguide]
1. [SCSS styleguide][scss-styleguide]
1. [Shell commands](../shell_commands.md) created by GitLab
contributors to enhance security
1. [Database Migrations](../migration_style_guide.md)
1. [Markdown](http://www.cirosantilli.com/markdown-styleguide)
1. [Documentation styleguide](https://docs.gitlab.com/ee/development/documentation/styleguide.html)
1. Interface text should be written subjectively instead of objectively. It
should be the GitLab core team addressing a person. It should be written in
present time and never use past tense (has been/was). For example instead
of _prohibited this user from being saved due to the following errors:_ the
text should be _sorry, we could not create your account because:_
1. Code should be written in [US English][us-english]
This is also the style used by linting tools such as
[RuboCop](https://github.com/bbatsov/rubocop),
[PullReview](https://www.pullreview.com/) and [Hound CI](https://houndci.com).
--- ---
[Return to Contributing documentation](index.md) [Return to Contributing documentation](index.md)
# Contribute to GitLab # 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 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. 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/).
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 in the [Backlog (Accepting merge requests) milestone](#i-want-to-contribute).
GitLab comes into two flavors, GitLab Community Edition (CE) our free and open GitLab comes in two flavors, GitLab Community Edition (CE) our free and open
source edition, and GitLab Enterprise Edition (EE) which is our commercial source edition, and GitLab Enterprise Edition (EE) which is our commercial
edition. Throughout this guide you will see references to CE and EE for edition. Throughout this guide you will see references to CE and EE for
abbreviation. abbreviation.
If you have read this guide and want to know how the GitLab [core team] 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).
If you 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). 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/) [GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/)
## Security vulnerability disclosure ## Security vulnerability disclosure
...@@ -28,33 +30,77 @@ vulnerabilities. ...@@ -28,33 +30,77 @@ vulnerabilities.
## Code of conduct ## Code of conduct
As contributors and maintainers of this project, we pledge to respect all ### Our Pledge
people who contribute through reporting issues, posting feature requests,
updating documentation, submitting pull requests or patches, and other In the interest of fostering an open and welcoming environment, we as
activities. contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
### Our Standards
We are committed to making participation in this project a harassment-free Examples of behavior that contributes to creating a positive environment
experience for everyone, regardless of level of experience, gender, gender include:
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 * Using welcoming and inclusive language
language or imagery, derogatory comments or personal attacks, trolling, public * Being respectful of differing viewpoints and experiences
or private harassment, insults, or other unprofessional conduct. * Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
### Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct. Project maintainers who do not that are not aligned to this Code of Conduct, or to ban temporarily or
follow the Code of Conduct may be removed from the project team. permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
### Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
### Enforcement
This code of conduct applies both within project spaces and in public spaces Instances of abusive, harassing, or otherwise unacceptable behavior may be
when an individual is representing the project or its community. reported by contacting the project team at conduct@gitlab.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior can be Project maintainers who do not follow or enforce the Code of Conduct in good
reported by emailing `contact@gitlab.com`. faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
This Code of Conduct is adapted from the [Contributor Covenant][contributor-covenant], version 1.1.0, ### Attribution
available at [http://contributor-covenant.org/version/1/1/0/](http://contributor-covenant.org/version/1/1/0/).
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
## Closing policy for issues and merge requests ## Closing policy for issues and merge requests
...@@ -87,8 +133,8 @@ the remaining issues on the GitHub issue tracker. ...@@ -87,8 +133,8 @@ the remaining issues on the GitHub issue tracker.
## I want to contribute! ## I want to contribute!
If you want to contribute to GitLab [issues with the label `Accepting Merge Requests` and small weight][accepting-mrs-weight] If you want to contribute to GitLab, [issues in the `Backlog (Accepting merge requests)` milestone][accepting-mrs-weight]
is a great place to start. Issues with a lower weight (1 or 2) are deemed are 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, 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 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 learn how to communicate with GitLab. If you're looking for a Gitter or Slack channel
...@@ -117,93 +163,39 @@ When your code contains more than 500 changes, any major breaking changes, or an ...@@ -117,93 +163,39 @@ When your code contains more than 500 changes, any major breaking changes, or an
This [documentation](issue_workflow.md) outlines the current workflow labels. This [documentation](issue_workflow.md) outlines the current workflow labels.
### Type labels * [Type labels](issue_workflow.md#type-labels)
* [Subject labels](issue_workflow.md#subject-labels)
This [documentation](issue_workflow.md) outlines the current type labels. * [Team labels](issue_workflow.md#team-labels)
* [Release Scoping labels](issue_workflow.md#release-scoping-labels)
### Subject labels * [Priority labels](issue_workflow.md#priority-labels)
* [Severity labels](issue_workflow.md#severity-labels)
This [documentation](issue_workflow.md) outlines the current subject labels. * [Label for community contributors](issue_workflow.md#label-for-community-contributors)
* [Issue triaging](issue_workflow.md#issue-triaging)
### Team labels * [Feature proposals](issue_workflow.md#feature-proposals)
* [Issue tracker guidelines](issue_workflow.md#issue-tracker-guidelines)
This [documentation](issue_workflow.md) outlines the current team labels. * [Issue weight](issue_workflow.md#issue-weight)
* [Regression issues](issue_workflow.md#regression-issues)
### Milestone labels * [Technical and UX debt](issue_workflow.md#technical-and-ux-debt)
* [Stewardship](issue_workflow.md#stewardship)
This [documentation](issue_workflow.md) outlines the current milestone labels.
### Bug Priority labels
This [documentation](issue_workflow.md) outlines the current bug priority labels.
### Bug Severity labels
This [documentation](issue_workflow.md) outlines the current severity labels.
#### Severity impact guidance
This [documentation](issue_workflow.md) outlines the current severity impact guidance.
### Label for community contributors
This [documentation](issue_workflow.md) outlines the current policy regarding community contributor issues.
## Implement design & UI elements
This [documentation](design.md) outlines the current design and UI guidelines.
## Issue tracker
This [documentation](issue_workflow.md) outlines the issue tracker process.
### Issue triaging
This [documentation](issue_workflow.md) outlines the current issue triaging process.
### Feature proposals
This [documentation](issue_workflow.md) outlines the feature proposal process.
### Issue tracker guidelines
This [documentation](issue_workflow.md) outlines the issue tracker guidelines.
### Issue weight
This [documentation](issue_workflow.md) outlines the issue weight guidelines.
### Regression issues
This [documentation](issue_workflow.md) outlines the regression issue process.
### Technical and UX debt
This [documentation](issue_workflow.md) about technical and UX debt has been moved.
### Stewardship
This [documentation](issue_workflow.md) outlines the stewardship process.
## Merge requests ## Merge requests
This [documentation](merge_request_workflow.md) outlines the current merge request process. This [documentation](merge_request_workflow.md) outlines the current merge request process.
### Merge request guidelines * [Merge request guidelines](merge_request_workflow.md#merge-request-guidelines)
* [Contribution acceptance criteria](merge_request_workflow.md#contribution-acceptance-criteria)
This [documentation](merge_request_workflow.md) outlines the current merge request guidelines. * [Definition of done](merge_request_workflow.md#definition-of-done)
### Contribution acceptance criteria
This [documentation](merge_request_workflow.md) outlines the current acceptance criteria for contributions.
## Definition of done
This [documentation](merge_request_workflow.md) outlines the definition of done.
## Style guides ## Style guides
This [documentation](design.md) outlines the current style guidelines.
This [documentation](style_guides.md) outlines the current style guidelines.
--- ---
[Return to Development documentation](../README.md) [Return to Development documentation](../README.md)
[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?scope=all&utf8=✓&state=opened&assignee_id=0&milestone_title=Backlog%20&#40;Accepting%20merge%20requests&#41;
...@@ -20,7 +20,6 @@ If you come across an issue that has none of these, and you're allowed to set ...@@ -20,7 +20,6 @@ If you come across an issue that has none of these, and you're allowed to set
labels, you can _always_ add the team and type, and often also the subject. labels, you can _always_ add the team and type, and often also the subject.
[milestones-page]: https://gitlab.com/gitlab-org/gitlab-ce/milestones [milestones-page]: https://gitlab.com/gitlab-org/gitlab-ce/milestones
[labels-page]: https://gitlab.com/gitlab-org/gitlab-ce/labels
## Type labels ## Type labels
...@@ -208,6 +207,7 @@ project. ...@@ -208,6 +207,7 @@ project.
[GitLab Triage]: https://gitlab.com/gitlab-org/gitlab-triage [GitLab Triage]: https://gitlab.com/gitlab-org/gitlab-triage
[scheduled pipeline]: https://gitlab.com/gitlab-org/quality/triage-ops/pipeline_schedules/10512/edit [scheduled pipeline]: https://gitlab.com/gitlab-org/quality/triage-ops/pipeline_schedules/10512/edit
[quality/triage-ops]: https://gitlab.com/gitlab-org/quality/triage-ops [quality/triage-ops]: https://gitlab.com/gitlab-org/quality/triage-ops
[team]: https://about.gitlab.com/team/
## Feature proposals ## Feature proposals
...@@ -235,6 +235,8 @@ need to ask one of the [core team] members to add the label, if you do not have ...@@ -235,6 +235,8 @@ need to ask one of the [core team] members to add the label, if you do not have
If you want to create something yourself, consider opening an issue first to If you want to create something yourself, consider opening an issue first to
discuss whether it is interesting to include this in GitLab. discuss whether it is interesting to include this in GitLab.
[fpl]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=feature+proposal
## Issue tracker guidelines ## Issue tracker guidelines
**[Search the issue tracker][ce-tracker]** for similar entries before **[Search the issue tracker][ce-tracker]** for similar entries before
...@@ -331,3 +333,7 @@ A recent example of this was the issue for ...@@ -331,3 +333,7 @@ A recent example of this was the issue for
--- ---
[Return to Contributing documentation](index.md) [Return to Contributing documentation](index.md)
[labels-page]: https://gitlab.com/gitlab-org/gitlab-ce/labels
[ce-tracker]: https://gitlab.com/gitlab-org/gitlab-ce/issues
[ee-tracker]: https://gitlab.com/gitlab-org/gitlab-ee/issues
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
We welcome merge requests with fixes and improvements to GitLab code, tests, We welcome merge requests with fixes and improvements to GitLab code, tests,
and/or documentation. The issues that are specifically suitable for and/or documentation. The issues that are specifically suitable for
community contributions are listed with the label community contributions are listed with the
[`Accepting Merge Requests` on our issue tracker for CE][accepting-mrs-ce] [`Backlog (Accepting merge requests)` milestone in the CE issue tracker][accepting-mrs-ce]
and [EE][accepting-mrs-ee], but you are free to contribute to any other issue and [EE issue tracker][accepting-mrs-ee], but you are free to contribute to any other issue
you want. you want.
Please note that if an issue is marked for the current milestone either before Please note that if an issue is marked for the current milestone either before
...@@ -19,11 +19,16 @@ wireframes if the feature will also change the UI. ...@@ -19,11 +19,16 @@ wireframes if the feature will also change the UI.
Merge requests should be opened at [GitLab.com][gitlab-mr-tracker]. Merge requests should be opened at [GitLab.com][gitlab-mr-tracker].
If you are new to GitLab development (or web development in general), see the If you are new to GitLab development (or web development in general), see the
[I want to contribute!](#i-want-to-contribute) section to get you started with [I want to contribute!](index.md#i-want-to-contribute) section to get you started with
some potentially easy issues. some potentially easy issues.
To start with GitLab development download the [GitLab Development Kit][gdk] and To start with GitLab development download the [GitLab Development Kit][gdk] and
see the [Development section](../README.md) for some guidelines. see the [Development section](../../README.md) for some guidelines.
[accepting-mrs-ce]: https://gitlab.com/gitlab-org/gitlab-ce/issues?milestone_title=Backlog%20&#40;Accepting%20merge%20requests&#41;
[accepting-mrs-ee]: https://gitlab.com/gitlab-org/gitlab-ee/issues?milestone_title=Backlog%20&#40;Accepting%20merge%20requests&#41;
[gitlab-mr-tracker]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests
[gdk]: https://gitlab.com/gitlab-org/gitlab-development-kit
## Merge request guidelines ## Merge request guidelines
...@@ -103,6 +108,10 @@ Please ensure that your merge request meets the contribution acceptance criteria ...@@ -103,6 +108,10 @@ Please ensure that your merge request meets the contribution acceptance criteria
When having your code reviewed and when reviewing merge requests please take the When having your code reviewed and when reviewing merge requests please take the
[code review guidelines](../code_review.md) into account. [code review guidelines](../code_review.md) into account.
[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
[team]: https://about.gitlab.com/team/
## Contribution acceptance criteria ## Contribution acceptance criteria
1. The change is as small as possible 1. The change is as small as possible
...@@ -133,7 +142,7 @@ When having your code reviewed and when reviewing merge requests please take the ...@@ -133,7 +142,7 @@ When having your code reviewed and when reviewing merge requests please take the
[polling with ETag caching][polling-etag]. [polling with ETag caching][polling-etag].
1. Changes after submitting the merge request should be in separate commits 1. Changes after submitting the merge request should be in separate commits
(no squashing). (no squashing).
1. It conforms to the [style guides](#style-guides) and the following: 1. It conforms to the [style guides](style_guides.md) and the following:
- If your change touches a line that does not follow the style, modify the - If your change touches a line that does not follow the style, modify the
entire line to follow it. This prevents linting tools from generating warnings. entire line to follow it. This prevents linting tools from generating warnings.
- Don't touch neighbouring lines. As an exception, automatic mass - Don't touch neighbouring lines. As an exception, automatic mass
...@@ -144,6 +153,9 @@ When having your code reviewed and when reviewing merge requests please take the ...@@ -144,6 +153,9 @@ When having your code reviewed and when reviewing merge requests please take the
"license-finder" test with a "Dependencies that need approval" error. "license-finder" test with a "Dependencies that need approval" error.
1. The merge request meets the [definition of done](#definition-of-done). 1. The merge request meets the [definition of done](#definition-of-done).
[license-finder-doc]: ../licensing.md
[polling-etag]: ../polling.md
## Definition of done ## Definition of done
If you contribute to GitLab please know that changes involve more than just If you contribute to GitLab please know that changes involve more than just
...@@ -175,6 +187,12 @@ merge request: ...@@ -175,6 +187,12 @@ merge request:
1. Test suite https://gitlab.com/gitlab-org/gitlab-ce/blob/master/scripts/prepare_build.sh 1. Test suite https://gitlab.com/gitlab-org/gitlab-ce/blob/master/scripts/prepare_build.sh
1. Omnibus package creator https://gitlab.com/gitlab-org/omnibus-gitlab 1. Omnibus package creator https://gitlab.com/gitlab-org/omnibus-gitlab
[definition-of-done]: http://guide.agilealliance.org/guide/definition-of-done.html
[testing]: ../testing_guide/index.md
--- ---
[Return to Contributing documentation](index.md) [Return to Contributing documentation](index.md)
[changelog]: ../changelog.md "Generate a changelog entry"
[doc-guidelines]: ../documentation/index.md "Documentation guidelines"
# Style guides
1. [Ruby](https://github.com/bbatsov/ruby-style-guide).
Important sections include [Source Code Layout][rss-source] and
[Naming][rss-naming]. Use:
- multi-line method chaining style **Option A**: dot `.` on the second line
- string literal quoting style **Option A**: single quoted by default
1. [Rails](https://github.com/bbatsov/rails-style-guide)
1. [Newlines styleguide][newlines-styleguide]
1. [Testing][testing]
1. [JavaScript styleguide][js-styleguide]
1. [SCSS styleguide][scss-styleguide]
1. [Shell commands](../shell_commands.md) created by GitLab
contributors to enhance security
1. [Database Migrations](../migration_style_guide.md)
1. [Markdown](http://www.cirosantilli.com/markdown-styleguide)
1. [Documentation styleguide](../documentation/styleguide.md)
1. Interface text should be written subjectively instead of objectively. It
should be the GitLab core team addressing a person. It should be written in
present time and never use past tense (has been/was). For example instead
of _prohibited this user from being saved due to the following errors:_ the
text should be _sorry, we could not create your account because:_
1. Code should be written in [US English][us-english]
This is also the style used by linting tools such as
[RuboCop](https://github.com/bbatsov/rubocop),
[PullReview](https://www.pullreview.com/) and [Hound CI](https://houndci.com).
---
[Return to Contributing documentation](index.md)
[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
[doc-guidelines]: ../documentation/index.md "Documentation guidelines"
[js-styleguide]: ../fe_guide/style_guide_js.md "JavaScript styleguide"
[scss-styleguide]: ../fe_guide/style_guide_scss.md "SCSS styleguide"
[newlines-styleguide]: ../newlines_styleguide.md "Newlines styleguide"
[testing]: ../testing_guide/index.md
[us-english]: https://en.wikipedia.org/wiki/American_English
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment