Release 14.6
Follow the process in Monthly documentation releases.
Recommended timeline
To minimize problems during the documentation release process, use the following timeline:
-
Between the 17th and the 20th of the month:
-
Create a stable branch and Docker image for the new version. -
Create a release merge request for the new version, which updates the version dropdown menu for the current documentation and adds the release to the Docker configuration. For example, the release merge request for 13.9. Try to create the MR close to the cutoff for
gitlab
project's stable branch for the release. If thegitlab-docs
MR is too early or late, a mismatch between thegitlab
project's documentation files and thegitlab-docs
global navigation can cause failed MR pipelines that must be manually fixed. To check the status of thegitlab
release, go to the#releases
Slack channel and look for theThis is the candidate commit to be released on the 22nd.
message. -
Update the three online versions, so that they display the new release on their version dropdown menus.
-
-
On the 22nd of the month, after the release post is live:
Merge the release merge requests and run the necessary Docker image builds.
Create stable branch and Docker image for release
To create a stable branch of the gitlab-docs
project and a Docker image for the release:
-
Make sure you're in the root path of the
gitlab-docs
repository. -
Run the Rake task to create the single version. For example, to create the 13.9 release branch and perform other tasks:
./bin/rake "release:single[13.9]"
A branch for the release is created, a new
Dockerfile.13.9
is created, and.gitlab-ci.yml
has branches variables updated into a new branch. These files are automatically committed. -
Push the newly created branch, but don't create a merge request. After you push, the
image:docs-single
job creates a new Docker image tagged with the name of the branch you created earlier. You can see the Docker image in theregistry
environment at https://gitlab.com/gitlab-org/gitlab-docs/-/environments/folders/registry.
For example, see the 13.9 release pipeline.
If the pipeline fails, the new Docker image is not created and so not added to the registry.
Optional. Test locally
Prerequisite:
- Install Docker. To verify, run
which docker
.
-
Build the image and run it. For example, for GitLab 13.9 documentation:
docker build -t docs:13.9 -f Dockerfile.13.9 . docker run -it --rm -p 4000:4000 docs:13.9
If you get a permission error, try running the commands prefixed with
sudo
.If you're informed that the Docker daemon isn't running, start it manually:
-
Visit
http://localhost:4000/13.9
to see if everything works correctly. -
Stop the Docker container:
- Identify the container's ID with
docker container ls
. - Run
docker stop <container ID>
.
- Identify the container's ID with
Create release merge request
Note: An epic is open to automate this step.
To create the release merge request for the release:
-
Make sure you're in the root path of the
gitlab-docs
repository. -
Create a branch
release-X-Y
. For example:git checkout main git checkout -b release-13-9
-
Edit
content/_data/versions.yaml
and update the lists of versions to reflect the new release:- Add the latest version to the
online:
section. - Move the oldest version in
online:
to theoffline:
section. There should now be three versions inonline:
.
- Add the latest version to the
-
Edit
Dockerfile.main
by removing the oldest version, and then adding the newest version to the top of the list. -
Commit and push to create the merge request. For example:
git add content/_data/versions.yaml Dockerfile.main git commit -m "Release 13.9" git push origin release-13-9
-
Create the merge request and choose the
Release
description template. Set the merge request to Draft status and do not merge it yet.
Update dropdown for online versions
To update content/_data/versions.yaml
for all online versions (stable branches X.Y
of the
gitlab-docs
project).
Update dropdowns for the current major version
-
Run the Rake task that creates the merge requests to update the dropdowns for the current major version. For example, for the 14.4 release:
git checkout release-14-4 ./bin/rake release:dropdowns
For the 14.4 release, the task created the following three merge requests:
-
Visit the merge requests page to check that their pipelines pass. Set each merge request to draft status and do not merge them yet.
Update dropdowns for the previous major versions
The previous major versions are listed under the current versions in the docs:
The process to update the dropdowns for the previous major versions is not automated, so you must create the merge requests manually. For simplicity, these steps assume you are updating the 13.12 and 12.10 dropdowns. The steps should be updated when we move to the next major release (15.0).
-
Create a branch off the stable branch for 13.12. Use
update-13.12-for-release-<new-version>
for the branch name. For example:git checkout -b update-13.12-for-release-14.4 origin/13.12
-
Edit
content/_data/versions.yaml
and update the list of versions to reflect the new release:- Add the latest version to the
online:
section. - Remove the oldest version in
online:
. There should now be three versions inonline:
.
- Add the latest version to the
-
Commit and push. For example, for the 14.4 release:
git add content/_data/versions.yaml git commit -m "Update dropdown to 14.4" git push origin update-13.12-for-release-14.4
-
Create the merge request:
- For the target branch, select the previous version's stable branch, in this case,
13.12
(do not selectmain
!) - Add the
~Technical Writing
and~release
labels. - Set the merge request to draft status.
- Example merge request for the 14.4 release.
- For the target branch, select the previous version's stable branch, in this case,
-
Create a branch off the stable branch for 12.10. Use
update-12.10-for-release-<new-version>
for the branch name. For example:git checkout -b update-12.10-for-release-14.4 origin/12.10
-
Edit
content/_data/versions.yaml
and update the list of versions to reflect the new release:- Add the latest version to the
online:
section. - Remove the oldest current version from
online:
.
- Add the latest version to the
-
Commit and push. For example, for the 14.4 release:
git add content/_data/versions.yaml git commit -m "Update dropdown to 14.4" git push origin update-12.10-for-release-14.4
-
Create the merge request:
- For the target branch, select the previous version's stable branch, in this case,
12.10
(do not selectmain
!) - Add the
~Technical Writing
and~release
labels. - Set the merge request to draft status.
- Example merge request for the 14.4 release.
- For the target branch, select the previous version's stable branch, in this case,
-
Visit the merge requests page to check that their pipelines pass. Do not merge them yet.
Merge merge requests and run Docker image builds
Do this after the release post is live.
The merge requests for the dropdowns should now all be merged into their respective stable branches.
- Check the pipelines page and make sure all stable branches have green pipelines.
- Merge all of the dropdown merge requests.
- Merge the release merge request.
- Each merge triggers a new pipeline for each stable branch. Check the pipelines page and wait for all the stable branch pipelines to complete.
- Go to the scheduled pipelines page
and run the
Build docker images weekly
pipeline that builds the:latest
Docker image. - In the scheduled pipeline you just started, manually run the image:docs-latest job.
- When the pipeline is complete, run the
Build docs.gitlab.com every 4 hours
scheduled pipeline to deploy all new versions to the public documentation site. You don't need to run any jobs manually for this second pipeline.
Post-deployment checklist
After the documentation is released, verify the documentation site has been deployed as expected.
Open site docs.gitlab.com
in a browser and confirm both the latest version and the correct pre-
version are listed in the documentation version dropdown.
For example, if you released the 14.1 documentation, the first dropdown entry should be
GitLab.com (14.2-pre)
, followed by 14.1
.