From 54417aebeb42e63fbef5bd284f2b52f4e1122277 Mon Sep 17 00:00:00 2001 From: Suzanne Selhorn Date: Mon, 14 Jul 2025 08:40:43 -0700 Subject: [PATCH] Updating bold paths --- doc/_index.md | 10 +- doc/install/aws/_index.md | 31 ++-- doc/install/azure/_index.md | 14 +- doc/install/install_ai_gateway.md | 2 +- doc/install/package/almalinux.md | 18 +- doc/install/package/amazonlinux_2.md | 18 +- doc/install/package/amazonlinux_2023.md | 18 +- doc/install/package/debian.md | 18 +- doc/install/package/suse.md | 18 +- doc/install/package/ubuntu.md | 18 +- doc/update.py | 219 +++++++++++++++++++++++ doc/update/background_migrations.md | 12 +- doc/update/deprecations.md | 147 ++++++--------- doc/update/versions/gitlab_15_changes.md | 4 +- doc/update/versions/gitlab_17_changes.md | 12 +- doc/update/zero_downtime.md | 24 +-- 16 files changed, 357 insertions(+), 226 deletions(-) create mode 100644 doc/update.py diff --git a/doc/_index.md b/doc/_index.md index b4ba90f7e67de5..2bcc3384f96366 100644 --- a/doc/_index.md +++ b/doc/_index.md @@ -20,11 +20,11 @@ Explore the different areas of the documentation: | | | |:------------------------|:------------------------| -| [**Use GitLab**](user/_index.md)
Get started with GitLab features and functionality. | [**Administer GitLab**](administration/_index.md)
Administer GitLab Self-Managed. | -| [**New to Git and GitLab?**](tutorials/_index.md)
Start learning about Git and GitLab. | [**Contribute to GitLab development**](#contribute-to-gitlab)
Create new GitLab functionality and documentation. | -| [**Coming to GitLab from another platform?**](#coming-to-gitlab-from-another-platform)
Learn how to move to GitLab. | [**Build an integration with GitLab**](#build-an-integration-with-gitlab)
Integrate with Jira and other common applications. | -| [**Choose a subscription**](subscriptions/_index.md)
Determine which subscription tier makes sense for you. | [**Install GitLab**](install/_index.md)
Install GitLab on different platforms. | -| [**Reference architectures**](administration/reference_architectures/_index.md)
View recommended deployments at scale. | [**Upgrade GitLab**](update/_index.md)
Upgrade your GitLab Self-Managed instance to the latest version. | +| [**Use GitLab**](user/_index.md) **Get started with GitLab features and functionality. | [**Administer GitLab**](administration/_index.md)
**Administer GitLab Self-Managed. | +| [**New to Git and GitLab?**](tutorials/_index.md)
**Start learning about Git and GitLab. | [**Contribute to GitLab development**](#contribute-to-gitlab)
**Create new GitLab functionality and documentation. | +| [**Coming to GitLab from another platform?**](#coming-to-gitlab-from-another-platform)
**Learn how to move to GitLab. | [**Build an integration with GitLab**](#build-an-integration-with-gitlab)
**Integrate with Jira and other common applications. | +| [**Choose a subscription**](subscriptions/_index.md)
**Determine which subscription tier makes sense for you. | [**Install GitLab**](install/_index.md)
**Install GitLab on different platforms. | +| [**Reference architectures**](administration/reference_architectures/_index.md)
**View recommended deployments at scale. | [**Upgrade GitLab**](update/_index.md)
Upgrade your GitLab Self-Managed instance to the latest version. | ## Popular topics diff --git a/doc/install/aws/_index.md b/doc/install/aws/_index.md index d893bd66d7a0b5..e5a24b4bd79ec7 100644 --- a/doc/install/aws/_index.md +++ b/doc/install/aws/_index.md @@ -32,7 +32,7 @@ It's highly recommended to use the [GitLab Environment Toolkit (GET)](https://gi Following this guide exactly results in a proof of concept instance that roughly equates to a **scaled down** version of a **two availability zone implementation** of the **Non-HA** [40 RPS or 2,000 User Reference Architecture](../../administration/reference_architectures/2k_users.md). The 2K reference architecture is not HA because it is primarily intended to provide some scaling while keeping costs and complexity low. The [60 RPS or 3,000 User Reference Architecture](../../administration/reference_architectures/3k_users.md) is the smallest size that is GitLab HA. It has additional service roles to achieve HA, most notably it uses Gitaly Cluster to achieve HA for Git repository storage and specifies triple redundancy. -GitLab maintains and tests two main types of Reference Architectures. The **Linux package architectures** are implemented on instance compute while **Cloud Native Hybrid architectures** maximize the use of a Kubernetes cluster. Cloud Native Hybrid reference architecture specifications are addendum sections to the Reference Architecture size pages that start by describing the Linux package architecture. For example, the 60 RPS or 3,000 User Cloud Native Reference Architecture is in the subsection titled [Cloud Native Hybrid reference architecture with Helm Charts (alternative)](../../administration/reference_architectures/3k_users.md#cloud-native-hybrid-reference-architecture-with-helm-charts-alternative) in the 60 RPS or 3,000 User Reference Architecture page. +GitLab maintains and tests two main types of Reference Architectures. The **Linux package architectures** are implemented on instance compute while **Cloud Native Hybrid architectures**maximize the use of a Kubernetes cluster. Cloud Native Hybrid reference architecture specifications are addendum sections to the Reference Architecture size pages that start by describing the Linux package architecture. For example, the 60 RPS or 3,000 User Cloud Native Reference Architecture is in the subsection titled [Cloud Native Hybrid reference architecture with Helm Charts (alternative)](../../administration/reference_architectures/3k_users.md#cloud-native-hybrid-reference-architecture-with-helm-charts-alternative) in the 60 RPS or 3,000 User Reference Architecture page. ### Getting started for production-grade Linux package installations @@ -64,7 +64,7 @@ In addition to having a basic familiarity with [AWS](https://docs.aws.amazon.com - A domain name for the GitLab instance - An SSL/TLS certificate to secure your domain. If you do not already own one, you can provision a free public SSL/TLS certificate through [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/)(ACM) for use with the [Elastic Load Balancer](#load-balancer) we create. -{{< alert type="note" >}} +{{< alert type="note"**> **}} It can take a few hours to validate a certificate provisioned through ACM. To avoid delays later, request your certificate as soon as possible. @@ -80,7 +80,7 @@ The following diagram outlines the recommended architecture. GitLab uses the following AWS services, with links to pricing information: -- **EC2**: GitLab is deployed on shared hardware, for which +-**EC2**: GitLab is deployed on shared hardware, for which [on-demand pricing](https://aws.amazon.com/ec2/pricing/on-demand/) applies. If you want to run GitLab on a dedicated or reserved instance, see the [EC2 pricing page](https://aws.amazon.com/ec2/pricing/) for information about @@ -239,7 +239,7 @@ it receive traffic from any destination. 1. Select **Route Tables** from the left menu and select the `gitlab-public` route to show the options at the bottom. -1. Select the **Routes** tab, select **Edit routes > Add route** and set `0.0.0.0/0` +1. Select the **Routes** tab, select **Edit routes**> **Add route** and set `0.0.0.0/0` as the destination. In the target column, select the **Internet Gateway** and select the `gitlab-gateway` we created previously. Select **Save changes** when done. @@ -357,11 +357,11 @@ We need a security group for our database that allows inbound traffic from the i 1. Under **Subnet group details**, enter a name (we use `gitlab-rds-group`), a description, and choose the `gitlab-vpc` from the VPC dropdown list. 1. From the **Availability Zones** dropdown list, select the Availability Zones that include the subnets you've configured. In our case, we add `eu-west-2a` and `eu-west-2b`. 1. From the **Subnets** dropdown list, select the two private subnets (`10.0.1.0/24` and `10.0.3.0/24`) as we defined them in the [subnets section](#subnets). -1. Select **Create** when ready. +1. Select **Create**when ready. ### Create the database -{{< alert type="warning" >}} +{{< alert type="warning"**> **}} Avoid using burstable instances (t class instances) for the database as this could lead to performance issues due to CPU credits running out during sustained periods of high load. @@ -369,7 +369,7 @@ Avoid using burstable instances (t class instances) for the database as this cou Now, it's time to create the database: -1. Go to the RDS dashboard, select **Databases** from the left menu, and select **Create database**. +1. Go to the RDS dashboard, select**Databases** from the left menu, and select **Create database**. 1. Select **Standard Create** for the database creation method. 1. Select **PostgreSQL** as the database engine and select the minimum PostgreSQL version as defined for your GitLab version in our [database requirements](../requirements.md#postgresql). 1. Because this is a production server, let's choose **Production** from the **Templates** section. @@ -462,7 +462,7 @@ to these instances with SSH for actions that include making configuration change and performing upgrades. One way of doing this is by using a [bastion host](https://en.wikipedia.org/wiki/Bastion_host), sometimes also referred to as a jump box. -{{< alert type="note" >}} +{{< alert type="note"**> **}} If you do not want to maintain bastion hosts, you can set up [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) for access to instances. This is beyond the scope of this document. @@ -470,7 +470,7 @@ If you do not want to maintain bastion hosts, you can set up [AWS Systems Manage ### Create Bastion Host A -1. Go to the EC2 Dashboard and select **Launch instance**. +1. Go to the EC2 Dashboard and select**Launch instance**. 1. In the **Name and tags** section, set the **Name** to `Bastion Host A`. 1. Select the latest **Ubuntu Server LTS (HVM)** AMI. Check the GitLab documentation for the [latest supported OS version](../../administration/package_information/supported_os.md). 1. Choose an instance type. We use a `t2.micro` as we only use the bastion host to SSH into our other instances. @@ -506,7 +506,7 @@ If you do not want to maintain bastion hosts, you can set up [AWS Systems Manage 1. Create an EC2 instance following the same steps used previously with the following changes: 1. For the **Subnet**, select the second public subnet we created earlier (`gitlab-public-10.0.2.0`). - 1. Under the **Add Tags** section, we set `Key: Name` and `Value: Bastion Host B` so that we can easily identify our two instances. + 1. Under the **Add Tags**section, we set `Key: Name` and `Value: Bastion Host B` so that we can easily identify our two instances. 1. For the security group, select the existing `bastion-sec-group` we previously created. ### Use SSH Agent Forwarding @@ -518,8 +518,7 @@ Storing private key files on your bastion host is a bad idea. To get around this For example, the command-line `ssh` client uses agent forwarding with its `-A` switch, like this: ```shell -ssh -A user@ -``` +ssh -A user@ **``` See [Securely Connect to Linux Instances Running in a Private Amazon VPC](https://aws.amazon.com/blogs/security/securely-connect-to-linux-instances-running-in-a-private-amazon-vpc/) for a step-by-step guide on how to use SSH agent forwarding for other clients. @@ -531,7 +530,7 @@ We need a preconfigured, custom GitLab AMI to use in our launch configuration la From the EC2 dashboard: -1. Use the following section titled "[Find official GitLab-created AMI IDs on AWS](#find-official-gitlab-created-ami-ids-on-aws)" to find the correct AMI and select **Launch**. +1. Use the following section titled "[Find official GitLab-created AMI IDs on AWS](#find-official-gitlab-created-ami-ids-on-aws)" to find the correct AMI and select**Launch**. 1. In the **Name and tags** section, set the **Name** to `GitLab`. 1. In the **Instance type** dropdown list, select an instance type based on your workload. Consult the [hardware requirements](../requirements.md) to choose one that fits your needs (at least `c5.2xlarge`, which is sufficient to accommodate 100 users). 1. In the **Key pair** section, select **Create new key pair**. @@ -568,12 +567,12 @@ Because we're adding our SSL certificate at the load balancer, we do not need th From your GitLab instance, connect to the RDS instance to verify access and to install the required `pg_trgm` and `btree_gist` extensions. -To find the host or endpoint, go to **Amazon RDS > Databases** and select the database you created earlier. Look for the endpoint under the **Connectivity & security** tab. +To find the host or endpoint, go to **Amazon RDS**> **Databases** and select the database you created earlier. Look for the endpoint under the **Connectivity & security**tab. Do not to include the colon and port number: ```shell -sudo /opt/gitlab/embedded/bin/psql -U gitlab -h -d gitlabhq_production +sudo /opt/gitlab/embedded/bin/psql -U gitlab -h **-d gitlabhq_production ``` At the `psql` prompt create the extension and then quit the session: @@ -650,7 +649,7 @@ It should be enabled and configured on a separate EC2 instance in one of the Let's create an EC2 instance where we install Gitaly: -1. From the EC2 dashboard, select **Launch instance**. +1. From the EC2 dashboard, select**Launch instance**. 1. In the **Name and tags** section, set the **Name** to `Gitaly`. 1. Choose an AMI. In this example, we select the latest **Ubuntu Server LTS (HVM), SSD Volume Type**. Check the GitLab documentation for the [latest supported OS version](../../administration/package_information/supported_os.md). 1. Choose an instance type. We pick a `m5.xlarge`. diff --git a/doc/install/azure/_index.md b/doc/install/azure/_index.md index 35328eb0070640..6907e9400b7d8d 100644 --- a/doc/install/azure/_index.md +++ b/doc/install/azure/_index.md @@ -44,7 +44,7 @@ create a new VM: For the sake of this guide, let's create the VM from scratch, so select **Create**. -{{< alert type="note" >}} +{{< alert type="note"**> **}} Be aware that Azure incurs compute charges whenever your VM is active (known as "allocated"), even if you're using free trial @@ -66,7 +66,7 @@ The first items you need to configure are the basic settings of the underlying v doesn't exist). 1. Enter a name for the VM, for example `GitLab`. 1. Select a region. -1. In **Availability options**, select **Availability zone** and set it to `1`. +1. In**Availability options**, select **Availability zone** and set it to `1`. Read more about the [availability zones](https://learn.microsoft.com/en-us/azure/virtual-machines/availability). 1. Ensure the selected image is set to **GitLab - Gen1**. 1. Select the VM size based on the [hardware requirements](../requirements.md). @@ -176,7 +176,7 @@ redirect you to the public IP. To set up the GitLab external URL: -1. Connect to GitLab through SSH by going to **Settings > Connect** from the VM +1. Connect to GitLab through SSH by going to **Settings**> **Connect** from the VM dashboard, and follow the instructions. Remember to sign in with the username and SSH key you specified when you [created the VM](#configure-the-basics-tab). The Azure VM domain name is the one you @@ -258,11 +258,11 @@ in this section whenever you need to update GitLab. To determine the version of GitLab you're currently running: 1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Overview > Dashboard**. +1. Select **Overview**> **Dashboard**. 1. Find the version under the **Components** table. If there's a newer available version of GitLab that contains one or more -security fixes, GitLab displays an **Update asap** notification message that +security fixes, GitLab displays an **Update asap**notification message that encourages you to [update](#update-gitlab). ### Update GitLab @@ -281,7 +281,7 @@ To update GitLab to the latest version: and can take time to complete. During this time, the terminal shows various update tasks being completed in your terminal. - {{< alert type="note" >}} + {{< alert type="note"**> **}} If you get an error like `E: The repository 'https://packages.gitlab.com/gitlab/gitlab-ee/debian buster InRelease' is not signed.`, @@ -300,7 +300,7 @@ To update GitLab to the latest version: before anything else. ``` -Refresh your GitLab instance in the browser and go to the **Admin** area. You should now have an +Refresh your GitLab instance in the browser and go to the**Admin** area. You should now have an up-to-date GitLab instance. ## Next steps and further configuration diff --git a/doc/install/install_ai_gateway.md b/doc/install/install_ai_gateway.md index 9e587f640a871f..c6d558e8b9e766 100644 --- a/doc/install/install_ai_gateway.md +++ b/doc/install/install_ai_gateway.md @@ -371,7 +371,7 @@ If access issues persist, check that authentication is correctly configured, and In case of persistent issues, the error message may suggest bypassing authentication with `AIGW_AUTH__BYPASS_EXTERNAL=true`, but only do this for troubleshooting. -You can also run a [health check](../user/gitlab_duo/setup.md#run-a-health-check-for-gitlab-duo) by going to **Admin > GitLab Duo**. +You can also run a [health check](../user/gitlab_duo/setup.md#run-a-health-check-for-gitlab-duo) by going to **Admin**> **GitLab Duo**. These tests are performed for offline environments: diff --git a/doc/install/package/almalinux.md b/doc/install/package/almalinux.md index ac5ddbcb8345aa..71141ed9f42443 100644 --- a/doc/install/package/almalinux.md +++ b/doc/install/package/almalinux.md @@ -120,7 +120,7 @@ the package is installed. You can customize your GitLab installation by setting the following optional environment variables. **These variables only work during the first -installation** and have no effect on subsequent reconfigure runs. For existing +installation**and have no effect on subsequent reconfigure runs. For existing installations, use the password from `/etc/gitlab/initial_root_password` or [reset the root password](../../security/reset_user_password.md). @@ -130,7 +130,7 @@ installations, use the password from `/etc/gitlab/initial_root_password` or | `GITLAB_ROOT_EMAIL` | Custom email for the root administrator account | Optional | `GITLAB_ROOT_EMAIL="admin@example.com"` | | `GITLAB_ROOT_PASSWORD` | Custom password (8 characters minimum) for the root administrator account | Optional | `GITLAB_ROOT_PASSWORD="strongpassword"` | -{{< alert type="note" >}} +{{< alert type="note"**> **}} If GitLab can't detect a valid hostname during installation, reconfigure won't run automatically. In this case, pass any needed environment variables to your first `gitlab-ctl reconfigure` command. {{< /alert >}} @@ -140,25 +140,19 @@ Choose your GitLab edition and customize with the environment variables above: {{< tabs >}} -{{< tab title="Enterprise Edition" >}} - -**Basic installation:** +{{< tab title="Enterprise Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" dnf install gitlab-ee ``` -**With custom root credentials:** - -```shell +**With custom root credentials:**```shell sudo GITLAB_ROOT_EMAIL="admin@example.com" GITLAB_ROOT_PASSWORD="strongpassword" EXTERNAL_URL="https://gitlab.example.com" dnf install gitlab-ee ``` -{{< /tab >}} - -{{< tab title="Community Edition" >}} +{{< /tab**> **}} -**Basic installation:** +{{< tab title="Community Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" dnf install gitlab-ce diff --git a/doc/install/package/amazonlinux_2.md b/doc/install/package/amazonlinux_2.md index b7ef9b3b51fe3f..32fb52da4e0169 100644 --- a/doc/install/package/amazonlinux_2.md +++ b/doc/install/package/amazonlinux_2.md @@ -114,7 +114,7 @@ the package is installed. You can customize your GitLab installation by setting the following optional environment variables. **These variables only work during the first -installation** and have no effect on subsequent reconfigure runs. For existing +installation**and have no effect on subsequent reconfigure runs. For existing installations, use the password from `/etc/gitlab/initial_root_password` or [reset the root password](../../security/reset_user_password.md). @@ -124,7 +124,7 @@ installations, use the password from `/etc/gitlab/initial_root_password` or | `GITLAB_ROOT_EMAIL` | Custom email for the root administrator account | Optional | `GITLAB_ROOT_EMAIL="admin@example.com"` | | `GITLAB_ROOT_PASSWORD` | Custom password (8 characters minimum) for the root administrator account | Optional | `GITLAB_ROOT_PASSWORD="strongpassword"` | -{{< alert type="note" >}} +{{< alert type="note"**> **}} If GitLab can't detect a valid hostname during installation, reconfigure won't run automatically. In this case, pass any needed environment variables to your first `gitlab-ctl reconfigure` command. {{< /alert >}} @@ -134,25 +134,19 @@ Choose your GitLab edition and customize with the environment variables above: {{< tabs >}} -{{< tab title="Enterprise Edition" >}} - -**Basic installation:** +{{< tab title="Enterprise Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" yum install gitlab-ee ``` -**With custom root credentials:** - -```shell +**With custom root credentials:**```shell sudo GITLAB_ROOT_EMAIL="admin@example.com" GITLAB_ROOT_PASSWORD="strongpassword" EXTERNAL_URL="https://gitlab.example.com" yum install gitlab-ee ``` -{{< /tab >}} - -{{< tab title="Community Edition" >}} +{{< /tab**> **}} -**Basic installation:** +{{< tab title="Community Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" yum install gitlab-ce diff --git a/doc/install/package/amazonlinux_2023.md b/doc/install/package/amazonlinux_2023.md index 61308cb0318d32..59dcdb2a47df18 100644 --- a/doc/install/package/amazonlinux_2023.md +++ b/doc/install/package/amazonlinux_2023.md @@ -114,7 +114,7 @@ the package is installed. You can customize your GitLab installation by setting the following optional environment variables. **These variables only work during the first -installation** and have no effect on subsequent reconfigure runs. For existing +installation**and have no effect on subsequent reconfigure runs. For existing installations, use the password from `/etc/gitlab/initial_root_password` or [reset the root password](../../security/reset_user_password.md). @@ -124,7 +124,7 @@ installations, use the password from `/etc/gitlab/initial_root_password` or | `GITLAB_ROOT_EMAIL` | Custom email for the root administrator account | Optional | `GITLAB_ROOT_EMAIL="admin@example.com"` | | `GITLAB_ROOT_PASSWORD` | Custom password (8 characters minimum) for the root administrator account | Optional | `GITLAB_ROOT_PASSWORD="strongpassword"` | -{{< alert type="note" >}} +{{< alert type="note"**> **}} If GitLab can't detect a valid hostname during installation, reconfigure won't run automatically. In this case, pass any needed environment variables to your first `gitlab-ctl reconfigure` command. {{< /alert >}} @@ -134,25 +134,19 @@ Choose your GitLab edition and customize with the environment variables above: {{< tabs >}} -{{< tab title="Enterprise Edition" >}} - -**Basic installation:** +{{< tab title="Enterprise Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" dnf install gitlab-ee ``` -**With custom root credentials:** - -```shell +**With custom root credentials:**```shell sudo GITLAB_ROOT_EMAIL="admin@example.com" GITLAB_ROOT_PASSWORD="strongpassword" EXTERNAL_URL="https://gitlab.example.com" dnf install gitlab-ee ``` -{{< /tab >}} - -{{< tab title="Community Edition" >}} +{{< /tab**> **}} -**Basic installation:** +{{< tab title="Community Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" dnf install gitlab-ce diff --git a/doc/install/package/debian.md b/doc/install/package/debian.md index 3d9b9a24a76cee..a36f4b8c9bf076 100644 --- a/doc/install/package/debian.md +++ b/doc/install/package/debian.md @@ -115,7 +115,7 @@ the package is installed. You can customize your GitLab installation by setting the following optional environment variables. **These variables only work during the first -installation** and have no effect on subsequent reconfigure runs. For existing +installation**and have no effect on subsequent reconfigure runs. For existing installations, use the password from `/etc/gitlab/initial_root_password` or [reset the root password](../../security/reset_user_password.md). @@ -125,7 +125,7 @@ installations, use the password from `/etc/gitlab/initial_root_password` or | `GITLAB_ROOT_EMAIL` | Custom email for the root administrator account | Optional | `GITLAB_ROOT_EMAIL="admin@example.com"` | | `GITLAB_ROOT_PASSWORD` | Custom password (8 characters minimum) for the root administrator account | Optional | `GITLAB_ROOT_PASSWORD="strongpassword"` | -{{< alert type="note" >}} +{{< alert type="note"**> **}} If GitLab can't detect a valid hostname during installation, reconfigure won't run automatically. In this case, pass any needed environment variables to your first `gitlab-ctl reconfigure` command. {{< /alert >}} @@ -135,25 +135,19 @@ Choose your GitLab edition and customize with the environment variables above: {{< tabs >}} -{{< tab title="Enterprise Edition" >}} - -**Basic installation:** +{{< tab title="Enterprise Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ee ``` -**With custom root credentials:** - -```shell +**With custom root credentials:**```shell sudo GITLAB_ROOT_EMAIL="admin@example.com" GITLAB_ROOT_PASSWORD="strongpassword" EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ee ``` -{{< /tab >}} - -{{< tab title="Community Edition" >}} +{{< /tab**> **}} -**Basic installation:** +{{< tab title="Community Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce diff --git a/doc/install/package/suse.md b/doc/install/package/suse.md index f7fdc593794600..6ad5389a71795f 100644 --- a/doc/install/package/suse.md +++ b/doc/install/package/suse.md @@ -116,7 +116,7 @@ the package is installed. You can customize your GitLab installation by setting the following optional environment variables. **These variables only work during the first -installation** and have no effect on subsequent reconfigure runs. For existing +installation**and have no effect on subsequent reconfigure runs. For existing installations, use the password from `/etc/gitlab/initial_root_password` or [reset the root password](../../security/reset_user_password.md). @@ -126,7 +126,7 @@ installations, use the password from `/etc/gitlab/initial_root_password` or | `GITLAB_ROOT_EMAIL` | Custom email for the root administrator account | Optional | `GITLAB_ROOT_EMAIL="admin@example.com"` | | `GITLAB_ROOT_PASSWORD` | Custom password (8 characters minimum) for the root administrator account | Optional | `GITLAB_ROOT_PASSWORD="strongpassword"` | -{{< alert type="note" >}} +{{< alert type="note"**> **}} If GitLab can't detect a valid hostname during installation, reconfigure won't run automatically. In this case, pass any needed environment variables to your first `gitlab-ctl reconfigure` command. {{< /alert >}} @@ -136,25 +136,19 @@ Choose your GitLab edition and customize with the environment variables above: {{< tabs >}} -{{< tab title="Enterprise Edition" >}} - -**Basic installation:** +{{< tab title="Enterprise Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" zypper install gitlab-ee ``` -**With custom root credentials:** - -```shell +**With custom root credentials:**```shell sudo GITLAB_ROOT_EMAIL="admin@example.com" GITLAB_ROOT_PASSWORD="strongpassword" EXTERNAL_URL="https://gitlab.example.com" zypper install gitlab-ee ``` -{{< /tab >}} - -{{< tab title="Community Edition" >}} +{{< /tab**> **}} -**Basic installation:** +{{< tab title="Community Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" zypper install gitlab-ce diff --git a/doc/install/package/ubuntu.md b/doc/install/package/ubuntu.md index c4973b918710d5..62c0aed93d4946 100644 --- a/doc/install/package/ubuntu.md +++ b/doc/install/package/ubuntu.md @@ -116,7 +116,7 @@ the package is installed. You can customize your GitLab installation by setting the following optional environment variables. **These variables only work during the first -installation** and have no effect on subsequent reconfigure runs. For existing +installation**and have no effect on subsequent reconfigure runs. For existing installations, use the password from `/etc/gitlab/initial_root_password` or [reset the root password](../../security/reset_user_password.md). @@ -126,7 +126,7 @@ installations, use the password from `/etc/gitlab/initial_root_password` or | `GITLAB_ROOT_EMAIL` | Custom email for the root administrator account | Optional | `GITLAB_ROOT_EMAIL="admin@example.com"` | | `GITLAB_ROOT_PASSWORD` | Custom password (8 characters minimum) for the root administrator account | Optional | `GITLAB_ROOT_PASSWORD="strongpassword"` | -{{< alert type="note" >}} +{{< alert type="note"**> **}} If GitLab can't detect a valid hostname during installation, reconfigure won't run automatically. In this case, pass any needed environment variables to your first `gitlab-ctl reconfigure` command. {{< /alert >}} @@ -136,25 +136,19 @@ Choose your GitLab edition and customize with the environment variables above: {{< tabs >}} -{{< tab title="Enterprise Edition" >}} - -**Basic installation:** +{{< tab title="Enterprise Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ee ``` -**With custom root credentials:** - -```shell +**With custom root credentials:**```shell sudo GITLAB_ROOT_EMAIL="admin@example.com" GITLAB_ROOT_PASSWORD="strongpassword" EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ee ``` -{{< /tab >}} - -{{< tab title="Community Edition" >}} +{{< /tab**> **}} -**Basic installation:** +{{< tab title="Community Edition" >}}**Basic installation:** ```shell sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce diff --git a/doc/update.py b/doc/update.py new file mode 100644 index 00000000000000..15a73a86637c9c --- /dev/null +++ b/doc/update.py @@ -0,0 +1,219 @@ +#!/usr/bin/env python3 +""" +GitLab Markdown Bold Formatter +Fixes bold formatting around the '>' character in GitLab documentation. +Moves '>' outside of bold formatting to comply with style guidelines. +""" + +import os +import re +import glob +from pathlib import Path +from typing import List, Tuple, Dict + +def find_markdown_files(root_dir: str) -> List[str]: + """Find all markdown files in the directory and subdirectories.""" + pattern = os.path.join(root_dir, '**', '*.md') + return glob.glob(pattern, recursive=True) + +def fix_bold_formatting(content: str) -> Tuple[str, int]: + """ + Fix bold formatting around '>' character. + + Patterns to fix: + - **text > text** -> **text** > **text** + - **text >** -> **text** > + - **> text** -> > **text** + + Returns: (fixed_content, number_of_changes) + """ + changes = 0 + + # Pattern 1: **text > text** -> **text** > **text** + # This handles cases like **Overview > Users** + pattern1 = r'\*\*([^*]+?)\s*>\s*([^*]+?)\*\*' + def replace1(match): + nonlocal changes + changes += 1 + left_part = match.group(1).strip() + right_part = match.group(2).strip() + return f'**{left_part}** > **{right_part}**' + + content = re.sub(pattern1, replace1, content) + + # Pattern 2: **text >** -> **text** > + # This handles cases where > is at the end of bold text + pattern2 = r'\*\*([^*]+?)\s*>\s*\*\*' + def replace2(match): + nonlocal changes + changes += 1 + text = match.group(1).strip() + return f'**{text}** >' + + content = re.sub(pattern2, replace2, content) + + # Pattern 3: **> text** -> > **text** + # This handles cases where > is at the beginning of bold text + pattern3 = r'\*\*\s*>\s*([^*]+?)\*\*' + def replace3(match): + nonlocal changes + changes += 1 + text = match.group(1).strip() + return f'> **{text}**' + + content = re.sub(pattern3, replace3, content) + + return content, changes + +def process_file(filepath: str) -> Dict[str, any]: + """Process a single markdown file.""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + original_content = f.read() + + fixed_content, changes = fix_bold_formatting(original_content) + + if changes > 0: + # Write fixed content + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed_content) + + return { + 'filepath': filepath, + 'changes': changes, + 'status': 'modified' + } + else: + return { + 'filepath': filepath, + 'changes': 0, + 'status': 'no_changes' + } + + except Exception as e: + return { + 'filepath': filepath, + 'changes': 0, + 'status': 'error', + 'error': str(e) + } + +def process_batch(files: List[str], batch_num: int) -> Dict[str, any]: + """Process a batch of files.""" + print(f"\nProcessing batch {batch_num} ({len(files)} files)...") + + results = { + 'batch_num': batch_num, + 'files_processed': 0, + 'files_modified': 0, + 'total_changes': 0, + 'errors': [], + 'modified_files': [] + } + + for filepath in files: + result = process_file(filepath) + results['files_processed'] += 1 + + if result['status'] == 'modified': + results['files_modified'] += 1 + results['total_changes'] += result['changes'] + results['modified_files'].append({ + 'file': result['filepath'], + 'changes': result['changes'] + }) + print(f" ✓ {result['filepath']} ({result['changes']} changes)") + + elif result['status'] == 'error': + results['errors'].append({ + 'file': result['filepath'], + 'error': result['error'] + }) + print(f" ✗ {result['filepath']} (ERROR: {result['error']})") + + else: + print(f" - {result['filepath']} (no changes needed)") + + return results + +def main(): + # Configuration + ROOT_DIR = "/Users/sselhorn/dev/gitlab/gitlab/doc" + BATCH_SIZE = 50 + + print("GitLab Markdown Bold Formatter") + print("=" * 40) + print(f"Root directory: {ROOT_DIR}") + print(f"Batch size: {BATCH_SIZE}") + + # Verify directory exists + if not os.path.exists(ROOT_DIR): + print(f"Error: Directory {ROOT_DIR} does not exist!") + return + + # Find all markdown files + print("\nFinding markdown files...") + markdown_files = find_markdown_files(ROOT_DIR) + + if not markdown_files: + print("No markdown files found!") + return + + print(f"Found {len(markdown_files)} markdown files") + + # Process confirmation + response = input(f"\nDo you want to process these files? (y/N): ") + if response.lower() != 'y': + print("Operation cancelled.") + return + + # Process files in batches + all_results = [] + total_files = len(markdown_files) + + for i in range(0, total_files, BATCH_SIZE): + batch = markdown_files[i:i + BATCH_SIZE] + batch_num = (i // BATCH_SIZE) + 1 + + result = process_batch(batch, batch_num) + all_results.append(result) + + # Show batch summary + print(f"Batch {batch_num} complete: {result['files_modified']}/{result['files_processed']} files modified, {result['total_changes']} total changes") + + # Ask to continue if there are more batches + if i + BATCH_SIZE < total_files: + response = input(f"\nContinue with next batch? (Y/n): ") + if response.lower() == 'n': + print("Processing stopped by user.") + break + + # Final summary + print("\n" + "=" * 40) + print("FINAL SUMMARY") + print("=" * 40) + + total_processed = sum(r['files_processed'] for r in all_results) + total_modified = sum(r['files_modified'] for r in all_results) + total_changes = sum(r['total_changes'] for r in all_results) + total_errors = sum(len(r['errors']) for r in all_results) + + print(f"Files processed: {total_processed}") + print(f"Files modified: {total_modified}") + print(f"Total changes: {total_changes}") + print(f"Errors: {total_errors}") + + if total_modified > 0: + print(f"\nModified files:") + for result in all_results: + for mod_file in result['modified_files']: + print(f" {mod_file['file']} ({mod_file['changes']} changes)") + + if total_errors > 0: + print(f"\nErrors occurred:") + for result in all_results: + for error in result['errors']: + print(f" {error['file']}: {error['error']}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/doc/update/background_migrations.md b/doc/update/background_migrations.md index ed67d4ba8da0e3..a05279c6b18c24 100644 --- a/doc/update/background_migrations.md +++ b/doc/update/background_migrations.md @@ -81,9 +81,9 @@ Prerequisites: To check the status of batched background migrations: 1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Monitoring > Background migrations**. +1. Select **Monitoring**> **Background migrations**. 1. Select **Queued** or **Finalizing** to see incomplete migrations, - and **Failed** for failed migrations. + and **Failed**for failed migrations. ##### From the database @@ -108,7 +108,7 @@ To query the database directly for the status of batched background migrations: WHERE status NOT IN(3, 6); ``` -Alternatively, you can wrap the query with `gitlab-psql -c ""` to check the status of +Alternatively, you can wrap the query with `gitlab-psql -c " **"` to check the status of batched background migrations: ```shell @@ -243,7 +243,7 @@ If the migration continues to fail with an error, either: All failed batched background migrations must be resolved to upgrade to a newer version of GitLab. If you [check the status](#check-the-status-of-batched-background-migrations) -of batched background migrations, some migrations might display in the **Failed** tab +of batched background migrations, some migrations might display in the**Failed** tab with a **failed** status: ![A failed batched background migrations table.](img/batched_background_migrations_failed_v14_3.png) @@ -257,7 +257,7 @@ Prerequisites: - You must have administrator access to the instance. 1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Monitoring > Background migrations**. +1. Select **Monitoring**> **Background migrations**. 1. Select the **Failed** tab. This displays a list of failed batched background migrations. 1. Select the failed **Migration** to see the migration parameters and the jobs that failed. 1. Under **Failed jobs**, select each **ID** to see why the job failed. @@ -272,7 +272,7 @@ Prerequisites: - You must have administrator access to the instance. 1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Monitoring > Background migrations**. +1. Select **Monitoring**> **Background migrations**. 1. Select the **Failed** tab. This displays a list of failed batched background migrations. 1. Select a failed batched background migration to retry by clicking on the retry button ({{< icon name="retry" >}}). diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md index c7fa82e7f2f52f..a3607499bbd68f 100644 --- a/doc/update/deprecations.md +++ b/doc/update/deprecations.md @@ -22,9 +22,7 @@ For advanced searching and filtering of this deprecation information, try {{< icon name="rss" >}} **To be notified of upcoming breaking changes**, add this URL to your RSS feed reader: `https://about.gitlab.com/breaking-changes.xml` - - -