README.md 7.1 KB
Newer Older
1 2
---
comments: false
3
description: 'Learn how to contribute to GitLab.'
4 5
---

E
Evan Read 已提交
6
# Contributor and Development Docs
7

8
## Get started
9

10
- 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)
11
- [GitLab contributing guide](contributing/index.md)
12
  - [Issues workflow](contributing/issue_workflow.md) for more information on:
13 14 15 16 17 18 19
    - Issue tracker guidelines.
    - Triaging.
    - Labels.
    - Feature proposals.
    - Issue weight.
    - Regression issues.
    - Technical or UX debt.
20
  - [Merge requests workflow](contributing/merge_request_workflow.md) for more
21 22 23 24 25
    information on:
    - Merge request guidelines.
    - Contribution acceptance criteria.
    - Definition of done.
    - Dependencies.
26 27 28
  - [Style guides](contributing/style_guides.md)
  - [Implement design & UI elements](contributing/design.md)
- [GitLab Architecture Overview](architecture.md)
29
- [Rake tasks](rake_tasks.md) for development
30

31 32
## Processes

33 34
**Must-reads:**

35
- [Code review guidelines](code_review.md) for reviewing code and having code reviewed
36
- [Database review guidelines](database_review.md) for reviewing database-related changes and complex SQL queries, and having them reviewed
37
- [Secure coding guidelines](secure_coding_guidelines.md)
38
- [Pipelines for the GitLab project](pipelines.md)
39 40 41 42

Complementary reads:

