Commit 70bedf4c authored by Marcel Amirault's avatar Marcel Amirault Committed by Achilleas Pipinellis

Docs: (EE Port) Merge EE doc/development to CE

parent 2ef5e28c
...@@ -14,26 +14,29 @@ an issue (if there isn't one already) and leave a comment asking for it ...@@ -14,26 +14,29 @@ an issue (if there isn't one already) and leave a comment asking for it
to be marked as `Accepting Merge Requests`. Please include screenshots or to be marked as `Accepting Merge Requests`. Please include screenshots or
wireframes of the proposed feature if it will also change the UI. wireframes of the proposed feature if it will also change the UI.
Merge requests should be submitted to the main project at Merge requests should be submitted to the appropriate project at GitLab.com, for example
[GitLab.com](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests). [GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests),
[GitLab EE](https://gitlab.com/gitlab-org/gitlab-ee/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.
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!](index.md#i-want-to-contribute) section to get started with [I want to contribute!](index.md#i-want-to-contribute) section to get started with
some potentially easy issues. some potentially easy issues.
To start with GitLab development download the [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit) To start developing GitLab, download the [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit)
and see the [Development section](../../README.md) for some guidelines. and see the [Development section](../../README.md) for the required guidelines.
## Merge request guidelines ## Merge request guidelines
If you can, please include tests when submitting a merge request with a fix or If you find an issue, please submit a merge request with a fix or improvement, if
improvement. If you don't know how to fix the issue but can write a test you can, and include tests. If you don't know how to fix the issue but can write a test
that exposes the issue, we will accept that as well. In general, bug fixes that that exposes the issue, we will accept that as well. In general, bug fixes that
include a regression test are merged quickly, while new features without proper include a regression test are merged quickly, while new features without proper
tests will be slower to receive feedback. The workflow to make a merge tests might be slower to receive feedback. The workflow to make a merge
request is as follows: request is as follows:
1. [Fork](../../workflow/forking_workflow.html#creating-a-fork) the project into 1. [Fork](../../workflow/forking_workflow.md#creating-a-fork) the project into
your personal namespace (or group) on GitLab.com. your personal namespace (or group) on GitLab.com.
1. Create a feature branch in your fork (don't work off `master`). 1. Create a feature branch in your fork (don't work off `master`).
1. Write [tests](../rake_tasks.md#run-tests) and code. 1. Write [tests](../rake_tasks.md#run-tests) and code.
...@@ -42,7 +45,8 @@ request is as follows: ...@@ -42,7 +45,8 @@ request is as follows:
[documentation guidelines](../documentation/index.md). [documentation guidelines](../documentation/index.md).
1. Follow the [commit messages guidelines](#commit-messages-guidelines). 1. Follow the [commit messages guidelines](#commit-messages-guidelines).
1. If you have multiple commits, combine them into a few logically organized 1. If you have multiple commits, combine them into a few logically organized
commits by [squashing them](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#_squashing) commits by [squashing them](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#_squashing),
but do not change the commit history if you're working on shared branches though.
1. Push the commit(s) to your working branch in your fork. 1. Push the commit(s) to your working branch in your fork.
1. Submit a merge request (MR) to the `master` branch in the main GitLab project. 1. Submit a merge request (MR) to the `master` branch in the main GitLab project.
1. Your merge request needs at least 1 approval, but feel free to require more. 1. Your merge request needs at least 1 approval, but feel free to require more.
...@@ -103,8 +107,8 @@ in mind. ...@@ -103,8 +107,8 @@ in mind.
### Keep it simple ### Keep it simple
Please keep the amount of changes in a single MR **as small as possible**. If you *Live by smaller iterations.* Please keep the amount of changes in a single MR **as small as possible**.
want to contribute a large feature, think very carefully about what the If you want to contribute a large feature, think very carefully about what the
[minimum viable change](https://about.gitlab.com/handbook/product/#the-minimally-viable-change) [minimum viable change](https://about.gitlab.com/handbook/product/#the-minimally-viable-change)
is. Can you split the functionality into two smaller MRs? Can you submit only the is. Can you split the functionality into two smaller MRs? Can you submit only the
backend/API code? Can you start with a very simple UI? Can you do just a part of the backend/API code? Can you start with a very simple UI? Can you do just a part of the
...@@ -169,8 +173,9 @@ the contribution acceptance criteria below: ...@@ -169,8 +173,9 @@ the contribution acceptance criteria below:
1. If the merge request adds any new libraries (gems, JavaScript libraries, etc.), 1. If the merge request adds any new libraries (gems, JavaScript libraries, etc.),
they should conform to our [Licensing guidelines](../licensing.md). See those they should conform to our [Licensing guidelines](../licensing.md). See those
instructions for help if the "license-finder" test fails with a instructions for help if the "license-finder" test fails with a
`Dependencies that need approval` error. `Dependencies that need approval` error. Also, make the reviewer aware of the new
1. The merge request meets the [definition of done](#definition-of-done), below. library and explain why you need it.
1. The merge request meets GitLab's [definition of done](#definition-of-done), below.
## Definition of done ## Definition of done
...@@ -179,14 +184,14 @@ code. We use the following [definition of done](https://www.agilealliance.org/gl ...@@ -179,14 +184,14 @@ code. We use the following [definition of done](https://www.agilealliance.org/gl
Your contribution is not *done* until you have made sure it meets all of these Your contribution is not *done* until you have made sure it meets all of these
requirements. requirements.
1. Clear Description explaining the relevancy of the contribution. 1. Clear description explaining the relevancy of the contribution.
1. Working and clean code that is commented where needed. 1. Working and clean code that is commented where needed.
1. [Unit, integration, and system tests](../testing_guide/index.md) that all pass 1. [Unit, integration, and system tests](../testing_guide/index.md) that all pass
on the CI server. on the CI server.
1. Performance/scalability implications have been considered, addressed, and tested. 1. Performance/scalability implications have been considered, addressed, and tested.
1. [Documented](../documentation/index.md) in the `/doc` directory. 1. [Documented](../documentation/index.md) in the `/doc` directory.
1. [Changelog entry added](../changelog.md), if necessary. 1. [Changelog entry added](../changelog.md), if necessary.
1. Reviewed by relevant UX/FE/BE teams and any concerns are addressed. 1. Reviewed by relevant (UX/FE/BE/tech writing) reviewers and all concerns are addressed.
1. Merged by a project maintainer. 1. Merged by a project maintainer.
1. Added to the [release post](https://about.gitlab.com/handbook/marketing/blog/release-posts/), 1. Added to the [release post](https://about.gitlab.com/handbook/marketing/blog/release-posts/),
if relevant. if relevant.
......
# Elasticsearch knowledge # Elasticsearch knowledge **[STARTER ONLY]**
This area is to maintain a compendium of useful information when working with elasticsearch. This area is to maintain a compendium of useful information when working with elasticsearch.
......
...@@ -14,12 +14,14 @@ and we use [Bootstrap's Utility Classes](https://getbootstrap.com/docs/4.3/utili ...@@ -14,12 +14,14 @@ and we use [Bootstrap's Utility Classes](https://getbootstrap.com/docs/4.3/utili
New utility classes should be added to [`utilities.scss`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/stylesheets/utilities.scss). Existing classes include: New utility classes should be added to [`utilities.scss`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/stylesheets/utilities.scss). Existing classes include:
**Background color**: `.bg-variant-shade` e.g. `.bg-warning-400` **Background color**: `.bg-variant-shade` e.g. `.bg-warning-400`
**Text color**: `.text-variant-shade` e.g. `.text-success-500` **Text color**: `.text-variant-shade` e.g. `.text-success-500`
- variant is one of 'primary', 'secondary', 'success', 'warning', 'error' - variant is one of 'primary', 'secondary', 'success', 'warning', 'error'
- shade is on of the shades listed on [colors](https://design.gitlab.com/foundations/colors/) - shade is on of the shades listed on [colors](https://design.gitlab.com/foundations/colors/)
**Font size**: `.text-size` e.g. `.text-2` **Font size**: `.text-size` e.g. `.text-2`
- **size** is number from 1-6 from our [Type scale](https://design.gitlab.com/foundations/typography) - **size** is number from 1-6 from our [Type scale](https://design.gitlab.com/foundations/typography)
### Naming ### Naming
......
# Geo (development) # Geo (development) **[PREMIUM ONLY]**
Geo connects GitLab instances together. One GitLab instance is Geo connects GitLab instances together. One GitLab instance is
designated as a **primary** node and can be run with multiple designated as a **primary** node and can be run with multiple
...@@ -90,7 +90,7 @@ projects that need updating. Those projects can be: ...@@ -90,7 +90,7 @@ projects that need updating. Those projects can be:
timestamp that is more recent than the `last_repository_successful_sync_at` timestamp that is more recent than the `last_repository_successful_sync_at`
timestamp in the `Geo::ProjectRegistry` model. timestamp in the `Geo::ProjectRegistry` model.
- Manual: The admin can manually flag a repository to resync in the - Manual: The admin can manually flag a repository to resync in the
[Geo admin panel](../user/admin_area/geo_nodes.md). [Geo admin panel](https://docs.gitlab.com/ee/user/admin_area/geo_nodes.html).
When we fail to fetch a repository on the secondary `RETRIES_BEFORE_REDOWNLOAD` When we fail to fetch a repository on the secondary `RETRIES_BEFORE_REDOWNLOAD`
times, Geo does a so-called _redownload_. It will do a clean clone times, Geo does a so-called _redownload_. It will do a clean clone
...@@ -299,7 +299,7 @@ basically hashes all Git refs together and stores that hash in the ...@@ -299,7 +299,7 @@ basically hashes all Git refs together and stores that hash in the
The **secondary** node does the same to calculate the hash of its The **secondary** node does the same to calculate the hash of its
clone, and compares the hash with the value the **primary** node clone, and compares the hash with the value the **primary** node
calculated. If there is a mismatch, Geo will mark this as a mismatch calculated. If there is a mismatch, Geo will mark this as a mismatch
and the administrator can see this in the [Geo admin panel](../user/admin_area/geo_nodes.md). and the administrator can see this in the [Geo admin panel](https://docs.gitlab.com/ee/user/admin_area/geo_nodes.html).
## Glossary ## Glossary
......
...@@ -40,7 +40,7 @@ of possible security breaches in our code: ...@@ -40,7 +40,7 @@ of possible security breaches in our code:
- SQL injections - SQL injections
Remember to run Remember to run
[SAST](../../user/application_security/sast/index.md) [SAST](https://docs.gitlab.com/ee/user/project/merge_requests/sast.html)
**[ULTIMATE]** on your project (or at least the [gosec **[ULTIMATE]** on your project (or at least the [gosec
analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/gosec)), analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/gosec)),
and to follow our [Security and to follow our [Security
...@@ -94,9 +94,9 @@ become available, you will be able to share job templates like this ...@@ -94,9 +94,9 @@ become available, you will be able to share job templates like this
Dependencies should be kept to the minimum. The introduction of a new Dependencies should be kept to the minimum. The introduction of a new
dependency should be argued in the merge request, as per our [Approval dependency should be argued in the merge request, as per our [Approval
Guidelines](../code_review.md#approval-guidelines). Both [License Guidelines](../code_review.md#approval-guidelines). Both [License
Management](../../user/application_security/license_management/index.md) Management](https://docs.gitlab.com/ee/user/project/merge_requests/license_management.html)
**[ULTIMATE]** and [Dependency **[ULTIMATE]** and [Dependency
Scanning](../../user/application_security/dependency_scanning/index.md) Scanning](https://docs.gitlab.com/ee/user/project/merge_requests/dependency_scanning.html)
**[ULTIMATE]** should be activated on all projects to ensure new dependencies **[ULTIMATE]** should be activated on all projects to ensure new dependencies
security status and license compatibility. security status and license compatibility.
......
# Licensed feature availability # Licensed feature availability **[STARTER]**
As of GitLab 9.4, we've been supporting a simplified version of licensed As of GitLab 9.4, we've been supporting a simplified version of licensed
feature availability checks via `ee/app/models/license.rb`, both for feature availability checks via `ee/app/models/license.rb`, both for
...@@ -7,8 +7,8 @@ on-premise or GitLab.com plans and features. ...@@ -7,8 +7,8 @@ on-premise or GitLab.com plans and features.
## Restricting features scoped by namespaces or projects ## Restricting features scoped by namespaces or projects
GitLab.com plans are persisted on user groups and namespaces, therefore, if you're adding a GitLab.com plans are persisted on user groups and namespaces, therefore, if you're adding a
feature such as [Related issues](../user/project/issues/related_issues.md) or feature such as [Related issues](https://docs.gitlab.com/ee/user/project/issues/related_issues.html) or
[Service desk](../user/project/service_desk.md), [Service desk](https://docs.gitlab.com/ee/user/project/service_desk.html),
it should be restricted on namespace scope. it should be restricted on namespace scope.
1. Add the feature symbol on `EES_FEATURES`, `EEP_FEATURES` or `EEU_FEATURES` constants in 1. Add the feature symbol on `EES_FEATURES`, `EEP_FEATURES` or `EEU_FEATURES` constants in
...@@ -22,8 +22,8 @@ project.feature_available?(:feature_symbol) ...@@ -22,8 +22,8 @@ project.feature_available?(:feature_symbol)
## Restricting global features (instance) ## Restricting global features (instance)
However, for features such as [Geo](../gitlab-geo/README.md) and However, for features such as [Geo](https://docs.gitlab.com/ee/administration/geo/replication/index.html) and
[Load balancing](../administration/database_load_balancing.md), which cannot be restricted [Load balancing](https://docs.gitlab.com/ee/administration/database_load_balancing.html), which cannot be restricted
to only a subset of projects or namespaces, the check will be made directly in to only a subset of projects or namespaces, the check will be made directly in
the instance license. the instance license.
......
# Packages # Packages **[PREMIUM]**
This document will guide you through adding another [package management system](../administration/packages.md) support to GitLab. This document will guide you through adding another [package management system](https://docs.gitlab.com/ee/administration/packages.html) support to GitLab.
See already supported package types in [Packages documentation](../administration/packages.md) See already supported package types in [Packages documentation](https://docs.gitlab.com/ee/administration/packages.html)
Since GitLab packages' UI is pretty generic, it is possible to add new Since GitLab packages' UI is pretty generic, it is possible to add new
package system support by solely backend changes. This guide is superficial and does package system support by solely backend changes. This guide is superficial and does
...@@ -46,7 +46,7 @@ Group-level and instance-level endpoints are good to have but are optional. ...@@ -46,7 +46,7 @@ Group-level and instance-level endpoints are good to have but are optional.
NOTE: **Note:** NOTE: **Note:**
To avoid name conflict for instance-level endpoints we use To avoid name conflict for instance-level endpoints we use
[the package naming convention](../user/project/packages/npm_registry.html#package-naming-convention) [the package naming convention](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html#package-naming-convention)
## Configuration ## Configuration
......
...@@ -31,7 +31,7 @@ project. ...@@ -31,7 +31,7 @@ project.
#### Seeding issues for Insights charts **[ULTIMATE]** #### Seeding issues for Insights charts **[ULTIMATE]**
You can seed issues specifically for working with the You can seed issues specifically for working with the
[Insights charts](../user/group/insights/index.md) with the [Insights charts](https://docs.gitlab.com/ee/user/group/insights/index.html) with the
`gitlab:seed:insights:issues` task: `gitlab:seed:insights:issues` task:
```shell ```shell
......
...@@ -81,13 +81,13 @@ module EESpecificCheck ...@@ -81,13 +81,13 @@ module EESpecificCheck
'doc/ci/variables/**/*', 'doc/ci/variables/**/*',
'doc/ci/yaml/**/*', 'doc/ci/yaml/**/*',
'doc/container_registry/**/*', 'doc/container_registry/**/*',
# 'doc/customization/**/*', 'doc/customization/**/*',
# 'doc/customization/branded_login_page/**/*', 'doc/customization/branded_login_page/**/*',
# 'doc/customization/branded_page_and_email_header/**/*', 'doc/customization/branded_page_and_email_header/**/*',
# 'doc/customization/favicon/**/*', 'doc/customization/favicon/**/*',
# 'doc/customization/help_message/**/*', 'doc/customization/help_message/**/*',
# 'doc/customization/new_project_page/**/*', 'doc/customization/new_project_page/**/*',
# 'doc/customization/system_header_and_footer_messages/**/*', 'doc/customization/system_header_and_footer_messages/**/*',
'doc/development/*.md', 'doc/development/*.md',
'doc/development/contributing/**/*', 'doc/development/contributing/**/*',
'doc/development/documentation/**/*', 'doc/development/documentation/**/*',
......
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