Skip to content

Release 11.4

First steps

Stable branch should be created after the 7th. The 7th is the last date to reliably get things in.

  • Assign this issue to all the release managers and trainees

  • Create a new slack channel #f_release_11_4

  • Set the channel topic to RMs: https://about.gitlab.com/release-managers

  • Invite all current release managers

  • Inside the channel invite trainees to start their onboarding

    Welcome @TRAINEE_1 and @TRAINEE_2 :wave:
    If you haven't done it already, please start your onboarding issue
    https://gitlab.com/gitlab-org/release/docs/blob/master/quickstart/release-manager.md
    Let us know if you have any questions!
  • Inside the old release slack channel, notify about #f_release_11_4

    Hello :wave:
    We are starting 11.4 into #f_release_11_4
    Please archive this channel and join #f_release_11_4 if interested
  • Create the ~"Pick into 11.4" group label if it doesn't exist: https://gitlab.com/groups/gitlab-org/labels/new

    • Title: Pick into 11.4
    • Description: Merge requests to cherry-pick into the `11-4-stable` branch.
    • Color: #00c8ca
  • Make sure the latest CE to EE on master branches is merged (it will reduce conflicts in the future). Ask in #ce-to-ee when in doubt.

  • Create branch 11-4-stable from CE master manually

  • Create branch 11-4-stable-ee from EE master manually

  • In Omnibus create both 11-4-stable and 11-4-stable-ee from master manually

  • Merge GitLab CE into EE on stable branches following the Merging a CE stable branch into its EE counterpart guide

  • Sync stable branches for CE, EE, and Omnibus to dev

  • Sync master branches to dev, as the CHANGELOG will be automatically updated on master during tagging

  • If needed, sync tags for dependencies (gitlab-shell, gitlab-workhorse, gitlab-pages, gitaly) to dev (when applicable. Builds should fail if this is needed.)

RC1

  • Follow the Creating RC1 guide:
    • Create an MR on CE master updating the "Installation from Source" guide, creating the "Update" guides

    • Create an MR on EE master creating the "CE to EE" guides

    • Ensure the above MRs are merged and marked ~"Pick into 11.4"

    • Create a task list for RC1:

      # In Slack:
      /chatops run release_issue 11.4.0-rc1
    • Link the RC1 issue as a related issue in this issue

Subsequent RCs

  • Update the blog post (gitlab-com/www-gitlab-com!15078 (merged)) upgrade barometer section with the migration types for this release, including the time they took to complete.

  • Create additional release candidates as needed:

    # In Slack (update RC number):
    /chatops run release_issue 11.4.0-rc2
  • Link any subsequent RCs issues as a related issue in this issue

Keep in mind that:

  1. After the feature freeze only regression, security, and documentation fixes should be cherry-picked into stable branches.
  2. The final RC should point to the same commit as the final release.

On the first working day after the 7th

  • Follow the Feature freeze RC guide:

    • Create an MR on CE master updating the .gitignore, .gitlab-ci.yml, and Dockerfile templates
    • Create an MR on CE master updating the dependencies license list
    • Ensure the above MRs are merged and marked ~"Pick into 11.4"
    • Merge CE master into EE master
    • Integrate changes from master into 11-4-stable
  • In #development:

    @channel
    
    `11-4-stable` branch has been created. Everything merged into `master`
    after this point will go into next month's release. Only regression and security fixes
    will be cherry-picked into `11-4-stable`.
    
    Please ensure that merge requests have the correct milestone (`11.4` for this release)
    and the `Pick into 11.4` label.
    
    From now on, please follow the "After the 7th" process:
    https://gitlab.com/gitlab-org/gitlab-ce/blob/master/PROCESS.md#after-the-7th

Final RC

The final RC should be created on the 21st of the month.

Before 13:00 UTC

Including changes at this stage requires signoff from the VP of Engineering.

  • Create a task list for the final RC:

    # In Slack (update RC number):
    /chatops run release_issue 11.4.0-rc22

At 15:00 UTC

If the final RC isn't tagged and deployed by this time, notify the Distribution Lead.

At 20:00 UTC

If the final RC still isn't tagged and deployed by this time, notify the VP of Engineering.

22nd: release day

No new code can be added to the release that was not included in the final RC.

  • At 08:00 UTC, final release is ready for tagging (Including changes at this stage requires signoff from the VP of Engineering):

  • Before 10:00 UTC:

    • Tag the 11.4.0 version using the release command:

      ```sh
      # In Slack:
      /chatops run tag 11.4.0
      ```
    • Check progress of EE packages build and CE packages build

    • Warm up the packages on takeoff by running: sh # In the takeoff project: bin/takeoff-deploy -v 11.4.0-ee.0 -w

  • Before 12:00 UTC:

    • Notify #production channel about staging deploy. No need to require confirmation.

    • On video call, deploy 11.4.0 to staging.gitlab.com

      ```sh
      # In the takeoff project:
      bin/takeoff-deploy -e gstg -v 11.4.0-ee.0
      ```
    • Notify #production channel about canary deploy. No need to require confirmation.

    • On video call, deploy 11.4.0 to [canary.gitlab.com]

      ```sh
      # In the takeoff project:
      bin/takeoff-deploy -e gprd-cny -v 11.4.0-ee.0
      ```
    • Confirm that there are no errors on canary

    • Get confirmation from a production team member to deploy production. Use !oncall prod if needed to find who's on call. If someone besides the oncall confirms, @mention the oncall so they are aware.

    • Confirm there are no critical alerts on gitlab.com on the alerting dashboard

    • On video call, deploy 11.4.0 to GitLab.com

      ```sh
      # In the takeoff project:
      bin/takeoff-deploy -e gprd -v 11.4.0-ee.0
      ```
  • At 14:30 UTC:

    • Publish the packages via ChatOps:
      # In Slack:
      /chatops run publish 11.4.0
    • Make sure that neither packages nor the blog post get published early without approval by the marketing team
  • At 15:00 UTC:

    • Verify that packages appear on packages.gitlab.com: EE / CE
    • Verify that Docker images appear on hub.docker.com: EE / CE
    • Create the 11.4.0 version on version.gitlab.com
    • Ensure someone tweets about the 11.4.0 release in the #releases channel
Edited by Jan Provaznik