- [GitLab core team & GitLab Inc. contribution process](https://gitlab.com/gitlab-org/gitlab/blob/master/PROCESS.md)
43
- [Security process for developers](https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md#security-releases-critical-non-critical-as-a-developer)
44
- [Guidelines for implementing Enterprise Edition features](ee_features.md)
45
- [Danger bot](dangerbot.md)
46
- [Generate a changelog entry with `bin/changelog`](changelog.md)
47
- [Requesting access to Chatops on GitLab.com](chatops_on_gitlabcom.md#requesting-access) (for GitLab team members)
48

F
Filipa Lacerda 已提交
49
## UX and Frontend guides
50

51
- [GitLab Design System](https://design.gitlab.com/) for building GitLab with existing CSS styles and elements
F
Filipa Lacerda 已提交
52
- [Frontend guidelines](fe_guide/index.md)
E
Eric Eastwood 已提交
53
- [Emoji guide](fe_guide/emojis.md)
54 55 56

## Backend guides

57
- [GitLab utilities](utilities.md)
58
- [Issuable-like Rails models](issuable-like-models.md)
59
- [Logging](logging.md)
60 61
- [API style guide](api_styleguide.md) for contributing to the API
- [GraphQL API style guide](api_graphql_styleguide.md) for contributing to the [GraphQL API](../api/graphql/index.md)
62
- [Sidekiq guidelines](sidekiq_style_guide.md) for working with Sidekiq workers
63
- [Working with Gitaly](gitaly.md)
64
- [Manage feature flags](feature_flags/index.md)
65
- [Licensed feature availability](licensed_feature_availability.md)
66
- [Dealing with email/mailers](emails.md)
67
- [Shell commands](shell_commands.md) in the GitLab codebase
68
- [`Gemfile` guidelines](gemfile.md)
T
Toon Claes 已提交
69
- [Pry debugging](pry_debugging.md)
70
- [Sidekiq debugging](sidekiq_debugging.md)
71
- [Accessing session data](session.md)
72
- [Gotchas](gotchas.md) to avoid
L
Lin Jen-Shin 已提交
73
- [Avoid modules with instance variables](module_with_instance_variables.md) if possible
74
- [How to dump production data to staging](db_dump.md)
75
- [Working with the GitHub importer](github_importer.md)
J
James Lopez 已提交
76
- [Import/Export development documentation](import_export.md)
77
- [Test Import Project](import_project.md)
78
- [Elasticsearch integration docs](elasticsearch.md)
79
- [Working with Merge Request diffs](diffs.md)
T
Thong Kuah 已提交
80
- [Kubernetes integration guidelines](kubernetes.md)
81
- [Permissions](permissions.md)
82
- [Prometheus](prometheus.md)
83
- [Guidelines for reusing abstractions](reusing_abstractions.md)
84
- [DeclarativePolicy framework](policies.md)
85
- [How Git object deduplication works in GitLab](git_object_deduplication.md)
86
- [Geo development](geo.md)
87
- [Routing](routing.md)
88 89
- [Repository mirroring](repository_mirroring.md)
- [Git LFS](lfs.md)
90
- [Developing against interacting components or features](interacting_components.md)
91
- [File uploads](uploads.md)
92
- [Auto DevOps development guide](auto_devops.md)
93
- [Mass Inserting Models](mass_insert.md)
94
- [Value Stream Analytics development guide](value_stream_analytics.md)
95
- [Issue types vs first-class types](issue_types.md)
96
- [Application limits](application_limits.md)
97
- [Redis guidelines](redis.md)
98
- [Rails initializers](rails_initializers.md)
99 100
- [Code comments](code_comments.md)
- [Renaming features](renaming_features.md)
101
- [Windows Development on GCP](windows.md)
102
- [Code Intelligence](code_intelligence/index.md)
103
- [Approval Rules](approval_rules.md)
104

105
## Performance guides
106

107 108 109 110
- [Instrumentation](instrumentation.md) for Ruby code running in production
  environments
- [Performance guidelines](performance.md) for writing code, benchmarks, and
  certain patterns to avoid
111 112
- [Merge request performance guidelines](merge_request_performance_guidelines.md)
  for ensuring merge requests do not negatively impact GitLab performance
113 114
- [Profiling](profiling.md) a URL, measuring performance using Sherlock, or
  tracking down N+1 queries using Bullet
115

116 117
## Database guides

118
See [database guidelines](database/index.md).
119

120 121 122
## Integration guides

- [Jira Connect app](integrations/jira_connect.md)
123
- [Security Scanners](integrations/secure.md)
124
- [Secure Partner Integration](integrations/secure_partner_integration.md)
125
- [How to run Jenkins in development environment](integrations/jenkins.md)
126

127 128 129 130 131
## Testing guides

- [Testing standards and style guidelines](testing_guide/index.md)
- [Frontend testing standards and style guidelines](testing_guide/frontend_testing.md)

132 133 134 135
## Refactoring guides

- [Refactoring guidelines](refactoring_guide/index.md)

136 137
## Documentation guides

138
- [Writing documentation](documentation/index.md)
139
- [Documentation style guide](documentation/styleguide.md)
140
- [Markdown](../user/markdown.md)
141 142

## Internationalization (i18n) guides
143

144
- [Introduction](i18n/index.md)
145 146
- [Externalization](i18n/externalization.md)
- [Translation](i18n/translation.md)
147

148
## Telemetry guides
149

150 151 152
- [Telemetry guide](telemetry/index.md)
- [Usage Ping guide](telemetry/usage_ping.md)
- [Snowplow guide](telemetry/snowplow.md)
153

154
## Experiment guide
155 156 157

- [Introduction](experiment_guide/index.md)

158 159 160 161
## Build guides

- [Building a package for testing purposes](build_test_package.md)

162 163 164
## Compliance

- [Licensing](licensing.md) for ensuring license compliance
165 166 167 168

## Go guides

- [Go Guidelines](go_guide/index.md)
169

170 171 172 173
## Shell Scripting guides

- [Shell scripting standards and style guidelines](shell_scripting_guide/index.md)

174 175 176 177
## Domain-specific guides

- [CI/CD development documentation](cicd/index.md)

178 179 180
## Other Development guides

- [Defining relations between files using projections](projections.md)
181
- [Reference processing](./reference_processing.md)
182
- [Compatibility with multiple versions of the application running at the same time](multi_version_compatibility.md)
183

184 185 186
## Other GitLab Development Kit (GDK) guides

- [Run full Auto DevOps cycle in a GDK instance](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/auto_devops.md)
187 188
- [Using GitLab Runner with the GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/runner.md)
- [Using the Web IDE terminal with the GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/web_ide_terminal_gdk_setup.md)