@@ -10,11 +10,8 @@ NOTE: This is a guide for GitLab developers.
...
@@ -10,11 +10,8 @@ NOTE: This is a guide for GitLab developers.
A release manager is selected that coordinates the entire release of this version. The release manager has to make sure all the steps below are done and delegated where necessary. This person should also make sure this document is kept up to date and issues are created and updated.
A release manager is selected that coordinates the entire release of this version. The release manager has to make sure all the steps below are done and delegated where necessary. This person should also make sure this document is kept up to date and issues are created and updated.
### **3. Update Changelog**
### **3. Create an overall issue**
Name it "Release x.x.x" for easier searching.
Any changes not yet added to the changelog are added by lead developer and in that merge request the complete team is asked if there is anything missing.
### **4. Create an overall issue**
```
```
15th:
15th:
...
@@ -30,10 +27,11 @@ Any changes not yet added to the changelog are added by lead developer and in th
...
@@ -30,10 +27,11 @@ Any changes not yet added to the changelog are added by lead developer and in th
17th:
17th:
* Create x.x.0.rc1 (#LINK)
* Create x.x.0.rc1 (#LINK)
* Build package for GitLab.com (https://dev.gitlab.org/cookbooks/chef-repo/blob/master/doc/administration.md#build-a-package)
18th:
18th:
* Update GitLab.com with rc1 (#LINK)
* Update GitLab.com with rc1 (#LINK) (https://dev.gitlab.org/cookbooks/chef-repo/blob/master/doc/administration.md#deploy-the-package)
* Regression issue and tweet about rc1 (#LINK)
* Regression issue and tweet about rc1 (#LINK)
* Start blog post (#LINK)
* Start blog post (#LINK)
...
@@ -54,6 +52,10 @@ Any changes not yet added to the changelog are added by lead developer and in th
...
@@ -54,6 +52,10 @@ Any changes not yet added to the changelog are added by lead developer and in th
* Deploy to GitLab.com (#LINK)
* Deploy to GitLab.com (#LINK)
```
```
### **4. Update Changelog**
Any changes not yet added to the changelog are added by lead developer and in that merge request the complete team is asked if there is anything missing.
# **16th - Merge the CE into EE**
# **16th - Merge the CE into EE**
Do this via a merge request.
Do this via a merge request.
...
@@ -128,9 +130,9 @@ Check if the `init.d/gitlab` script changed since last release: <https://gitlab.
...
@@ -128,9 +130,9 @@ Check if the `init.d/gitlab` script changed since last release: <https://gitlab.
Make sure the code quality indicators are green / good.
Make sure the code quality indicators are green / good.
-[![build status](http://ci.gitlab.org/projects/1/status.png?ref=master)](http://ci.gitlab.org/projects/1?ref=master) on ci.gitlab.org (master branch)
-[![Build status](http://ci.gitlab.org/projects/1/status.png?ref=master)](http://ci.gitlab.org/projects/1?ref=master) on ci.gitlab.org (master branch)
-[![build status](https://secure.travis-ci.org/gitlabhq/gitlabhq.png)](https://travis-ci.org/gitlabhq/gitlabhq) on travis-ci.org (master branch)
Now developers can use master for merging new features.
Now developers can use master for merging new features.
So you should use stable branch for future code chages related to release.
So you should use stable branch for future code chages related to release.
...
@@ -213,7 +215,7 @@ Merge CE into EE before doing the QA.
...
@@ -213,7 +215,7 @@ Merge CE into EE before doing the QA.
### **2. QA**
### **2. QA**
Create issue on dev.gitlab.org `gitlab` repository, named "GitLab X.X release" in order to keep track of the progress.
Create issue on dev.gitlab.org `gitlab` repository, named "GitLab X.X QA" in order to keep track of the progress.
Use the omnibus packages of Enterprise Edition using [this guide](https://dev.gitlab.org/gitlab/gitlab-ee/blob/master/doc/release/manual_testing.md).
Use the omnibus packages of Enterprise Edition using [this guide](https://dev.gitlab.org/gitlab/gitlab-ee/blob/master/doc/release/manual_testing.md).
...
@@ -237,17 +239,26 @@ Note: Merge CE into EE if needed.
...
@@ -237,17 +239,26 @@ Note: Merge CE into EE if needed.
- Change the GITLAB_SHELL_VERSION file in `master` of the CE repository if the version changed.
- Change the GITLAB_SHELL_VERSION file in `master` of the CE repository if the version changed.
- Change the GITLAB_SHELL_VERSION file in `master` of the EE repository if the version changed.
- Change the GITLAB_SHELL_VERSION file in `master` of the EE repository if the version changed.
- Change the VERSION file in `master` branch of the CE repository and commit and push.
- Change the VERSION file in `master` branch of the CE repository and commit and push to origin.
- Change the VERSION file in `master` branch of the EE repository and commit and push.
- Change the VERSION file in `master` branch of the EE repository and commit and push to origin.
### **2. Update installation.md**
### **2. Push latest changes from x-x-stable branch to the repositories**
Update [installation.md](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md) to the newest version in master.
### **3. Push latest changes from x-x-stable branch to dev.gitlab.org**
```
```
git checkout -b x-x-stable
git checkout -b x-x-stable
git push <remote> x-x-stable
git push origin x-x-stable
```
```
### **3. Create annotated tag vx.x.x**
### **4. Build the Omnibus packages**
Follow the [release doc in the Omnibus repository](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/release.md).
This can happen before tagging because Omnibus uses tags in its own repo and SHA1's to refer to the GitLab codebase.
### **5. Create annotated tag vx.x.x**
In `x-x-stable` branch check for the SHA-1 of the commit with VERSION file changed. Tag that commit,
In `x-x-stable` branch check for the SHA-1 of the commit with VERSION file changed. Tag that commit,
...
@@ -257,18 +268,7 @@ git tag -a vx.x.0 -m 'Version x.x.0' xxxxx
...
@@ -257,18 +268,7 @@ git tag -a vx.x.0 -m 'Version x.x.0' xxxxx
where `xxxxx` is SHA-1.
where `xxxxx` is SHA-1.
### **4. Push the tag**
### **6. Push the tag and x-x-stable branch to the remotes**
```
git push origin vx.x.0
```
### **5. Build the Omnibus packages**
Follow the [release doc in the Omnibus repository](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/release.md).
This can happen before tagging because Omnibus uses tags in its own repo and SHA1's to refer to the GitLab codebase.
### **6. Push to remotes**
For GitLab CE, push to dev, GitLab.com and GitHub.
For GitLab CE, push to dev, GitLab.com and GitHub.
...
@@ -276,29 +276,37 @@ For GitLab EE, push to the subscribers repo.
...
@@ -276,29 +276,37 @@ For GitLab EE, push to the subscribers repo.
Make sure the branch is marked 'protected' on each of the remotes you pushed to.
Make sure the branch is marked 'protected' on each of the remotes you pushed to.
### **7. Publish blog for new release**
```
git push <remote> x-x-stable(-ee)
git push <remote> vx.x.0
```
### **7. Publish packages for new release**
Update `downloads/index.html` and `downloads/archive/index.html` in `www-gitlab-com` repository.
### **8. Publish blog for new release**
Merge the [blog merge request](#1-prepare-the-blog-post) in `www-gitlab-com` repository.
Merge the [blog merge request](#1-prepare-the-blog-post) in `www-gitlab-com` repository.
### **8. Tweet to blog**
### **9. Tweet to blog**
Send out a tweet to share the good news with the world.
Send out a tweet to share the good news with the world.
List the most important features and link to the blog post.
List the most important features and link to the blog post.
Proposed tweet for CE "GitLab X.X is released! It brings ***<link-to-blogpost>"
Proposed tweet for CE "GitLab X.X is released! It brings ***<link-to-blogpost>"
### **9. Send out the newsletter**
### **10. Send out the newsletter**
Send out an email to the 'GitLab Newsletter' mailing list on MailChimp.
Send out an email to the 'GitLab Newsletter' mailing list on MailChimp.
Replicate the former release newsletter and modify it accordingly.
Replicate the former release newsletter and modify it accordingly.
**Do not forget to edit `Subject line` and regenerate `Plain-Text Email` from HTML source**
Include a link to the blog post and keep it short.
Include a link to the blog post and keep it short.
Proposed email text:
Proposed email text:
"We have released a new version of GitLab. See our blog post(<link>) for more information."
"We have released a new version of GitLab. See our blog post(<link>) for more information."
### **10. Update installation.md**
Update [installation.md](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md) to the newest version in master and cherry-pick that commit into the stable branch.