diff options
-rw-r--r-- | .gitlab/issue_templates/release.md | 8 | ||||
-rw-r--r-- | Rakefile | 65 | ||||
-rw-r--r-- | doc/releases.md | 29 |
3 files changed, 6 insertions, 96 deletions
diff --git a/.gitlab/issue_templates/release.md b/.gitlab/issue_templates/release.md index 1919cea1..8702a32d 100644 --- a/.gitlab/issue_templates/release.md +++ b/.gitlab/issue_templates/release.md @@ -17,12 +17,10 @@ Documentation [for handling the docs release](https://gitlab.com/gitlab-org/gitl created a Docker image tagged with the name of the branch. ([If it fails, how do I fix it?](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/main/doc/releases.md#imagedocs-latest-job-fails-due-to-broken-links)) 1. [ ] [Create a release merge request](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/main/doc/releases.md#create-release-merge-request) for the new version, - which updates the version dropdown menu for the current documentation, and adds + which updates the version dropdown menu for all online versions, updates the archives list, and adds the release to the Docker configuration. - [ ] Mark as `Draft` and do not merge. -1. [ ] [Update the three online versions](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/main/doc/releases.md#update-dropdown-for-online-versions), - so they display the new release on their version dropdown menus. - - [ ] Check the review app to make sure the menus display correctly. + - [ ] Check the review app to make sure the Versions menu displays correctly. After the tasks above are complete, you don't need to do anything for a few days. @@ -46,7 +44,7 @@ After release post is live on the 22nd, or the next Monday morning if the releas scheduled pipeline to deploy all new versions to the public documentation site. No manually-run jobs are needed for this second pipeline. 1. [ ] After the deployment completes, open `docs.gitlab.com` in a browser. Confirm - both the latest version and the correct `pre-` version are listed in the documentation version dropdown. + both the latest version and the correct pre-release version are listed in the documentation version dropdown. 1. [ ] Check all published versions of the docs to ensure they are visible and that their version menus have the latest versions. 1. [ ] In this issue, create separate _threads_ for the retrospective, and add items as they appear: - `## :+1: What went well this release?` @@ -132,71 +132,6 @@ namespace :release do puts "\n#{COLOR_CODE_GREEN}INFO: Created new Dockerfile:#{COLOR_CODE_RESET} #{dockerfile}." puts "#{COLOR_CODE_GREEN}INFO: To push the new branch, run:#{COLOR_CODE_RESET} git push origin #{version}." end - - desc 'Creates merge requests to update the dropdowns in all online versions' - task :dropdowns do - # Check if you're on the default branch before starting. Fail if you are. - abort("\n#{COLOR_CODE_RED}ERROR: You are on the default branch. Create the current release branch and run the Rake task again.#{COLOR_CODE_RESET}") if `git branch --show-current`.tr("\n", '') == ENV['CI_DEFAULT_BRANCH'] - - # Load online versions - versions = YAML.load_file('./content/_data/versions.yaml') - - # The first online version should be the current stable one - current_version = versions['online'].first - - # The release branch name - release_branch = "release-#{current_version.tr('.', '-')}" - - # Check if a release branch has been created, if not fail and warn the user - abort("\n#{COLOR_CODE_RED}ERROR: A release branch for the latest stable version has not been created.#{COLOR_CODE_RESET}") if `git rev-parse --verify #{release_branch}`.empty? - - # Create a merge request to update the dropdowns in all online versions - versions['online'].each do |version| - # Set the commit title - mr_title = "Update #{version} dropdown to match that of #{current_version}" - mr_description = "Update version dropdown of #{version} release for the #{current_version} release." - branch_name = "update-#{version.tr('.', '-')}-for-release-#{current_version.tr('.', '-')}" - - puts "\n#{COLOR_CODE_GREEN}INFO: Fetching #{version} stable branch..#{COLOR_CODE_RESET}" - `git fetch origin #{version}` - - puts "\n#{COLOR_CODE_GREEN}INFO: Creating a new branch off of the online version..#{COLOR_CODE_RESET}" - `git checkout -b #{branch_name} origin/#{version}` - `git reset --hard origin/#{version}` - - puts "\n#{COLOR_CODE_GREEN}INFO: Copying the versions.yaml content from the release-#{current_version} branch..#{COLOR_CODE_RESET}" - `git checkout release-#{current_version.tr('.', '-')} -- content/_data/versions.yaml` - - puts "\n#{COLOR_CODE_GREEN}INFO: Committing and pushing to create a merge request..#{COLOR_CODE_RESET}" - `git commit -m "Update dropdown to #{current_version}"` - `git push --set-upstream origin #{branch_name} -o merge_request.create -o merge_request.target=#{version} -o merge_request.remove_source_branch -o merge_request.title="#{mr_title}" -o merge_request.description="#{mr_description}" -o merge_request.label="Technical Writing" -o merge_request.label="release" -o merge_request.label="Category:Docs Site" -o merge_request.label="type::maintenance"` - end - - # Create a merge request to update the dropdowns in all previous major online versions - versions['previous_majors'].each do |version| - # Set the commit title - mr_title = "Update #{version} dropdown to match that of #{current_version}" - mr_description = "Update version dropdown of #{version} release for the #{current_version} release." - branch_name = "update-#{version.tr('.', '-')}-for-release-#{current_version.tr('.', '-')}" - - puts "\n#{COLOR_CODE_GREEN}INFO: Fetching #{version} stable branch..#{COLOR_CODE_RESET}" - `git fetch origin #{version}` - - puts "\n#{COLOR_CODE_GREEN}INFO: Creating a new branch off of the online version..#{COLOR_CODE_RESET}" - `git checkout -b #{branch_name} origin/#{version}` - `git reset --hard origin/#{version}` - - puts "\n#{COLOR_CODE_GREEN}INFO: Copying the versions.yaml content from the release-#{current_version} branch..#{COLOR_CODE_RESET}" - `git checkout release-#{current_version.tr('.', '-')} -- content/_data/versions.yaml` - - puts "\n#{COLOR_CODE_GREEN}INFO: Committing and pushing to create a merge request..#{COLOR_CODE_RESET}" - `git commit -m "Update dropdown to #{current_version}"` - `git push --set-upstream origin #{branch_name} -o merge_request.create -o merge_request.target=#{version} -o merge_request.remove_source_branch -o merge_request.title="#{mr_title}" -o merge_request.description="#{mr_description}" -o merge_request.label="Technical Writing" -o merge_request.label="release" -o merge_request.label="Category:Docs Site" -o merge_request.label="type::maintenance"` - end - - # Switch back to the release branch after the dropdowns are pushed - `git checkout #{release_branch}` - end end desc 'Create the _redirects file' diff --git a/doc/releases.md b/doc/releases.md index 962118f6..5d49de5d 100644 --- a/doc/releases.md +++ b/doc/releases.md @@ -13,8 +13,7 @@ When you've completed the documentation release process: - The three most recent minor releases of the current major version. For example 13.9, 13.8, and 13.7. - The most recent minor releases of the last two major versions. For example 12.10, and 11.11. -- Documentation updates after the 22nd are for the next release. The versions dropdown - should have the current milestone with `-pre` appended to it, for example `13.10-pre`. +- Documentation updates after the 22nd are for the next release. Each documentation release: @@ -43,9 +42,8 @@ To minimize problems during the documentation release process, use the following 1. [Create a stable branch and Docker image](#create-stable-branch-and-docker-image-for-release) for the new version. 1. [Create a release merge request](#create-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](https://gitlab.com/gitlab-org/gitlab-docs/-/merge_requests/1555). + updates the version dropdown menu (`versions.json`) and archives list (`versions.yaml`) for the current documentation, + and adds the release to the Docker configuration. Try to create the MR close to the cutoff for `gitlab` project's stable branch for the release. If the `gitlab-docs` MR is too early or late, a mismatch between the `gitlab` project's @@ -54,9 +52,6 @@ To minimize problems during the documentation release process, use the following Slack channel and look for the `This is the candidate commit to be released on the 22nd.` message. - 1. [Update the three online versions](#update-dropdown-for-online-versions), so that they display the new release on their - version dropdown menus. - - Complete the publication steps on the 22nd of the month, after the release post is live: [Merge the release merge requests and run the necessary Docker image builds](#merge-merge-requests-and-run-docker-image-builds). @@ -160,24 +155,6 @@ To create the release merge request for the release: 1. 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` and `previous_majors` -versions (stable branches `X.Y` of the `gitlab-docs` project): - -1. Run the Rake task that creates the merge requests to update the dropdowns for the current major version. For - example, for the 14.7 release: - - ```shell - git checkout release-14-7 - ./bin/rake release:dropdowns - ``` - - For the 14.7 release, the task created [five merge requests](https://gitlab.com/gitlab-org/gitlab-docs/-/merge_requests?scope=all&state=all&label_name[]=release&milestone_title=14.7&search=update). - -1. [Visit the merge requests page](https://gitlab.com/gitlab-org/gitlab-docs/-/merge_requests?label_name%5B%5D=release) - to check that their pipelines pass. Set each merge request to _draft_ status and do not merge them yet. - ## Merge merge requests and run Docker image builds _Do this after the release post is live._ |