Release notes
GitLab release notes are stored in the gitlab repository.
Release notes are organized into one directory for each release with an index.md file and individual
files for each feature. For example, the structure is similar to:
doc/
└─ releases/
└─ 19/
└─ gitlab-19-0-released/
│ ├── index.md
│ └── featureA-Beta.md
└─ gitlab-19-1-released/
├── index.md
├── featureB.md
└── featureA-GA.mdFor each release, the product manager is responsible for creating the MR and files for the feature release note. The Technical writing team is responsible for creating all other directories and files.
Create a feature release note
To create a feature release note:
- Identify the directory for the associated release. It should be something similar to
/doc/releases/19/gitlab-19-1-released/. - In this directory, create a Markdown file for the feature release note. Although the name doesn’t matter, it’s helpful to name it so it’s identifiable later.
- Paste the template from below into the Markdown file.
- Adjust the metadata to match your specific needs.
- Documentation links must be relative.
- Make sure work item links are not confidential.
- After the metadata, define the release note text.
- Use 125 words or fewer, and no images or videos.
- Documentation links are allowed, but must be relative.
- Links to other resources are also allowed.
- Create a merge request:
- Use the
Release Notes Itemtemplate to populate the description and track progress. - Assign the merge request to an Engineering Manager and Technical Writer for review.
- Use the
All release notes should be merged by 23:59 UTC on the Friday before the release day to be included in the appropriate release.
Edit or remove a feature release note
If you need to update or entirely remove a feature release note, make a merge request with the requested changes, and assign to a Technical Writer for review.
To remove a feature release note, you only need to delete the associated file. No other files need to be adjusted.
Add a notable contributor
Developer Relations creates a merge request for each release that adds a few sentences about the notable contributor.
This information needs to be added to the minor release index file.
For example, doc/releases/19/gitlab-19-1-released/index.md.
Use the following template after the existing introductory text:
## Notable contributor
We are excited to recognize [Name](https://gitlab.com/<username>)
as this month's [Notable Contributor](https://contributors.gitlab.com/notable-contributors)! ...This merge request can be merged at any point before the release, though you can check with the author to confirm.
Review a feature release note
After the merge request is created, a Technical Writer must review the metadata and body text. This process is similar to other documentation changes.
Publish release notes
On release day, the Technical Writer assigned to the upcoming release creates three merge requests:
- Update content for the current release and
create content for the upcoming release in
gitlab. Can be done before release day. - Add current release to navigation in
docs-gitlab-com. Can be done before release day. - Backport the release notes to the most recent stable branch.
For example, if you are releasing 19.1, the stable branch is
19-1-stable-ee. Must be done on release day.
Do not merge the changes until the release manager confirms that the packages are publicly
available, usually around 14:00 UTC. Release managers add a note in the
#release-post channel when it’s time to publish.
Update content for current release
As part of the publishing process, you must update the minor release index file.
To update the content for the current release:
Open the minor release index file. For example
doc/releases/19/gitlab-19-0-released/index.md.In the metadata, after the
group, add the release date. For example:date: 2026-05-21This addition makes the pipeline fail until the date of release. This failure is expected.
Update the
descriptionmetadata:# Original description: Summary of features included in <version> # New desciption: GitLab <version> released with <top feature title>Replace the version and top feature title with the relevant information.
Update the
titlemetadata:# Original title: GitLab <version> - not yet released # New title: GitLab <version>Update the introductory text:
# Original The following features are being delivered for GitLab <version>. These features are now available on GitLab.com. # New On <release date>, GitLab <version> was released with the following features.Replace the date and version with the relevant information.
Create content for upcoming release
As part of the publishing process, you must create the directory and content for the next release. For example, when publishing 19.1, you would create the directory and index file for 19.2.
To create content for the upcoming release:
Identify the major version directory in
/doc/releases/. For example/doc/releases/19/.Create content for the upcoming version:
- Create a new directory for the upcoming release. For example,
19/gitlab-19-1-released/. - In the new directory, create an
index.mdfile for the upcoming release. For example,19/gitlab-19-1-released/index.md. - Paste the template and update the version number.
- Create a new directory for the upcoming release. For example,
Add the file to the major version index page.
- Go to the major version directory in
/doc/releases/. For example/doc/releases/19/. - In
_index.md, update the cards shortcode to reference the upcoming release file. For example:
{{< cards >}} - [GitLab 19.0](gitlab-19-0-released/index.md) - [GitLab 19.1](gitlab-19-1-released/index.md) {{< /cards >}}- Go to the major version directory in
Update the upcoming redirect page to reference the upcoming release.
In
doc/releases/upcoming.md, update the redirect metadata to point to the upcoming release file. For example:--- redirect_to: '19/gitlab-19-1-released/index.md' ---
Create a merge request and assign to a Technical Writer for review.
Add current release to navigation
In the docs-gitlab-com repository, add the current release to data/en-us/navigation.yaml.
For example:
- title: GitLab 19
url: 'releases/19/'
submenu:
- title: GitLab 19.0
url: 'releases/19/gitlab-19-0-released/'
- title: GitLab 19.1
url: 'releases/19/gitlab-19-1-released/'You can now push your commit. This merge request is complete.
Backport final release notes
After the release notes are published, you must backport them. You must do this work on release day and not before.
The final cutoff for the gitlab repository happens the Friday before the release.
If a user selects the version from the upper-right corner of the documentation site, they cannot get the final notes.
Backporting makes the notes visible and up-to-date when users select the newly released version.
- Check out the “stable branch.” For example, if you are releasing 19.1, check out
19-1-stable-ee. - Open the latest release notes from the
gitlabrepository and copy the file contents. - Paste the contents over the local version of the release notes.
- Open a merge request and select the Stable branch template to populate the description.
Change the target branch to the stable branch (
19-1-stable-ee). - Have a maintainer review and merge. (It can be another Technical Writer.)
If the branch is still locked, ask for assistance in the
#release-postchannel, or wait a few hours until the branch is available to merge. - After merge, create a new pipeline.
For Run for branch name or tag, select the version to deploy. In this example, choose
19.1, then select New pipeline.
Update content after a release
To update, add, or remove a release note after the release deadline:
- Update the
gitlabrepository.- Open a merge request to update the Markdown file in the
gitlabrepository. - Make your changes.
- Have a Technical Writer review and merge.
- Open a merge request to update the Markdown file in the
- Backport the changes.
- Check out the stable branch. For example, if you are updating 19.0, check out
19-0-stable-ee. - Make your change in this branch.
- Open a merge request and set the target branch to the stable branch (
19-0-stable-ee). - Have a maintainer review and merge. It can be another Technical Writer.
- After merge, a technical writer must run a new pipeline for the relevant stable branch in
docs-gitlab-com. For Run for branch name or tag, select the version to deploy. In this example, choose19.0, then select New pipeline.
- Check out the stable branch. For example, if you are updating 19.0, check out
- On https://docs.gitlab.com, select the version in the upper-right corner and verify the notes were updated successfully.
Organization
In the release post, each feature release note is grouped into a section based on the stage
metadata defined in the feature release note. Each stage
maps to one of the following sections:
| Section | Stages |
|---|---|
| Primary features | - |
| Agentic Core | ai-powered, modelops |
| Unified DevOps and Security | analytics, application_security_testing, create, deploy, knowledge_graph, package, plan, security_risk_management, software_supply_chain_security, verify |
| Scale and Deployments | data_access, database_excellence, developer_experience, foundations, fulfillment, gitlab_dedicated, gitlab_delivery, growth, production_engineering, tenant_scale, unlisted/unknown |
Sections appear in the order listed in the table, with Primary features first. Any stage that
isn’t mapped appears in the Scale and Deployments section. To add features to the Primary features section,
use the level metadata.
In each section, feature release notes are listed alphabetically by title. To override this order, define a value
for the weight metadata, where lower numbers go first.
Generally, use multiples of 10 (such as 10, 20, 30) to leave room for future insertions, and avoid single-digit
values unless a note must absolutely appear first.
Metadata
Minor release index metadata
| Metadata | Format | Description |
|---|---|---|
title | Pre-release: GitLab <version> - not yet releasedPost-release: GitLab <version> | Page title. Uses the first format before release, and the second on release day. |
description | Pre-release: Summary of features included in <version>Post-release: GitLab <version> released with <top feature title> | Short summary displayed on cards for the index page. |
group | Monthly Release, Patch Release | Used for analytics and feedback. Always uses Monthly Release; patch releases are created through a different process. |
stage | Release Notes | Used for analytics and feedback. Always uses Release Notes. |
Feature release note metadata
| Metadata | Format | Description |
|---|---|---|
title | string | Feature title. Displayed as a section heading. Ideally seven words or fewer. |
tier | array, formatted like [ Free, Premium, Ultimate ] | Feature tier. Requires at least one. Always follow this order. |
offering | array, formatted like [ gitlab_com, self_managed, gitlab_dedicated, gitlab_dedicated_for_government] | Feature offerings. Formatting matters. Requires at least one. Always follow this order. |
documentation_link | relative URL | Link to the feature documentation. Don’t use https://-style links, and omit _index.md or the .md extension. |
work_item | absolute URL | Link to the related work item. Must not be confidential. |
categories | array | An array with the Name value of one or more categories. Values are case-sensitive, separate multiple values with commas. If a related category doesn’t exist, make another merge request to add it. For 19.1, also add the categories information to an HTML comment in the body text. For more information, see the template. |
stage | string | Name of the stage that created the feature. Used to organize the section the release note appears in. |
level | One of: primary or secondary | Optional. Controls placement in the Primary features section. If undefined, defaults to secondary. |
weight | number | Optional. Controls ordering in each section. Lower numbers go first. To force a feature release note first in a section, use a lower number such as 10. To avoid sorting issues with other feature release notes, avoid using single-digit numbers unless the note must absolutely appear first. |
ignore_in_report | boolean | Required to be true by internal tooling. Has no impact on rendering the feature release note. |
Templates
Minor release index
---
title: "GitLab <version> - not yet released"
description: "Summary of features included in <version>"
group: Monthly Release
stage: Release Notes
---
The following features are being delivered for GitLab <version>.
These features are now available on GitLab.com.
## Notable contributorFeature release note
For the 19.1 release, also add the categories information to an HTML comment in the body text.
Use this format: <!-- categories: System Access, Permissions -->.
---
title:
tier: [ Free, Premium, Ultimate ]
offering: [ gitlab_com, self_managed, gitlab_dedicated, gitlab_dedicated_for_government ]
stage: application_security_testing
documentation_link: "../../../_index/#popular-topics"
work_item: https://gitlab.com/groups/gitlab-org/-/work_items/<work-item-number>
categories: [ System Access, Permissions ]
level: primary or secondary
weight: 50
ignore_in_report: true
---
<!-- categories: System Access, Permissions -->
The text of the feature release note.
Explain the value of this improvement with 125 words or fewer.
Use phrases that start with, "In previous versions of GitLab, you couldn't... Now you can..."