Release 9.4
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-4-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-4-stable`. Please ensure that merge requests have the correct milestone (`9.4` 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-4-stable
from CEmaster
manually -
Create branch 9-4-stable-ee
from EEmaster
manually -
In Omnibus create both 9-4-stable
and9-4-stable-ee
frommaster
manually -
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 - 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/12779 & https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12781 -
Create MR on EE master creating the "CE to EE" guides https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2407 -
Create MR on CE master updating the gitignore and license templates https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12784 -
Create MR on CE master updating the dependencies license list -
Ensure above MRs are merged and marked Pick into Stable
for milestone9.4
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.4 merged merge requests page) into the CE9-4-stable
and EE9-4-stable-ee
branches, respectively. -
Merge CE 9-4-stable
into EE9-4-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.4.0-rc1-ee..9-4-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.4.0-rc1
-
Tag the 9.4.0-rc1
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.4.0-rc1]" ```
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.4.0-rc1
to staging -
Do the deploy of 9.4.0-rc1
to staging.gitlab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[staging, 9.4.0-rc1.ee.0, gitlab/pre-release]"
-
If needed, in#production
: I'm going to deploy9.4.0-rc1
to canary -
If needed, do the deploy of9.4.0-rc1
to canary.gitlab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[canary, 9.4.0-rc1.ee.0, gitlab/pre-release]"
-
In#production
: I'm going to deploy9.4.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.4.0-rc1
to GitLab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[production, 9.4.0-rc1.ee.0, gitlab/pre-release]"
-
Verify that packages appear onpackages.gitlab.com
: EE & CE -
Post a tweet about the9.4.0-rc1
release:``` GitLab 9.4.0-rc1 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. Please link regressions issues from LINK_TO_REGRESSION_ISSUE ```
-
RC2
-
Cherry-pick merge requests labeledPick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.4 merged merge requests page) into the CE9-4-stable
and EE9-4-stable-ee
branches, respectively. - Follow the Creating subsequent RCs guide for
9.4.0-rc2
:-
Merge CE9-4-stable
into EE9-4-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.4.0-rc1-ee..9-4-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 -
In #releases
: I'm going to tag9.4.0-rc2
-
Tag the 9.4.0-rc2
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.4.0-rc2]" ```
-
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.4.0-rc2
to staging -
On video call, deploy release 9.4.0-rc2
to staging.gitlab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[staging, 9.4.0-rc2.ee.0, gitlab/pre-release]"
[ ] If needed, in#production
: I'm going to deploy9.4.0-rc2
to canary-
[ ] If needed, deploy release9.4.0-rc2
to canary.gitlab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[canary, 9.4.0-rc2.ee.0, gitlab/pre-release]"
-
Make sure to announce the deployment on Twitter and GitLab.com - With downtime: 1 hour before
- Without downtime: 15 minutes before
-
-
In #production
: I'm going to deploy9.4.0-rc2
to production -
On video call, deploy release 9.4.0-rc2
to GitLab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[production, 9.4.0-rc2.ee.0, gitlab/pre-release]"
-
From the build pipeline, manually publish public packages -
Verify that packages appear on packages.gitlab.com
: EE & CE -
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Post a tweet about the 9.4.0-rc2
release:
After first RC in production
-
Create the regression issue in the CE issue tracker using the regression_issue
task and bookmark it:```sh # In the release-tools project: bundle exec rake "regression_issue[9.4.0]" ```
-
Prepare the blog post using thenew_release_post
task, in thewww-gitlab-com
project:
RC3
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.4 merged merge requests page) into the CE9-4-stable
and EE9-4-stable-ee
branches, respectively.-
Check this list of critical issues to make sure they are included: https://gitlab.com/gitlab-org/gitlab-ce/issues/35111
-
-
Follow the Creating subsequent RCs guide for
9.4.0-rc3
:-
Merge CE 9-4-stable
into EE9-4-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.4.0-rc2-ee..9-4-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.4.0-rc3
-
Tag the 9.4.0-rc3
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.4.0-rc3]" ```
-
-
Check progress of EE packages build and CE packages build -
Check with build team that we're ready to start using pre-release packages by default (https://dev.gitlab.org/cookbooks/chef-repo/merge_requests/905), and that *-omnibus-version.json
has the right key -
In #production
: I'm going to deploy9.4.0-rc3
to staging -
On video call, deploy release 9.4.0-rc3
to staging.gitlab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[staging, 9.4.0-rc3.ee.0, gitlab/pre-release]"
-
If needed, in #production
: I'm going to deploy9.4.0-rc3
to canary -
If needed, deploy release 9.4.0-rc3
to canary.gitlab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[canary, 9.4.0-rc3.ee.0, gitlab/pre-release]"
-
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
In #production
: I'm going to deploy9.4.0-rc3
to production -
On video call, deploy release 9.4.0-rc3
to GitLab.comsh # In the chef-repo project: USE_PACKAGE_SERVER_KEY=true bundle exec rake "deploy[production, 9.4.0-rc3.ee.0, gitlab/pre-release]"
-
Verify that packages appear on packages.gitlab.com
: EE & CE -
Post a tweet about the 9.4.0-rc3
release:``` GitLab 9.4.0-rc3 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. Please link regressions issues from LINK_TO_REGRESSION_ISSUE ```
RC4
Done in gitlab-org/gitlab-ce#35254.
RC5
Done in gitlab-org/gitlab-ce#35361.
RC6
-
Cherry-pick merge requests labeled Pick into Stable
for the current milestone (you can take advantage of thePick into Stable
9.4 merged merge requests page) into the CE9-4-stable
and EE9-4-stable-ee
branches, respectively. -
Follow the Creating subsequent RCs guide for
9.4.0-rc6
:-
Merge CE 9-4-stable
into EE9-4-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.4.0-rc5-ee..9-4-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.4.0-rc6
-
Tag the 9.4.0-rc6
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.4.0-rc6]" ```
-
-
Check progress of EE packages build and CE packages build -
In #production
: I'm going to deploy9.4.0-rc6
to staging -
On video call, deploy release 9.4.0-rc6
to staging.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[staging, 9.4.0-rc6.ee.0]"
-
If needed, in #production
: I'm going to deploy9.4.0-rc6
to canary -
If needed, deploy release 9.4.0-rc6
to canary.gitlab.comsh # In the takeoff project: bundle exec rake "deploy[canary, 9.4.0-rc6.ee.0]"
-
In #production
: I'm going to deploy9.4.0-rc6
to production -
On video call, deploy release 9.4.0-rc6
to GitLab.comsh # In the takeoff project: bundle exec rake "deploy[production, 9.4.0-rc6.ee.0]"
-
Verify that packages appear on packages.gitlab.com
: EE & CE -
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
Post a tweet about the 9.4.0-rc6
release:``` GitLab 9.4.0-rc6 is available: https://packages.gitlab.com/gitlab/unstable Use at your own risk. Please link regressions issues from LINK_TO_REGRESSION_ISSUE ```
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-4-stable
. - Last RC should point to the same commit as the final 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.4 merged merge requests] page) into
the CE `9-4-stable` and EE `9-4-stable-ee`
branches, respectively.
- Follow the [Creating subsequent RCs] guide for `9.4.0-rc2`:
- [ ] Merge CE `9-4-stable` into EE `9-4-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.4.0-rc1-ee..9-4-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.4.0-rc2`
- [ ] Tag the `9.4.0-rc2` version using the [`release` task]:
```sh
# In the release-tools project:
bundle exec rake "release[9.4.0-rc2]"
```
- [ ] Check progress of [EE packages build] and [CE packages build]
- [ ] In `#production`: I'm going to deploy `9.4.0-rc2` to staging
- [ ] On video call, [deploy] release [`9.4.0-rc2`](https://packages.gitlab.com/gitlab/unstable/packages/ubuntu/xenial/gitlab-ee_9.4.0-rc2.ee.0_amd64.deb) to [staging.gitlab.com]
```sh
# In the takeoff project:
bundle exec rake "deploy[staging, 9.4.0-rc2.ee.0]"
```
- [ ] If needed, in `#production`: I'm going to deploy `9.4.0-rc2` to canary
- [ ] If needed, [deploy] release [`9.4.0-rc2`](https://packages.gitlab.com/gitlab/unstable/packages/ubuntu/xenial/gitlab-ee_9.4.0-rc2.ee.0_amd64.deb) to [canary.gitlab.com]
```sh
# In the takeoff project:
bundle exec rake "deploy[canary, 9.4.0-rc2.ee.0]"
```
- [ ] In `#production`: I'm going to deploy `9.4.0-rc2` to production
- [ ] On video call, [deploy] release [`9.4.0-rc2`](https://packages.gitlab.com/gitlab/unstable/packages/ubuntu/xenial/gitlab-ee_9.4.0-rc2.ee.0_amd64.deb) to GitLab.com
```sh
# In the chef-repo project:
bundle exec rake "deploy[production, 9.4.0-rc2.ee.0]"
```
- [ ] 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.4.0-rc2)
- [ ] Publicly [announce the deploy on Twitter], at this point the deploy alert banner on GitLab.com should already be up.
- [ ] Post a [tweet about] the `9.4.0-rc2` release:
```
GitLab 9.4.0-rc2 is available: https://packages.gitlab.com/gitlab/unstable
Use at your own risk. Please link regressions issues from
LINK_TO_REGRESSION_ISSUE
```
22nd before 15:00 UTC:
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.
-
Before 13:00 UTC:
-
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 -
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.4.0
-
Tag the 9.4.0
version using therelease
task:```sh # In the release-tools project: bundle exec rake "release[9.4.0]" ```
-
-
Check progress of EE packages build and CE packages build -
Before 14:00 UTC:
-
In #production
: I'm going to deploy9.4.0
to staging -
Do the deploy of 9.4.0
to staging.gitlab.com -
In #production
: I'm going to deploy9.4.0
to production -
Publicly announce the deploy on Twitter, at this point the deploy alert banner on GitLab.com should already be up. -
In #production
: I'm going to deploy9.4.0
to canary -
Create the 9.4.0
version on https://version.gitlab.com -
Create the first patch issue using the patch_issue
task:# In the release-tools project: bundle exec rake "patch_issue[9.4.1]"
-
-
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 -
Publish the release blog post -
Ensure someone tweets about the 9.4.0
release
-