summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-21 18:11:01 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-21 18:11:01 +0000
commitf26782b146ed115c8e36f8d6fc4c173020ab30b6 (patch)
treef9a1fd2ca9abf8d34db53739b8420e93b7e81895
parent42d323de78244a6654a5f11ec16abcec8a849e81 (diff)
downloadgitlab-ce-f26782b146ed115c8e36f8d6fc4c173020ab30b6.tar.gz
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/ci/yaml.gitlab-ci.yml1
-rw-r--r--app/assets/javascripts/nav/components/top_nav_container_view.vue1
-rw-r--r--config/metrics/license/20210216183237_version.yml12
-rw-r--r--doc/administration/geo/disaster_recovery/index.md3
-rw-r--r--doc/administration/geo/replication/troubleshooting.md24
-rw-r--r--doc/administration/geo/replication/version_specific_updates.md6
-rw-r--r--doc/api/issues.md2
-rw-r--r--doc/api/projects.md2
-rw-r--r--doc/api/suggestions.md2
-rw-r--r--doc/development/documentation/restful_api_styleguide.md9
-rw-r--r--doc/development/experiment_guide/index.md14
-rw-r--r--doc/development/i18n/merging_translations.md45
-rw-r--r--doc/development/i18n/proofreader.md46
-rw-r--r--doc/development/i18n/translation.md104
-rw-r--r--doc/development/usage_ping/dictionary.md6
-rw-r--r--doc/user/clusters/applications.md22
-rw-r--r--doc/user/clusters/img/fluentd_v13_0.pngbin32445 -> 0 bytes
-rw-r--r--doc/user/discussions/index.md7
-rw-r--r--doc/user/project/clusters/protect/container_host_security/index.md4
-rw-r--r--doc/user/project/clusters/protect/container_host_security/quick_start_guide.md21
-rw-r--r--doc/user/project/clusters/protect/container_network_security/index.md4
-rw-r--r--doc/user/project/clusters/protect/container_network_security/quick_start_guide.md29
-rw-r--r--doc/user/project/merge_requests/reviews/index.md6
-rw-r--r--doc/user/project/merge_requests/reviews/suggestions.md4
-rw-r--r--lib/gitlab/highlight.rb6
-rw-r--r--qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb4
-rwxr-xr-xscripts/lint-changelog-filenames12
-rwxr-xr-xscripts/static-analysis3
-rw-r--r--spec/frontend/nav/components/top_nav_container_view_spec.js15
-rw-r--r--spec/lib/gitlab/highlight_spec.rb2
-rw-r--r--spec/tooling/danger/project_helper_spec.rb2
-rw-r--r--tooling/danger/project_helper.rb2
32 files changed, 202 insertions, 218 deletions
diff --git a/.gitlab/ci/yaml.gitlab-ci.yml b/.gitlab/ci/yaml.gitlab-ci.yml
index c597d992760..a0961866465 100644
--- a/.gitlab/ci/yaml.gitlab-ci.yml
+++ b/.gitlab/ci/yaml.gitlab-ci.yml
@@ -10,5 +10,4 @@ lint-yaml:
variables:
LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates changelogs
script:
- - '[[ ! -d "ee/" ]] || export LINT_PATHS="$LINT_PATHS ee/changelogs"'
- yamllint -f colored $LINT_PATHS
diff --git a/app/assets/javascripts/nav/components/top_nav_container_view.vue b/app/assets/javascripts/nav/components/top_nav_container_view.vue
index 21ff3ebcd7d..c52c5d1a6e5 100644
--- a/app/assets/javascripts/nav/components/top_nav_container_view.vue
+++ b/app/assets/javascripts/nav/components/top_nav_container_view.vue
@@ -10,6 +10,7 @@ export default {
TopNavMenuItem,
VuexModuleProvider,
},
+ inheritAttrs: false,
props: {
frequentItemsVuexModule: {
type: String,
diff --git a/config/metrics/license/20210216183237_version.yml b/config/metrics/license/20210216183237_version.yml
index 69d97e17f20..ff501697e95 100644
--- a/config/metrics/license/20210216183237_version.yml
+++ b/config/metrics/license/20210216183237_version.yml
@@ -1,9 +1,9 @@
---
key_path: git.version
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
+description: Information about Git version
+product_section: enablement
+product_stage: enablement
+product_group: group::distribution
product_category: ''
value_type: string
status: data_available
@@ -11,6 +11,8 @@ time_frame: none
data_source: system
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/doc/administration/geo/disaster_recovery/index.md b/doc/administration/geo/disaster_recovery/index.md
index b02dcf65645..254ffff5e90 100644
--- a/doc/administration/geo/disaster_recovery/index.md
+++ b/doc/administration/geo/disaster_recovery/index.md
@@ -98,6 +98,9 @@ Note the following when promoting a secondary:
- If you encounter an `ActiveRecord::RecordInvalid: Validation failed: Name has already been taken`
error message during this process, for more information, see this
[troubleshooting advice](../replication/troubleshooting.md#fixing-errors-during-a-failover-or-when-promoting-a-secondary-to-a-primary-node).
+- If you run into errors when using `--force` or `--skip-preflight-checks` before 13.5 during this process,
+ for more information, see this
+ [troubleshooting advice](../replication/troubleshooting.md#errors-when-using---skip-preflight-checks-or---force).
#### Promoting a **secondary** node running on a single machine
diff --git a/doc/administration/geo/replication/troubleshooting.md b/doc/administration/geo/replication/troubleshooting.md
index 97a160fbc22..278e21386c1 100644
--- a/doc/administration/geo/replication/troubleshooting.md
+++ b/doc/administration/geo/replication/troubleshooting.md
@@ -756,6 +756,30 @@ this command reports `ERROR - Replication is not up-to-date` even if
replication is actually up-to-date. If replication and verification output
shows that it is complete, you can add `--skip-preflight-checks` to make the command complete promotion. This bug was fixed in GitLab 13.8 and later.
+### Errors when using `--skip-preflight-checks` or `--force`
+
+Before GitLab 13.5, you could bump into one of the following errors when using
+`--skip-preflight-checks` or `--force`:
+
+```plaintext
+get_ctl_options': invalid option: --skip-preflight-checks (OptionParser::InvalidOption)
+
+get_ctl_options': invalid option: --force (OptionParser::InvalidOption)
+```
+
+This can happen with XFS or filesystems that list files in lexical order, because the
+load order of the Omnibus command files can be different than expected, and a global function would get redefined.
+More details can be found in [the related issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6076).
+
+The workaround is to manually run the preflight checks and promote the database, by running
+the following commands on the Geo secondary site:
+
+```shell
+sudo gitlab-ctl promotion-preflight-checks
+sudo /opt/gitlab/embedded/bin/gitlab-pg-ctl promote
+sudo gitlab-ctl reconfigure
+sudo gitlab-rake geo:set_secondary_as_primary
+
## Expired artifacts
If you notice for some reason there are more artifacts on the Geo
diff --git a/doc/administration/geo/replication/version_specific_updates.md b/doc/administration/geo/replication/version_specific_updates.md
index 20e32dae00f..301be931b29 100644
--- a/doc/administration/geo/replication/version_specific_updates.md
+++ b/doc/administration/geo/replication/version_specific_updates.md
@@ -82,6 +82,12 @@ paused fails. Do not pause replication before promoting a secondary. If the
node is paused, be sure to resume before promoting. To avoid this issue,
upgrade to GitLab 13.4 or later.
+WARNING:
+Promoting the database during a failover can fail on XFS and filesystems ordering files lexically,
+when using `--force` or `--skip-preflight-checks`, due to [an issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6076) fixed in 13.5.
+The [troubleshooting steps](troubleshooting.md#errors-when-using---skip-preflight-checks-or---force)
+contain a workaround if you run into errors during the failover.
+
## Updating to GitLab 13.2
In GitLab 13.2, promoting a secondary node to a primary while the secondary is
diff --git a/doc/api/issues.md b/doc/api/issues.md
index acfca50cb5e..b4d421290e3 100644
--- a/doc/api/issues.md
+++ b/doc/api/issues.md
@@ -996,7 +996,7 @@ POST /projects/:id/issues
| `issue_type` | string | no | The type of issue. One of `issue`, `incident`, or `test_case`. Default is `issue`. |
| `labels` | string | no | Comma-separated label names for an issue |
| `merge_request_to_resolve_discussions_of` | integer | no | The IID of a merge request in which to resolve all issues. This fills out the issue with a default description and mark all discussions as resolved. When passing a description or title, these values take precedence over the default values.|
-| `milestone_id` | integer | no | The global ID of a milestone to assign issue |
+| `milestone_id` | integer | no | The global ID of a milestone to assign issue. To find the `milestone_id` associated with a milestone, view an issue with the milestone assigned and [use the API](#single-project-issue) to retrieve the issue's details. |
| `title` | string | yes | The title of an issue |
| `weight` **(PREMIUM)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. |
diff --git a/doc/api/projects.md b/doc/api/projects.md
index b686d17a4a1..5b96bcb22e2 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -1238,7 +1238,7 @@ POST /projects/user/:user_id
| `show_default_award_emojis` | boolean | **{dotted-circle}** No | Show default award emojis. |
| `snippets_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, or `enabled`. |
| `snippets_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
-| `suggestion_commit_message` | string | **{dotted-circle}** No | The commit message used to apply merge request suggestions. |
+| `suggestion_commit_message` | string | **{dotted-circle}** No | The commit message used to apply merge request [suggestions](../user/project/merge_requests/reviews/suggestions.md). |
| `tag_list` | array | **{dotted-circle}** No | The list of tags for a project; put array of tags, that should be finally assigned to a project. |
| `template_name` | string | **{dotted-circle}** No | When used without `use_custom_template`, name of a [built-in project template](../user/project/working_with_projects.md#built-in-templates). When used with `use_custom_template`, name of a custom project template. |
| `use_custom_template` **(PREMIUM)** | boolean | **{dotted-circle}** No | Use either custom [instance](../user/admin_area/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |
diff --git a/doc/api/suggestions.md b/doc/api/suggestions.md
index 0fcb6122505..ea9baa79b4a 100644
--- a/doc/api/suggestions.md
+++ b/doc/api/suggestions.md
@@ -7,6 +7,8 @@ type: reference, api
# Suggest Changes API **(FREE)**
+This page describes the API for [suggesting changes](../user/project/merge_requests/reviews/suggestions.md).
+
Every API call to suggestions must be authenticated.
## Applying suggestions
diff --git a/doc/development/documentation/restful_api_styleguide.md b/doc/development/documentation/restful_api_styleguide.md
index e05f6760ff1..9ea91aa10b6 100644
--- a/doc/development/documentation/restful_api_styleguide.md
+++ b/doc/development/documentation/restful_api_styleguide.md
@@ -33,7 +33,8 @@ In the Markdown doc for a resource (AKA endpoint):
## API topic template
-The following can be used as a template to get started:
+Use the following template to help you get started. Be sure to list any
+required attributes first in the table.
````markdown
## Descriptive title
@@ -50,8 +51,10 @@ Supported attributes:
| Attribute | Type | Required | Description |
|:------------|:---------|:---------|:----------------------|
-| `attribute` | datatype | yes/no | Detailed description. |
-| `attribute` | datatype | yes/no | Detailed description. |
+| `attribute` | datatype | **{check-circle}** Yes | Detailed description. |
+| `attribute` | datatype | **{dotted-circle}** No | Detailed description. |
+| `attribute` | datatype | **{dotted-circle}** No | Detailed description. |
+| `attribute` | datatype | **{dotted-circle}** No | Detailed description. |
Example request:
diff --git a/doc/development/experiment_guide/index.md b/doc/development/experiment_guide/index.md
index 0d534a974a1..e39ef48517f 100644
--- a/doc/development/experiment_guide/index.md
+++ b/doc/development/experiment_guide/index.md
@@ -60,3 +60,17 @@ feature flags, and there is currently no strong suggestion to use one over the o
Historical Context: `Experimentation Module` was built iteratively with the needs that
appeared while implementing Growth sub-department experiments, while GLEX was built
with the findings of the team and an easier to use API.
+
+### Add new icons and illustrations for experiments
+
+Some experiments may require you to add custom icons or illustrations to our codebase.
+This process is lengthy and at this stage, the outcome of the experiment uncertain.
+Therefore, you should postpone this effort until the [experiment cleanup process](https://about.gitlab.com/handbook/engineering/development/growth/#experiment-cleanup-issue).
+
+We recommend the following workflow:
+
+1. Add an icon or illustration as an `.svg` file in the `/app/assets/images` (or EE) path in the GitLab repository.
+1. Use `image_tag` or `image_path` to render it via the asset pipeline.
+1. **If the experiment is a success**, designers add the new icon or illustration to the Pajamas UI kit as part of the cleanup process.
+ Engineers can then add it to the [SVG library](https://gitlab-org.gitlab.io/gitlab-svgs/) and modify the implementation based on the
+ [Frontend Development Guidelines](../fe_guide/icons.md#usage-in-hamlrails-2).
diff --git a/doc/development/i18n/merging_translations.md b/doc/development/i18n/merging_translations.md
index 48474a68d16..a3c6fc86693 100644
--- a/doc/development/i18n/merging_translations.md
+++ b/doc/development/i18n/merging_translations.md
@@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
CrowdIn automatically syncs the `gitlab.pot` file with the CrowdIn service, presenting
newly added externalized strings to the community of translators.
-[GitLab CrowdIn Bot](https://gitlab.com/gitlab-crowdin-bot) also creates merge requests
+The [GitLab CrowdIn Bot](https://gitlab.com/gitlab-crowdin-bot) also creates merge requests
to take newly approved translation submissions and merge them into the `locale/<language>/gitlab.po`
files. Check the [merge requests created by `gitlab-crowdin-bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot)
to see new and merged merge requests.
@@ -17,35 +17,34 @@ to see new and merged merge requests.
## Validation
By default CrowdIn commits translations with `[skip ci]` in the commit
-message. This is done to avoid a bunch of pipelines being run. Before
-merging translations, make sure to trigger a pipeline to validate
-translations, we have static analysis validating things CrowdIn
-doesn't do. Create a new pipeline at `https://gitlab.com/gitlab-org/gitlab/pipelines/new`
-(need Developer access permissions) for the `master-i18n` branch.
+message. This avoids an excessive number of pipelines from running.
+Before merging translations, make sure to trigger a pipeline to validate
+translations. Static analysis validates things CrowdIn doesn't do. Create
+a new pipeline at [`https://gitlab.com/gitlab-org/gitlab/pipelines/new`](https://gitlab.com/gitlab-org/gitlab/pipelines/new)
+(need developer permissions) for the `master-i18n` branch.
If there are validation errors, the easiest solution is to disapprove
the offending string in CrowdIn, leaving a comment with what is
-required to fix the offense. There is an
+required to fix the errors. There's an
[issue](https://gitlab.com/gitlab-org/gitlab/-/issues/23256)
-suggesting to automate this process. Disapproving excludes the
-invalid translation, the merge request is then updated within a few
+that suggests automating this process. Disapproving excludes the
+invalid translation. The merge request is then updated within a few
minutes.
-If the translation has failed validation due to angle brackets `<` or `>`
-it should be disapproved on CrowdIn as our strings should be
-using [variables](externalization.md#html) for HTML instead.
+If the translation fails validation due to angle brackets (`<` or `>`),
+it should be disapproved in CrowdIn. Our strings must use [variables](externalization.md#html)
+for HTML instead.
-It might be handy to pause the integration on the CrowdIn side for a
-little while so translations don't keep coming. This can be done by
-clicking `Pause sync` on the [CrowdIn integration settings
-page](https://translate.gitlab.com/project/gitlab-ee/settings#integration).
+It might be useful to pause the integration on the CrowdIn side for a
+moment so translations don't keep coming. You can do this by clicking
+**Pause sync** on the [CrowdIn integration settings page](https://translate.gitlab.com/project/gitlab-ee/settings#integration).
## Merging translations
After all translations are determined to be appropriate and the pipelines pass,
you can merge the translations into the default branch. When merging translations,
-be sure to select the **Remove source branch** check box, which causes CrowdIn
-to recreate the `master-i18n` from the default branch after merging the new
+be sure to select the **Remove source branch** checkbox. This causes CrowdIn
+to recreate the `master-i18n` branch from the default branch after merging the new
translation.
We are discussing [automating this entire process](https://gitlab.com/gitlab-org/gitlab/-/issues/19896).
@@ -54,10 +53,8 @@ We are discussing [automating this entire process](https://gitlab.com/gitlab-org
CrowdIn creates a new merge request as soon as the old one is closed
or merged. But it does not recreate the `master-i18n` branch every
-time. To force CrowdIn to recreate the branch, close any [open merge
-request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot)
-and delete the
-[`master-18n`](https://gitlab.com/gitlab-org/gitlab/-/branches/all?utf8=✓&search=master-i18n).
+time. To force CrowdIn to recreate the branch, close any [open merge requests](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot)
+and delete the [`master-18n`](https://gitlab.com/gitlab-org/gitlab/-/branches/all?utf8=✓&search=master-i18n) branch.
This might be needed when the merge request contains failures that
have been fixed on the default branch.
@@ -76,8 +73,8 @@ recreate it with the following steps:
1. Sign in to CrowdIn with the GitLab integration.
1. Go to **Settings > Integrations > GitLab > Set Up Integration**.
1. Select the `gitlab-org/gitlab` repository.
-1. In `Select Branches for Translation`, select `master`.
-1. Ensure the `Service Branch Name` is `master-i18n`.
+1. In **Select Branches for Translation**, select `master`.
+1. Ensure the **Service Branch Name** is `master-i18n`.
## Manually update the translation levels
diff --git a/doc/development/i18n/proofreader.md b/doc/development/i18n/proofreader.md
index a15eb4c3bc2..56767f73c61 100644
--- a/doc/development/i18n/proofreader.md
+++ b/doc/development/i18n/proofreader.md
@@ -121,35 +121,35 @@ are very appreciative of the work done by translators and proofreaders!
## Become a proofreader
-Before requesting Proofreader permissions in CrowdIn, be sure you have a history
-of contributing translations to the GitLab project.
+Before requesting proofreader permissions in CrowdIn, be sure you have a history of contributing
+translations to the GitLab project.
1. Contribute translations to GitLab. See instructions for
[translating GitLab](translation.md).
- Translating GitLab is a community effort that requires team work and
- attention to detail. Proofreaders play an important role helping new
- contributors, and ensuring the consistency and quality of translations.
- Your conduct and contributions as a translator should reflect this before
- requesting to be a proofreader.
+ Translating GitLab is a community effort that requires teamwork and attention to detail.
+ Proofreaders play an important role helping new contributors, and ensuring the consistency and
+ quality of translations. Your conduct and contributions as a translator should reflect this
+ before requesting to be a proofreader.
-1. Request proofreader permissions by opening a merge request to add yourself
- to the list of proofreaders.
+1. Request proofreader permissions by opening a merge request to add yourself to the list of
+ proofreaders.
- Open the [proofreader.md source file](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/i18n/proofreader.md) and click **Edit**.
+ Open the [`proofreader.md` source file](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/i18n/proofreader.md) and click **Edit**.
- Add your language in alphabetical order, and add yourself to the list
- including:
- - name
- - link to your GitLab profile
- - link to your CrowdIn profile
+ Add your language in alphabetical order and add yourself to the list, including:
- In the merge request description, include links to any projects you have
- previously translated.
+ - Name
+ - Link to your GitLab profile
+ - Link to your CrowdIn profile
-1. Your request to become a proofreader is considered on the merits of
- your previous translations by [GitLab team members](https://about.gitlab.com/company/team/)
- or [Core team members](https://about.gitlab.com/community/core-team/) who are fluent in
- the language or current proofreaders.
- - When a request is made for the first proofreader for a language and there are no [GitLab team members](https://about.gitlab.com/company/team/)
- or [Core team members](https://about.gitlab.com/community/core-team/) who speak the language, we shall request links to previous translation work in other communities or projects.
+ In the merge request description, include links to any projects you have previously translated.
+
+1. [GitLab team members](https://about.gitlab.com/company/team/),
+ [Core team members](https://about.gitlab.com/community/core-team/),
+ or current proofreaders fluent in the language consider your request to become a proofreader
+ based on the merits of your previous translations.
+
+ - If you request to become the first proofreader for a language and there are no GitLab or Core
+ team members who speak that language, we request links to previous translation work in other
+ communities or projects.
diff --git a/doc/development/i18n/translation.md b/doc/development/i18n/translation.md
index e311df919b6..f2592d9a8b9 100644
--- a/doc/development/i18n/translation.md
+++ b/doc/development/i18n/translation.md
@@ -6,47 +6,39 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Translating GitLab
-For managing the translation process we use [CrowdIn](https://crowdin.com).
+For managing the translation process, we use [CrowdIn](https://crowdin.com).
+To contribute translations at [`translate.gitlab.com`](https://translate.gitlab.com),
+you must create a CrowdIn account. You may create a new account or use any of their supported
+sign-in services.
-## Using CrowdIn
+## Language selections
-The first step is to get familiar with CrowdIn.
+GitLab is being translated into many languages. To select a language to contribute to:
-### Sign In
-
-To contribute translations at <https://translate.gitlab.com>
-you must create a CrowdIn account.
-You may create a new account or use any of their supported sign in services.
-
-### Language Selections
+1. Find the language that you want to contribute to, in the
+ [GitLab CrowdIn project](https://crowdin.com/project/gitlab-ee).
-GitLab is being translated into many languages.
+ - If the language you want is available, proceed to the next step.
+ - If the language you want is not available,
+ [open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
+ Notify our CrowdIn administrators by including `@gitlab-org/manage/import` in your issue.
+ - After the issue and any merge requests are complete, restart this procedure.
-1. Find the language that you want to contribute to, in our
- [GitLab CrowdIn project](https://crowdin.com/project/gitlab-ee).
- - If the language that you're looking for is available, proceed
- to the next step.
- - If the language you are looking for is not available,
- [open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization). Notify our CrowdIn
- administrators by including `@gitlab-org/manage/import` in your issue.
- - After the issue/Merge Request is complete, restart this procedure.
-1. Next, you can view list of files and folders.
- Select `gitlab.pot` to open the translation editor.
+1. View the list of files and folders. Select `gitlab.pot` to open the translation editor.
-### Translation Editor
+### Translation editor
The online translation editor is the easiest way to contribute translations.
![CrowdIn Editor](img/crowdin-editor.png)
-1. Strings for translation are listed in the left panel
-1. Translations are entered into the central panel.
- Multiple translations are required for strings that contains plurals.
- The string to be translated is shown above with glossary terms highlighted.
- If the string to be translated is not clear, you can 'Request Context'
+- Strings for translation are listed in the left panel.
+- Translations are entered into the central panel. Multiple translations are required for strings
+ that contain plurals. The string to translate is shown in the above image with glossary terms
+ highlighted. If the string to translate isn't clear, you can request context.
-A glossary of common terms is available in the right panel by clicking Terms.
-Comments can be added to discuss a translation with the community.
+A glossary of common terms is available in the **Terms** tab in the right panel. In the **Comments**
+tab, you can add comments to discuss a translation with the community.
Remember to **Save** each translation.
@@ -56,21 +48,18 @@ Be sure to check the following guidelines before you translate any strings.
### Namespaced strings
-When an externalized string is prepended with a namespace, e.g.
-`s_('OpenedNDaysAgo|Opened')`, the namespace should be removed from the final
-translation.
-For example in French `OpenedNDaysAgo|Opened` would be translated to
-`Ouvert•e`, not `OpenedNDaysAgo|Ouvert•e`.
+When an externalized string is prepended with a namespace (for example,
+`s_('OpenedNDaysAgo|Opened')`), the namespace should be removed from the final translation. For
+example, in French, `OpenedNDaysAgo|Opened` is translated to `Ouvert•e`, not
+`OpenedNDaysAgo|Ouvert•e`.
### Technical terms
-Some technical terms should be treated like proper nouns and not be translated.
-
-Technical terms that should always be in English are noted in the glossary when
-using <https://translate.gitlab.com>.
-
-This helps maintain a logical connection and consistency between tools (e.g.
-`git` client) and GitLab.
+You should treat some technical terms like proper nouns and not translate them. Technical terms that
+should always be in English are noted in the glossary when using
+[`translate.gitlab.com`](https://translate.gitlab.com).
+This helps maintain a logical connection and consistency between tools (for example, a Git client)
+and GitLab.
### Formality
@@ -78,36 +67,33 @@ The level of formality used in software varies by language:
| Language | Formality | Example |
| -------- | --------- | ------- |
-| French | formal | `vous` for `you` |
-| German | informal | `du` for `you` |
+| French | formal | `vous` for `you` |
+| German | informal | `du` for `you` |
-You can refer to other translated strings and notes in the glossary to assist
-determining a suitable level of formality.
+Refer to other translated strings and notes in the glossary to assist you in determining a suitable
+level of formality.
### Inclusive language
-[Diversity](https://about.gitlab.com/handbook/values/#diversity) is a GitLab value.
-We ask you to avoid translations which exclude people based on their gender or
-ethnicity.
-In languages which distinguish between a male and female form, use both or
-choose a neutral formulation.
+[Diversity, inclusion, and belonging](https://about.gitlab.com/handbook/values/#diversity-inclusion)
+are GitLab values. We ask you to avoid translations that exclude people based on their gender or
+ethnicity. In languages that distinguish between a male and female form, use both or choose a
+neutral formulation.
<!-- vale gitlab.Spelling = NO -->
-For example in German, the word "user" can be translated into "Benutzer" (male) or "Benutzerin" (female).
-Therefore "create a new user" would translate into "Benutzer(in) anlegen".
+For example, in German, the word _user_ can be translated into _Benutzer_ (male) or _Benutzerin_
+(female). Therefore, _create a new user_ translates to _Benutzer(in) anlegen_.
<!-- vale gitlab.Spelling = YES -->
### Updating the glossary
-To propose additions to the glossary please
+To propose additions to the glossary, please
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
-## French Translation Guidelines
-
-### Inclusive language in French
+## French translation guidelines
<!-- vale gitlab.Spelling = NO -->
-In French, the "écriture inclusive" is now over (see on [Legifrance](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000036068906/)).
-So, to include both genders, write "Utilisateurs et utilisatrices" instead of "Utilisateur·rice·s".
-When space is missing, the male gender should be used alone.
+In French, the _écriture inclusive_ is now over (see on [Legifrance](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000036068906/)).
+To include both genders, write _Utilisateurs et utilisatrices_ instead of _Utilisateur·rice·s_. If
+there is not enough space, use the male gender alone.
<!-- vale gitlab.Spelling = YES -->
diff --git a/doc/development/usage_ping/dictionary.md b/doc/development/usage_ping/dictionary.md
index 1f0f885ebe3..e331a64d202 100644
--- a/doc/development/usage_ping/dictionary.md
+++ b/doc/development/usage_ping/dictionary.md
@@ -6960,15 +6960,15 @@ Tiers: `premium`, `ultimate`
### `git.version`
-Missing description
+Information about Git version
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/license/20210216183237_version.yml)
-Group: ``
+Group: `group::distribution`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `gitaly.clusters`
diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md
index 967d9b19709..501f7a8692f 100644
--- a/doc/user/clusters/applications.md
+++ b/doc/user/clusters/applications.md
@@ -1069,7 +1069,6 @@ You can install the following applications with one click:
- [Knative](#knative)
- [Crossplane](#crossplane)
- [Elastic Stack](#elastic-stack)
-- [Fluentd](#fluentd)
With the exception of Knative, the applications are installed in a dedicated
namespace called `gitlab-managed-apps`.
@@ -1561,27 +1560,6 @@ kubectl port-forward svc/kibana-kibana 5601:5601
Then, you can visit Kibana at `http://localhost:5601`.
-### Fluentd
-
-> Introduced in GitLab 12.10 for project- and group-level clusters.
-
-[Fluentd](https://www.fluentd.org/) is an open source data collector, which enables
-you to unify the data collection and consumption to better use and understand
-your data. Fluentd sends logs in syslog format.
-
-To enable Fluentd:
-
-1. Navigate to **Operations > Kubernetes** and click
- **Applications**. Enter a host, port, and protocol
- for sending the WAF logs with syslog.
-1. Provide the host domain name or URL in **SIEM Hostname**.
-1. Provide the host port number in **SIEM Port**.
-1. Select a **SIEM Protocol**.
-1. Select at least one of the available logs (such as WAF or Cilium).
-1. Click **Save changes**.
-
-![Fluentd input fields](img/fluentd_v13_0.png)
-
## Upgrading applications
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24789) in GitLab 11.8.
diff --git a/doc/user/clusters/img/fluentd_v13_0.png b/doc/user/clusters/img/fluentd_v13_0.png
deleted file mode 100644
index edc73285238..00000000000
--- a/doc/user/clusters/img/fluentd_v13_0.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md
index 50007545a65..fd4eb01b98a 100644
--- a/doc/user/discussions/index.md
+++ b/doc/user/discussions/index.md
@@ -7,7 +7,8 @@ type: reference, howto
# Threads **(FREE)**
-GitLab encourages communication through comments, threads, and suggestions.
+GitLab encourages communication through comments, threads, and
+[code suggestions](../project/merge_requests/reviews/suggestions.md).
For example, you can create a comment in the following places:
@@ -22,7 +23,9 @@ There are standard comments, and you also have the option to create a comment
in the form of a thread. A comment can also be [turned into a thread](#start-a-thread-by-replying-to-a-standard-comment)
when it receives a reply.
-The comment area supports [Markdown](../markdown.md) and [quick actions](../project/quick_actions.md). You can edit your own
+The comment area supports [Markdown](../markdown.md) and [quick actions](../project/quick_actions.md).
+You can [suggest code changes](../project/merge_requests/reviews/suggestions.md) in your comment,
+which the user can accept through the user interface. You can edit your own
comment at any time, and anyone with [Maintainer access level](../permissions.md) or
higher can also edit a comment made by someone else.
diff --git a/doc/user/project/clusters/protect/container_host_security/index.md b/doc/user/project/clusters/protect/container_host_security/index.md
index 102001d4f87..33121c0dd52 100644
--- a/doc/user/project/clusters/protect/container_host_security/index.md
+++ b/doc/user/project/clusters/protect/container_host_security/index.md
@@ -28,8 +28,8 @@ users define profiles for these technologies.
See the [installation guide](quick_start_guide.md) for the recommended steps to install the
Container Host Security capabilities. This guide shows the recommended way of installing Container
-Host Security through GMAv2. However, it's also possible to do a manual installation through our
-Helm chart.
+Host Security through the Cluster Management Project. However, it's also possible to do a manual
+installation through our Helm chart.
## Features
diff --git a/doc/user/project/clusters/protect/container_host_security/quick_start_guide.md b/doc/user/project/clusters/protect/container_host_security/quick_start_guide.md
index fa4a5fb61d0..456036fc926 100644
--- a/doc/user/project/clusters/protect/container_host_security/quick_start_guide.md
+++ b/doc/user/project/clusters/protect/container_host_security/quick_start_guide.md
@@ -6,9 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Getting started with Container Host Security
-The following steps are recommended for installing Container Host Security. Although you can install
-some capabilities through GMAv1, we [recommend](#using-gmav1-with-gmav2) that you install
-applications through GMAv2 exclusively when using Container Network Security.
+The following steps are recommended for installing Container Host Security.
## Installation steps
@@ -21,7 +19,7 @@ The following steps are recommended to install and use Container Host Security t
1. Install and configure an Ingress node:
- - [Install the Ingress node via CI/CD (GMAv2)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd).
+ - [Install the Ingress node via CI/CD (Cluster Management Project)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd).
- [Determine the external endpoint via the manual method](../../../../clusters/applications.md#determining-the-external-endpoint-manually).
- Navigate to the Kubernetes page and enter the [DNS address for the external endpoint](../../index.md#base-domain)
into the **Base domain** field on the **Details** tab. Save the changes to the Kubernetes
@@ -63,19 +61,6 @@ initial troubleshooting steps that resolve the most common problems:
`kubectl delete namespaces <insert-some-namespace-name>` in your Kubernetes cluster.
- Rerun the application project pipeline to redeploy the application.
-### Using GMAv1 with GMAv2
-
-When GMAv1 and GMAv2 are used together on the same cluster, users may experience problems with
-applications being uninstalled or removed from the cluster. This is because GMAv2 actively
-uninstalls applications that are installed with GMAv1 and not configured to be installed with GMAv2.
-It's possible to use a mixture of applications installed with GMAv1 and GMAv2 by ensuring that the
-GMAv1 applications are installed **after** the GMAv2 cluster management project pipeline runs. GMAv1
-applications must be reinstalled after each run of that pipeline. This approach isn't recommended as
-it's error-prone and can lead to downtime as applications are uninstalled and later reinstalled.
-When using Container Network Security, the preferred and recommended path is to install all
-necessary components with GMAv2 and the cluster management project.
-
**Related documentation links:**
-- [GitLab Managed Apps v1 (GMAv1)](../../../../clusters/applications.md#install-with-one-click-deprecated)
-- [GitLab Managed Apps v2 (GMAv2)](../../../../clusters/management_project.md)
+- [Cluster Management Project](../../../../clusters/management_project.md)
diff --git a/doc/user/project/clusters/protect/container_network_security/index.md b/doc/user/project/clusters/protect/container_network_security/index.md
index a7cdd73acd7..461b44a77ef 100644
--- a/doc/user/project/clusters/protect/container_network_security/index.md
+++ b/doc/user/project/clusters/protect/container_network_security/index.md
@@ -20,8 +20,8 @@ disabled by default, as they must usually be customized to match application-spe
See the [installation guide](quick_start_guide.md) for the recommended steps to install GitLab
Container Network Security. This guide shows the recommended way of installing Container Network
-Security through GMAv2. However, it's also possible to install Cilium manually through our Helm
-chart.
+Security through the Cluster Management Project. However, it's also possible to install Cilium
+manually through our Helm chart.
## Features
diff --git a/doc/user/project/clusters/protect/container_network_security/quick_start_guide.md b/doc/user/project/clusters/protect/container_network_security/quick_start_guide.md
index bf419c69885..16eb86d74e2 100644
--- a/doc/user/project/clusters/protect/container_network_security/quick_start_guide.md
+++ b/doc/user/project/clusters/protect/container_network_security/quick_start_guide.md
@@ -6,9 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Getting started with Container Network Security
-The following steps are recommended for installing Container Network Security. Although you can
-install some capabilities through GMAv1, we [recommend](#using-gmav1-with-gmav2) that you install
-applications through GMAv2 exclusively when using Container Network Security.
+The following steps are recommended for installing Container Network Security.
## Installation steps
@@ -21,7 +19,7 @@ The following steps are recommended to install and use Container Network Securit
1. Install and configure an Ingress node:
- - [Install the Ingress node via CI/CD (GMAv2)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd).
+ - [Install the Ingress node via CI/CD (Cluster Management Project)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd).
- [Determine the external endpoint via the manual method](../../../../clusters/applications.md#determining-the-external-endpoint-manually).
- Navigate to the Kubernetes page and enter the [DNS address for the external endpoint](../../index.md#base-domain)
into the **Base domain** field on the **Details** tab. Save the changes to the Kubernetes
@@ -83,12 +81,8 @@ Additional information about the statistics page is available in the
## Forwarding logs to a SIEM
Cilium logs can be forwarded to a SIEM or an external logging system through syslog protocol by
-installing and configuring Fluentd. Fluentd can be installed through GitLab in two ways:
-
-- The [GMAv1 method](../../../../clusters/applications.md#fluentd)
-- The [GMAv2 method](../../../../clusters/applications.md#install-fluentd-using-gitlab-cicd)
-
-GitLab strongly encourages using only the GMAv2 method to install Fluentd.
+installing and configuring Fluentd. Fluentd can be installed through the GitLab
+[Cluster Management Project](../../../../clusters/applications.md#install-fluentd-using-gitlab-cicd).
## Viewing the logs
@@ -135,19 +129,6 @@ initial troubleshooting steps that resolve the most common problems:
- Delete the relevant namespace in Kubernetes by running `kubectl delete namespaces <insert-some-namespace-name>` in your Kubernetes cluster.
- Rerun the application project pipeline to redeploy the application.
-### Using GMAv1 with GMAv2
-
-When GMAv1 and GMAv2 are used together on the same cluster, users may experience problems with
-applications being uninstalled or removed from the cluster. This is because GMAv2 actively
-uninstalls applications that are installed with GMAv1 and not configured to be installed with GMAv2.
-It's possible to use a mixture of applications installed with GMAv1 and GMAv2 by ensuring that the
-GMAv1 applications are installed **after** the GMAv2 cluster management project pipeline runs. GMAv1
-applications must be reinstalled after each run of that pipeline. This approach isn't recommended as
-it's error-prone and can lead to downtime as applications are uninstalled and later reinstalled.
-When using Container Network Security, the preferred and recommended path is to install all
-necessary components with GMAv2 and the cluster management project.
-
**Related documentation links:**
-- [GitLab Managed Apps v1 (GMAv1)](../../../../clusters/applications.md#install-with-one-click-deprecated)
-- [GitLab Managed Apps v2 (GMAv2)](../../../../clusters/management_project.md)
+- [Cluster Management Project](../../../../clusters/management_project.md)
diff --git a/doc/user/project/merge_requests/reviews/index.md b/doc/user/project/merge_requests/reviews/index.md
index e98a230c0de..9c88664ebb5 100644
--- a/doc/user/project/merge_requests/reviews/index.md
+++ b/doc/user/project/merge_requests/reviews/index.md
@@ -9,9 +9,9 @@ type: index, reference
[Merge requests](../index.md) are the primary method of making changes to files in a
GitLab project. [Create and submit a merge request](../creating_merge_requests.md)
-to propose changes. Your team makes [suggestions](suggestions.md) and leaves
-[comments](../../../discussions/index.md). When your work is reviewed, your team
-members can choose to accept or reject it.
+to propose changes. Your team leaves [comments](../../../discussions/index.md), and
+makes [code suggestions](suggestions.md) you can accept from the user interface.
+When your work is reviewed, your team members can choose to accept or reject it.
## View merge requests
diff --git a/doc/user/project/merge_requests/reviews/suggestions.md b/doc/user/project/merge_requests/reviews/suggestions.md
index 0c8dd384b88..9409cc569a6 100644
--- a/doc/user/project/merge_requests/reviews/suggestions.md
+++ b/doc/user/project/merge_requests/reviews/suggestions.md
@@ -140,3 +140,7 @@ to your branch to address your reviewers' requests.
WARNING:
Suggestions applied from multiple authors creates a commit authored by the user applying the suggestions.
+
+## Related links
+
+- [Suggestions API](../../../../api/suggestions.md)
diff --git a/lib/gitlab/highlight.rb b/lib/gitlab/highlight.rb
index e4857280969..2d58bb88816 100644
--- a/lib/gitlab/highlight.rb
+++ b/lib/gitlab/highlight.rb
@@ -11,9 +11,11 @@ module Gitlab
end
def self.too_large?(size)
- return false unless size.to_i > Gitlab.config.extra['maximum_text_highlight_size_kilobytes']
+ file_size_limit = Gitlab.config.extra['maximum_text_highlight_size_kilobytes']
- over_highlight_size_limit.increment(source: "text highlighter") if Feature.enabled?(:track_file_size_over_highlight_limit)
+ return false unless size.to_i > file_size_limit
+
+ over_highlight_size_limit.increment(source: "file size: #{file_size_limit}") if Feature.enabled?(:track_file_size_over_highlight_limit)
true
end
diff --git a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb
index fe2d821576b..2538f249010 100644
--- a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb
+++ b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb
@@ -18,7 +18,7 @@ module QA
end
where(:template) do
- %w[rails spring express]
+ %w[express]
end
with_them do
@@ -45,7 +45,7 @@ module QA
Flow::Login.sign_in
end
- it 'works with Auto DevOps', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/240946', type: :flaky } do
+ it 'works with Auto DevOps' do
%w[build code_quality test].each do |job|
pipeline.visit!
diff --git a/scripts/lint-changelog-filenames b/scripts/lint-changelog-filenames
deleted file mode 100755
index fc07b7153aa..00000000000
--- a/scripts/lint-changelog-filenames
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-lint_paths="changelogs/unreleased"
-[ -d "ee/" ] && lint_paths="$lint_paths ee/changelogs/unreleased"
-
-invalid_files=$(find $lint_paths -type f -not -name "*.yml" -not -name ".gitkeep")
-
-if [ -n "$invalid_files" ]; then
- echo "Changelog files must end in .yml, but these did not:"
- echo "$invalid_files" | sed -e "s/^/* /"
- exit 1
-fi
diff --git a/scripts/static-analysis b/scripts/static-analysis
index 136b2966244..f004d2246ec 100755
--- a/scripts/static-analysis
+++ b/scripts/static-analysis
@@ -38,8 +38,7 @@ class StaticAnalysis
%w[yarn run block-dependencies] => 0.35,
%w[scripts/lint-rugged] => 0.23,
%w[scripts/gemfile_lock_changed.sh] => 0.02,
- %w[scripts/frontend/check_no_partial_karma_jest.sh] => 0.01,
- %w[scripts/lint-changelog-filenames] => 0.01
+ %w[scripts/frontend/check_no_partial_karma_jest.sh] => 0.01
}.reject { |k| k.nil? }.sort_by { |a| -a[1] }.to_h.keys.freeze
def run_tasks!
diff --git a/spec/frontend/nav/components/top_nav_container_view_spec.js b/spec/frontend/nav/components/top_nav_container_view_spec.js
index b08d75f36ce..12bee7a515e 100644
--- a/spec/frontend/nav/components/top_nav_container_view_spec.js
+++ b/spec/frontend/nav/components/top_nav_container_view_spec.js
@@ -23,13 +23,14 @@ const TEST_OTHER_PROPS = {
describe('~/nav/components/top_nav_container_view.vue', () => {
let wrapper;
- const createComponent = (props = {}) => {
+ const createComponent = (props = {}, options = {}) => {
wrapper = shallowMount(TopNavContainerView, {
propsData: {
...DEFAULT_PROPS,
...TEST_OTHER_PROPS,
...props,
},
+ ...options,
});
};
@@ -44,6 +45,7 @@ describe('~/nav/components/top_nav_container_view.vue', () => {
return {
vuexModule: parent.props('vuexModule'),
props: parent.findComponent(FrequentItemsApp).props(),
+ attributes: parent.findComponent(FrequentItemsApp).attributes(),
};
};
@@ -67,14 +69,23 @@ describe('~/nav/components/top_nav_container_view.vue', () => {
);
describe('default', () => {
+ const EXTRA_ATTRS = { 'data-test-attribute': 'foo' };
+
beforeEach(() => {
- createComponent();
+ createComponent({}, { attrs: EXTRA_ATTRS });
+ });
+
+ it('does not inherit extra attrs', () => {
+ expect(wrapper.attributes()).toEqual({
+ class: expect.any(String),
+ });
});
it('renders frequent items app', () => {
expect(findFrequentItemsApp()).toEqual({
vuexModule: DEFAULT_PROPS.frequentItemsVuexModule,
props: TEST_OTHER_PROPS,
+ attributes: expect.objectContaining(EXTRA_ATTRS),
});
});
diff --git a/spec/lib/gitlab/highlight_spec.rb b/spec/lib/gitlab/highlight_spec.rb
index a5e4d37d306..74388273c8d 100644
--- a/spec/lib/gitlab/highlight_spec.rb
+++ b/spec/lib/gitlab/highlight_spec.rb
@@ -54,7 +54,7 @@ RSpec.describe Gitlab::Highlight do
end
it 'increments the metric for oversized files' do
- expect { result }.to change { over_highlight_size_limit('text highlighter') }.by(1)
+ expect { result }.to change { over_highlight_size_limit('file size: 0.0001') }.by(1)
end
it 'returns plain version for long content' do
diff --git a/spec/tooling/danger/project_helper_spec.rb b/spec/tooling/danger/project_helper_spec.rb
index e07d9a8a6f2..3275b41ba6e 100644
--- a/spec/tooling/danger/project_helper_spec.rb
+++ b/spec/tooling/danger/project_helper_spec.rb
@@ -162,8 +162,6 @@ RSpec.describe Tooling::Danger::ProjectHelper do
'workhorse/main.go' | [:workhorse]
'workhorse/internal/upload/upload.go' | [:workhorse]
- 'changelogs/foo' | [:none]
- 'ee/changelogs/foo' | [:none]
'locale/gitlab.pot' | [:none]
'FOO' | [:unknown]
diff --git a/tooling/danger/project_helper.rb b/tooling/danger/project_helper.rb
index c965c02378c..c0aa27b7a0c 100644
--- a/tooling/danger/project_helper.rb
+++ b/tooling/danger/project_helper.rb
@@ -38,8 +38,6 @@ module Tooling
%r{\A(ee/)?config/feature_flags/} => :feature_flag,
- %r{\A(ee/)?(changelogs/unreleased)(-ee)?/} => :changelog,
-
%r{\Adoc/development/usage_ping/dictionary\.md\z} => [:docs, :product_intelligence],
%r{\Adoc/.*(\.(md|png|gif|jpg))\z} => :docs,
%r{\A(CONTRIBUTING|LICENSE|MAINTENANCE|PHILOSOPHY|PROCESS|README)(\.md)?\z} => :docs,