Release 9.5
First working day after 7th
Stable branch should be created after the 7th. The 7th is the last date to reliably get things in.
-
In #development
:``` @channel I am about to create the `9-5-stable` branch. Everything merged into `master` after this point will go into next month's release. Only regression and security fixes will be cherry-picked into `9-5-stable`. Please ensure that merge requests have the correct milestone (`9.5` for this release) and the `Pick into Stable` 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 ```
-
Create branch 9-5-stable
from CEmaster
manually -
Create branch 9-5-stable-ee
from EEmaster
manually -
In Omnibus create both 9-5-stable
and9-5-stable-ee
frommaster
manually -
Pick The following MR's for CE: -
Pick The following MR's for EE: -
Merge GitLab CE into EE on the stable branches -
Sync stable branches: CE, EE, and Omnibus to dev
, CE and Omnibus togithub
-
Sync master branches to dev
andgithub
, 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
andgithub
(when applicable)
RC1
-
Ensure omnibus-gitlab
is ready to build packages by asking the Omnibus maintainers in Slack (#build
) -
Follow the Creating RC1 guide:
-
Create MR on CE master updating the "Installation from Source" guide, creating the "Update" guides https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13411 -
Create MR on EE master creating the "CE to EE" guides - https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2639 -
Create MR on CE master updating the gitignore and license templates - https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13423 -
Create MR on CE master updating the dependencies license list -
Ensure above MRs are merged and marked Pick into Stable
for milestone9.5
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.5 merged merge requests page) into the CE9-5-stable
and EE9-5-stable-ee
branches, respectively. -
Merge CE 9-5-stable
into EE9-5-stable-ee
following the Merging a CE stable branch into its EE counterpart guide - https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2629 -
Sync stable branches: CE, EE, and Omnibus to dev
, CE and Omnibus togithub
-
Sync master branches to dev
andgithub
, 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
andgithub
(when applicable) -
Check for any problematic migrations in EE (EE migrations include CE ones), and paste the diff in a snippet: git diff v9.5.0-rc1-ee..9-5-stable-ee -- db/migrate db/post_migrate
=> -
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 -
Make sure to announce the deployment on Twitter and GitLab.com - With downtime: 1 hour before
- Without downtime: 15 minutes before
-
In #releases
: I'm going to tag9.5.0-rc1
-
Tag the 9.5.0-rc1
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.5.0-rc1]" ```
-
Check progress of EE packages build and CE packages build -
In#production
: I'm going to deploy9.5.0-rc1
to staging -
Do the deploy of9.5.0-rc1
to staging.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[staging, 9.5.0-rc1.ee.0]"
-
If needed, in#production
: I'm going to deploy9.5.0-rc1
to canary -
If needed, do the deploy of9.5.0-rc1
to canary.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[canary, 9.5.0-rc1.ee.0]"
-
In#production
: I'm going to deploy9.5.0-rc1
to production -
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Do the deploy of9.5.0-rc1
to GitLab.comsh # In the takeoff project: bundle exec rake "deploy[production, 9.5.0-rc1.ee.0]"
-
Verify that packages appear on packages.gitlab.com
: EE & CE -
Post a tweet about the9.5.0-rc1
release:``` GitLab 9.5.0-rc1 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. ```
-
-
Create the regression issue in the CE issue tracker using theregression_issue
task and bookmark it:```sh # In the release-tools project: bundle exec rake "regression_issue[9.5.0]" ```
-
Prepare the blog post using the new_release_post
task, in thewww-gitlab-com
project:```sh # In the www-gitlab-com project: bundle exec rake "new_release_post[9.5]" ```
QA
-
Determine QA person and notify this person: MENTION_THIS_PERSON_HERE -
Do QA and fix anything coming out of it: LINK_TO_QA_ISSUE
A few points to keep track of things that should be tested on staging regarding the new GitLab.com plans and feature checks being enabled on %9.5:
-
Run script to license early_adopter
namespaces https://gitlab.com/gitlab-com/infrastructure/issues/2464 -
Enable 'Check feature availability' on /admin/application_settings
-
Test features checks under namespace license (i.e. https://gitlab.com/gitlab-org/gitlab-ee/issues/2335) -
Billings page being enabled when 'Check feature availability' flag is on.
Anytime after RC1 but before 22nd
-
Check that everyone is mentioned on the blog post using @all
:``` Hello @all, this is the monthly release post that will go out on the 22nd, announcing the new GitLab version. Look through it to see if we can make any changes and feel free to comment with suggestions or questions! ``` or, if the blog post is still very much a work in progress: ``` Hello @all, this is the merge request for the monthly release post that will go out on the 22nd, announcing the new GitLab version. Right now it's all boilerplate, but feel free to remind us about things that shouldn't be left out! ```
-
Create another RC as needed.
Keep in mind that:
- After feature freeze only regression and security fixes can be
cherry-picked into
9-5-stable
. - Last RC should point to the same commit as the final release.
RC2
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.5 merged merge requests page) into the CE9-5-stable
and EE9-5-stable-ee
branches, respectively. -
Follow the Creating subsequent RCs guide for
9.5.0-rc2
:-
Merge CE 9-5-stable
into EE9-5-stable-ee
following the Merging a CE stable branch into its EE counterpart guide -
Sync stable branches: CE, EE, and Omnibus to dev
, CE and Omnibus togithub
-
Sync master branches to dev
andgithub
, 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
andgithub
(when applicable) -
Check for any problematic migrations in EE (EE migrations include CE ones), and paste the diff in a snippet: git diff v9.5.0-rc1-ee..9-5-stable-ee -- db/migrate db/post_migrate
=> -
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 -
Make sure to announce the deployment on Twitter and GitLab.com - With downtime: 1 hour before
- Without downtime: 15 minutes before
-
In #releases
: I'm going to tag9.5.0-rc2
-
Tag the 9.5.0-rc2
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.5.0-rc2]" ```
-
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.5.0-rc2
to staging -
On video call, deploy release 9.5.0-rc2
to staging.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[staging, 9.5.0-rc2.ee.0]"
-
If needed, in #production
: I'm going to deploy9.5.0-rc2
to canary -
If needed, deploy release 9.5.0-rc2
to canary.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[canary, 9.5.0-rc2.ee.0]"
-
In #production
: I'm going to deploy9.5.0-rc2
to production -
On video call, deploy release 9.5.0-rc2
to GitLab.comsh # In the takeoff project: bundle exec rake "deploy[production, 9.5.0-rc2.ee.0]"
-
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Verify that packages appear on packages.gitlab.com
: EE & CE -
Post a tweet about the 9.5.0-rc2
release:``` GitLab 9.5.0-rc2 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. ```
RC3
RC3 tag failed partway through
RC4
CE: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13549
EE: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2680
Omni: https://gitlab.com/gitlab-org/omnibus-gitlab/commits/9-5-stable
Omni EE: https://gitlab.com/gitlab-org/omnibus-gitlab/commits/9-5-stable-ee
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.5 merged merge requests page) into the CE9-5-stable
and EE9-5-stable-ee
branches, respectively. -
Follow the Creating subsequent RCs guide for
9.5.0-rc4
:-
Merge CE 9-5-stable
into EE9-5-stable-ee
following the Merging a CE stable branch into its EE counterpart guide -
Sync stable branches: CE, EE, and Omnibus to dev
, CE and Omnibus togithub
-
Sync master branches to dev
andgithub
, 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
andgithub
(when applicable) -
Check for any problematic migrations in EE (EE migrations include CE ones), and paste the diff in a snippet: git diff v9.5.0-rc2-ee..9-5-stable-ee -- db/migrate db/post_migrate
=> https://gitlab.com/gitlab-org/gitlab-ce/snippets/1671616 -
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 -
Make sure to announce the deployment on Twitter and GitLab.com - With downtime: 1 hour before
- Without downtime: 15 minutes before
-
In #releases
: I'm going to tag9.5.0-rc4
-
Tag the 9.5.0-rc4
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.5.0-rc4]" ```
-
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.5.0-rc4
to staging -
On video call, deploy release 9.5.0-rc4
to staging.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[staging, 9.5.0-rc4.ee.0]"
-
If needed, in #production
: I'm going to deploy9.5.0-rc4
to canary -
If needed, deploy release 9.5.0-rc4
to canary.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[canary, 9.5.0-rc4.ee.0]"
-
In #production
: I'm going to deploy9.5.0-rc4
to production -
On video call, deploy release 9.5.0-rc4
to GitLab.comsh # In the takeoff project: bundle exec rake "deploy[production, 9.5.0-rc4.ee.0]"
-
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Verify that packages appear on packages.gitlab.com
: EE & CE -
Post a tweet about the 9.5.0-rc4
release:``` GitLab 9.5.0-rc4 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. ```
RC5
CE - https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13604
EE - https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2698
Omnibus CE - https://gitlab.com/gitlab-org/omnibus-gitlab/commits/9-5-stable
Omnibus EE - https://gitlab.com/gitlab-org/omnibus-gitlab/commits/9-5-stable-ee
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.5 merged merge requests page) into the CE9-5-stable
and EE9-5-stable-ee
branches, respectively. -
Follow the Creating subsequent RCs guide for
9.5.0-rc5
:-
Merge CE 9-5-stable
into EE9-5-stable-ee
following the Merging a CE stable branch into its EE counterpart guide -
Sync stable branches: CE, EE, and Omnibus to dev
, CE and Omnibus togithub
-
Sync master branches to dev
andgithub
, 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
andgithub
(when applicable) -
Check for any problematic migrations in EE (EE migrations include CE ones), and paste the diff in a snippet: git diff v9.5.0-rc1-ee..9-5-stable-ee -- db/migrate db/post_migrate
=> https://gitlab.com/gitlab-org/gitlab-ce/snippets/1671757 -
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 -
Make sure to announce the deployment on Twitter and GitLab.com - With downtime: 1 hour before
- Without downtime: 15 minutes before
-
In #releases
: I'm going to tag9.5.0-rc5
-
Tag the 9.5.0-rc5
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.5.0-rc5]" ```
-
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.5.0-rc5
to staging -
On video call, deploy release 9.5.0-rc5
to staging.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[staging, 9.5.0-rc5.ee.0]"
-
If needed, in #production
: I'm going to deploy9.5.0-rc5
to canary -
If needed, deploy release 9.5.0-rc5
to canary.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[canary, 9.5.0-rc5.ee.0]"
-
In #production
: I'm going to deploy9.5.0-rc5
to production -
On video call, deploy release 9.5.0-rc5
to GitLab.comsh # In the takeoff project: bundle exec rake "deploy[production, 9.5.0-rc5.ee.0]"
-
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Verify that packages appear on packages.gitlab.com
: EE & CE -
Post a tweet about the 9.5.0-rc5
release:``` GitLab 9.5.0-rc5 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. ```
RC6
CE - https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13672
EE - https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2712
Omnibus CE - https://gitlab.com/gitlab-org/omnibus-gitlab/commits/9-5-stable
Omnibus EE - https://gitlab.com/gitlab-org/omnibus-gitlab/commits/9-5-stable-ee
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.5 merged merge requests page) into the CE9-5-stable
and EE9-5-stable-ee
branches, respectively. -
Follow the Creating subsequent RCs guide for
9.5.0-rc6
:-
Merge CE 9-5-stable
into EE9-5-stable-ee
following the Merging a CE stable branch into its EE counterpart guide -
Sync stable branches: CE, EE, and Omnibus to dev
, CE and Omnibus togithub
-
Sync master branches to dev
andgithub
, 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
andgithub
(when applicable) -
Check for any problematic migrations in EE (EE migrations include CE ones), and paste the diff in a snippet: git diff v9.5.0-rc5-ee..9-5-stable-ee -- db/migrate db/post_migrate
=> -
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 -
Make sure to announce the deployment on Twitter and GitLab.com - With downtime: 1 hour before
- Without downtime: 15 minutes before
-
In #releases
: I'm going to tag9.5.0-rc6
-
Tag the 9.5.0-rc6
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.5.0-rc6]" ```
-
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.5.0-rc6
to staging -
On video call, deploy release 9.5.0-rc6
to staging.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[staging, 9.5.0-rc6.ee.0]"
-
If needed, in #production
: I'm going to deploy9.5.0-rc6
to canary -
If needed, deploy release 9.5.0-rc6
to canary.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[canary, 9.5.0-rc6.ee.0]"
-
In #production
: I'm going to deploy9.5.0-rc6
to production -
On video call, deploy release 9.5.0-rc6
to GitLab.comsh # In the takeoff project: bundle exec rake "deploy[production, 9.5.0-rc6.ee.0]"
-
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Verify that packages appear on packages.gitlab.com
: EE & CE -
Post a tweet about the 9.5.0-rc6
release:``` GitLab 9.5.0-rc6 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. ```
21st final RC
-
Before 13:00 UTC:
- Final RC is ready for tagging. Including changes at this stage requires signoff from VP of Eng.
-
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 -
In #releases
: I'm going to tag final RC release -
Replace XX in the tasks below with the RC version number: -
Tag the final RC version using the release
task,```sh # In the release-tools project: bundle exec rake "release[9.5.0-rc8]" ```
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.5.0-rc8
to staging -
On video call, deploy release 9.5.0-rc21
to staging.gitlab.com# In the takeoff project: bundle exec rake "deploy[staging, 9.5.0-rc21.ee.0]"
-
If needed, in #production
: I'm going to deploy9.5.0-rc21
to canary -
If needed, deploy release 9.5.0-rc21
to canary.gitlab.com# In the takeoff project: bundle exec rake "deploy[canary, 9.5.0-rc21.ee.0]"
-
In #production
: I'm going to deploy9.5.0-rc21
to production -
On video call, deploy release 9.5.0-rc8
to GitLab.com# In the takeoff project: bundle exec rake "deploy[production, 9.5.0-rc8.ee.0]"
-
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Verify that packages appear on packages.gitlab.com
: EE & CE -
Post a tweet about the 9.5.0-rc8
release:GitLab 9.5.0-rc8 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk.
-
- Final RC is ready for tagging. Including changes at this stage requires signoff from VP of Eng.
-
At 15:00 UTC:
-
If the final RC is not tagged and deployed by this time, notify the Build Lead
-
-
At 20:00 UTC:
-
If the final RC is not tagged and deployed by this time, notify the VP of Engineering
-
22nd, the release day:
No new code is added to release that was not included in the last RC. This way we ensure the release does not introduce new regressions.
-
At 8:00 UTC, final release is ready for tagging (Including changes at this stage requires signoff from VP of Eng.):
-
Sync stable branches: CE, EE, and Omnibus to dev
, CE and Omnibus togithub
-
Sync master branches to dev
andgithub
, 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
andgithub
(when applicable) -
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 -
If at this time final release is not ready for tagging, notify the CTO
-
-
Before 10:00 UTC:
-
In #releases
: I'm going to tag9.5.0
-
Tag the 9.5.0
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.5.0]" ```
-
Check progress of EE packages build and CE packages build
-
-
Before 12:00 UTC:
-
In #production
: I'm going to deploy9.5.0
to staging -
Do the deploy of 9.5.0
to staging.gitlab.com -
In #production
: I'm going to deploy9.5.0
to production -
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Create the first patch issue using the patch_issue
task:# In the release-tools project: bundle exec rake "patch_issue[9.5.1]"
-
If at this point final release is not ready for public, notify the CEO
-
-
At 15:00 UTC:
-
From the build pipeline, manually publish public packages -
Verify that packages appear on packages.gitlab.com
: EE / CE -
Verify that Docker images appear on hub.docker.com
: EE / CE -
Create the 9.5.0
version on https://version.gitlab.com -
Publish the release blog post -
Ensure someone tweets about the 9.5.0
release
-
Copy-paste the tasks below for any other RCs (be sure to update the RC number).
#### RC2
- [ ] Cherry-pick merge requests labeled [`Pick into Stable`] for the current
milestone (you can take advantage of the
[`Pick into Stable` 9.5 merged merge requests] page) into
the CE `9-5-stable` and EE `9-5-stable-ee`
branches, respectively.
- Follow the [Creating subsequent RCs] guide for `9.5.0-rc2`:
- [ ] Merge CE `9-5-stable` into EE `9-5-stable-ee` following the [Merging a CE stable branch into its EE counterpart] guide
- [ ] Sync stable branches: CE, EE, and Omnibus to `dev`, CE and Omnibus to `github`
- [ ] Sync master branches to `dev` and `github`, 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` and `github` (when applicable)
- [ ] Check for any problematic migrations in EE (EE migrations include CE ones), and paste the diff in a snippet: `git diff v9.5.0-rc1-ee..9-5-stable-ee -- db/migrate db/post_migrate` =>
- [ ] 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]
- [ ] Make sure to [announce the deployment] on Twitter and GitLab.com
* With downtime: 1 hour before
* Without downtime: 15 minutes before
- [ ] In `#releases`: I'm going to tag `9.5.0-rc2`
- [ ] Tag the `9.5.0-rc2` version using the [`release` task]:
```sh
# In the release-tools project:
bundle exec rake "release[9.5.0-rc2]"
```
- [ ] Check progress of [EE packages build] and [CE packages build]
- [ ] In `#production`: I'm going to deploy `9.5.0-rc2` to staging
- [ ] On video call, [deploy] release [`9.5.0-rc2`](https://packages.gitlab.com/gitlab/unstable/packages/ubuntu/xenial/gitlab-ee_9.5.0-rc2.ee.0_amd64.deb) to [staging.gitlab.com]
```sh
# In the takeoff project:
bundle exec rake "deploy[staging, 9.5.0-rc2.ee.0]"
```
- [ ] If needed, in `#production`: I'm going to deploy `9.5.0-rc2` to canary
- [ ] If needed, [deploy] release [`9.5.0-rc2`](https://packages.gitlab.com/gitlab/unstable/packages/ubuntu/xenial/gitlab-ee_9.5.0-rc2.ee.0_amd64.deb) to [canary.gitlab.com]
```sh
# In the takeoff project:
bundle exec rake "deploy[canary, 9.5.0-rc2.ee.0]"
```
- [ ] In `#production`: I'm going to deploy `9.5.0-rc2` to production
- [ ] On video call, [deploy] release [`9.5.0-rc2`](https://packages.gitlab.com/gitlab/unstable/packages/ubuntu/xenial/gitlab-ee_9.5.0-rc2.ee.0_amd64.deb) to GitLab.com
```sh
# In the takeoff project:
bundle exec rake "deploy[production, 9.5.0-rc2.ee.0]"
```
- [ ] Publicly [announce the deploy on Twitter], at this point the deploy alert banner on GitLab.com should already be up.
- [ ] From the [build pipeline], [manually publish public packages]
- [ ] Verify that packages appear on `packages.gitlab.com`: [EE & CE](https://packages.gitlab.com/app/gitlab/unstable/search?q=9.5.0-rc2)
- [ ] Verify that Docker images appear on `hub.docker.com`: [EE](https://hub.docker.com/r/gitlab/gitlab-ee/tags) / [CE](https://hub.docker.com/r/gitlab/gitlab-ce/tags)
- [ ] Post a [tweet about] the `9.5.0-rc2` release:
```
GitLab 9.5.0-rc2 is available: https://packages.gitlab.com/gitlab/unstable
Use at your own risk.
```