Release 11.1
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 manager and trainees -
Create a new slack channel #f_release_11_1
-
set the topic to RMs: https://about.gitlab.com/release-managers
-
invite all current and previous 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!
-
Create the ~"Pick into 11.1" group label if it doesn't exist: https://gitlab.com/groups/gitlab-org/labels/new - Title:
Pick into 11.1
- Description:
Merge requests to cherry-pick into the `11-1-stable` branch.
- Color:
#00c8ca
- Title:
-
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-1-stable
from CEmaster
manually -
Create branch 11-1-stable-ee
from EEmaster
manually -
In Omnibus create both 11-1-stable
and11-1-stable-ee
frommaster
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
) todev
(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 -
Create an MR on CE master updating the .gitignore
,.gitlab-ci.yml
, andDockerfile
templates -
Create an MR on CE master updating the dependencies license list -
Ensure the above MRs are merged and marked ~"Pick into 11.1" -
Create a task list for RC1: # In the release-tools project: bundle exec rake "patch_issue[11.1.0-rc1]"
-
Link the RC1 issue as a related issue in this issue
-
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 the release-tools project (update RC number): bundle exec rake "patch_issue[11.1.0-rc2]"
-
Link any subsequent RCs issues as a related issue in this issue
Keep in mind that:
- After the feature freeze only regression and security fixes should be cherry-picked into stable branches.
- The final RC should point to the same commit as the final release.
On the 7th
-
In #development
:@channel `11-1-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-1-stable`. Please ensure that merge requests have the correct milestone (`11.1` for this release) and the `Pick into 11.1` 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 the release-tools project (update RC number): bundle exec rake "patch_issue[11.1.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 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):
-
Ensure tests are green on CE stable branch -
Ensure tests are green on EE stable branch -
Ensure tests are green on Omnibus CE stable branch -
Ensure tests are green on Omnibus EE stable branch -
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
-
-
Before 10:00 UTC:
-
Tag the 11.1.0
version using thetag
command:```sh # In Slack /chatops run tag 11.1.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.1.0-ee.0 -w
-
-
Before 12:00 UTC:
-
Notify #production channel about staging deploy. No need to require confirmation. -
On video call, deploy 11.1.0
to staging.gitlab.com```sh # In the takeoff project: bin/takeoff-deploy -e staging -v 11.1.0-ee.0 ```
-
Notify #production channel about canary deploy. No need to require confirmation. -
On video call, deploy 11.1.0
to canary.gitlab.com```sh # In the takeoff project: bin/takeoff-deploy -e canary -v 11.1.0-ee.0 ```
-
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. -
On video call, deploy 11.1.0
to GitLab.com```sh # In the takeoff project: bin/takeoff-deploy -e production -v 11.1.0-ee.0 ```
-
-
At 14:30 UTC:
-
Publish the packages via ChatOps: /chatops run publish 11.1.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.1.0
version on version.gitlab.com -
Ensure someone tweets about the 11.1.0
release in the#releases
channel
-