Skip to content

Release 11.5

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 FA QA using this issue template

  • Create a new slack channel #f_release_11_5

  • 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_5

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

    • Title: Pick into 11.5
    • Description: Merge requests to cherry-pick into the `11-5-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-5-stable from CE master manually

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

  • In Omnibus create both 11-5-stable and 11-5-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

Subsequent RCs

  • Update the blog post 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.5.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

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.5.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.5.0 version using the release command:

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

    • Warm up the packages on takeoff by running: sh # In Slack: /chatops run deploy 11.5.0-ee.0 --warmup

  • Before 12:00 UTC:

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

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

      # In Slack:
      /chatops run deploy 11.5.0-ee.0
    • Notify #production channel about canary deploy. No need to require confirmation.

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

      ```sh
      # In Slack:
      /chatops run deploy 11.5.0-ee.0 --canary
      ```
    • 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.5.0 to GitLab.com

      ```sh
      # In Slack:
      /chatops run deploy 11.5.0-ee.0 --production
      ```
  • At 13:30 UTC:

    • Publish the packages via ChatOps:
      # In Slack:
      /chatops run publish 11.5.0
    • Make sure that neither packages nor the blog post get published earlier than planned without approval by the messaging lead of the release post. Mind that you don't need their approval if you're on time
    • If anything goes wrong and the release is delayed, ping the release post manager on Slack to make them aware of the issue. Cross-post the slack message to the #marketing channel to notify them too
  • At 14:10 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.5.0 version on version.gitlab.com
    • Once all packages are available publicly and GitLab.com is up and running on the release version, ping the release post manager on Slack (#release-post channel) to give them a go to merge the release post at ~14:20 UTC, so that it will be live at 15:00 UTC
    • Make sure the release post manager will tweet about the 11.5.0 release. If they don't respond, ensure someone else tweets from the #releases channel