summaryrefslogtreecommitdiff
path: root/doc/release
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-10-28 16:15:31 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-10-28 16:15:31 +0200
commitc71792d98c3bcf6b15f28f27b89359b0be081914 (patch)
tree19f817c1c5c6d311731574cab45188418d641759 /doc/release
parentd0ebdedf985be25f81230283daeb54c2ee586327 (diff)
parent9306d8fca2290ea6011d62f0eb62d2ac7fde9eb9 (diff)
downloadgitlab-ce-c71792d98c3bcf6b15f28f27b89359b0be081914.tar.gz
Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq
Diffstat (limited to 'doc/release')
-rw-r--r--doc/release/monthly.md113
-rw-r--r--doc/release/patch.md2
2 files changed, 61 insertions, 54 deletions
diff --git a/doc/release/monthly.md b/doc/release/monthly.md
index a9253339e5a..386c19c0fe0 100644
--- a/doc/release/monthly.md
+++ b/doc/release/monthly.md
@@ -2,40 +2,42 @@
NOTE: This is a guide for GitLab developers.
-# **15th - Code Freeze & Release Manager**
+# **7 workdays before release - Code Freeze & Release Manager**
-### **1. Stop merging in code, except for important bugfixes**
+### **1. Stop merging in code, except for important bug fixes**
### **2. Release Manager**
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. Create an overall issue**
-Name it "Release x.x.x" for easier searching.
+
+Create issue for GitLab CE project(internal). Name it "Release x.x.x" for easier searching.
+Replace the dates with actual dates based on the number of workdays before the release.
```
-15th:
+Xth:
* Update the changelog (#LINK)
* Triage the omnibus-gitlab milestone
-16th:
+Xth:
* Merge CE in to EE (#LINK)
* Close the omnibus-gitlab milestone
-17th:
+Xth:
* 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:
+Xth:
* 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)
* Start blog post (#LINK)
-21th:
+Xth:
* Do QA and fix anything coming out of it (#LINK)
@@ -43,16 +45,13 @@ Name it "Release x.x.x" for easier searching.
* Release CE and EE (#LINK)
-23rd:
-
-* Prepare package for GitLab.com release (#LINK)
+Xth:
-24th:
+* * Deploy to GitLab.com (#LINK)
-* Deploy to GitLab.com (#LINK)
```
-### **4. Update Changelog**
+### **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.
@@ -60,26 +59,26 @@ Any changes not yet added to the changelog are added by lead developer and in th
Ensure that there is enough time to incorporate the findings of the release candidate, etc.
-# **16th - Merge the CE into EE**
+# **6 workdays before release- Merge the CE into EE**
Do this via a merge request.
-# **17th - Create RC1**
+# **5 workdays before release - Create RC1**
The RC1 release comes with the task to update the installation and upgrade docs. Be mindful that there might already be merge requests for this on GitLab or GitHub.
### **1. Update the installation guide**
1. Check if it references the correct branch `x-x-stable` (doesn't exist yet, but that is okay)
-1. Check the [GitLab Shell version](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/tasks/gitlab/check.rake#L782)
-1. Check the [Git version](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/tasks/gitlab/check.rake#L794)
+1. Check the [GitLab Shell version](/lib/tasks/gitlab/check.rake#L782)
+1. Check the [Git version](/lib/tasks/gitlab/check.rake#L794)
1. There might be other changes. Ask around.
-### **2. Create an update guides**
+### **2. Create update guides**
-1. Create: CE update guide from previous version. Like `from-6-8-to-6.9`
+1. Create: CE update guide from previous version. Like `7.3-to-7.4.md`
1. Create: CE to EE update guide in EE repository for latest version.
-1. Update: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/6.0-to-6.x.md to latest version.
+1. Update: `6.x-or-7.x-to-7.x.md` to latest version.
It's best to copy paste the previous guide and make changes where necessary.
The typical steps are listed below with any points you should specifically look at.
@@ -98,9 +97,9 @@ List any major changes here, so the user is aware of them before starting to upg
#### 3. Do users need to update dependencies like `git`?
-- Check if the [GitLab Shell version](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/tasks/gitlab/check.rake#L782) changed since the last release.
+- Check if the [GitLab Shell version](/lib/tasks/gitlab/check.rake#L782) changed since the last release.
-- Check if the [Git version](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/tasks/gitlab/check.rake#L794) changed since the last release.
+- Check if the [Git version](/lib/tasks/gitlab/check.rake#L794) changed since the last release.
#### 4. Get latest code
@@ -112,19 +111,19 @@ List any major changes here, so the user is aware of them before starting to upg
Check if any of these changed since last release:
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/lib/support/nginx/gitlab>
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/lib/support/nginx/gitlab-ssl>
+- [lib/support/nginx/gitlab](/lib/support/nginx/gitlab)
+- [lib/support/nginx/gitlab-ssl](/lib/support/nginx/gitlab-ssl)
- <https://gitlab.com/gitlab-org/gitlab-shell/commits/master/config.yml.example>
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/config/gitlab.yml.example>
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/config/unicorn.rb.example>
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/config/database.yml.mysql>
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/config/database.yml.postgresql>
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/config/initializers/rack_attack.rb.example>
-- <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/config/resque.yml.example>
+- [config/gitlab.yml.example](/config/gitlab.yml.example)
+- [config/unicorn.rb.example](/config/unicorn.rb.example)
+- [config/database.yml.mysql](/config/database.yml.mysql)
+- [config/database.yml.postgresql](/config/database.yml.postgresql)
+- [config/initializers/rack_attack.rb.example](/config/initializers/rack_attack.rb.example)
+- [config/resque.yml.example](/config/resque.yml.example)
#### 8. Need to update init script?
-Check if the `init.d/gitlab` script changed since last release: <https://gitlab.com/gitlab-org/gitlab-ce/commits/master/lib/support/init.d/gitlab>
+Check if the `init.d/gitlab` script changed since last release: [lib/support/init.d/gitlab](/lib/support/init.d/gitlab)
#### 9. Start application
@@ -156,6 +155,12 @@ Create an annotated tag that points to the version change commit:
git tag -a vx.x.0.rc1 -m 'Version x.x.0.rc1'
```
+Tags should be created for both GitLab CE and GitLab EE. Don't forget to push tags to all remotes.
+
+```
+git push remote_name vx.x.0.rc1
+```
+
### **6. Create stable branches**
For GitLab EE, append `-ee` to the branch.
@@ -173,9 +178,13 @@ Now developers can use master for merging new features.
So you should use stable branch for future code chages related to release.
-# **18th - Release RC1**
+# **4 workdays before release - Release RC1**
+
+### **1. Determine QA person
-### **1. Update GitLab.com**
+Notify person of QA day.
+
+### **2. Update GitLab.com**
Merge the RC1 EE code into GitLab.com.
Once the build is green, create a package.
@@ -183,19 +192,20 @@ If there are big database migrations consider testing them with the production d
Try to deploy in the morning.
It is important to do this as soon as possible, so we can catch any errors before we release the full version.
-### **2. Prepare the blog post**
+### **3. Prepare the blog post**
- Start with a complete copy of the [release blog template](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/release_blog_template.md) and fill it out.
- Check the changelog of CE and EE for important changes.
- Create a WIP MR for the blog post
- Ask Dmitriy to add screenshots to the WIP MR.
-- Decide with team who will be the MVP user.
+- Decide with team who will be the MVP user.
+- Create WIP MR for adding MVP to MVP page on website
- Add a note if there are security fixes: This release fixes an important security issue and we advise everyone to upgrade as soon as possible.
- Create a merge request on [GitLab.com](https://gitlab.com/gitlab-com/www-gitlab-com/tree/master)
- Assign to one reviewer who will fix spelling issues by editing the branch (can use the online editor)
- After the reviewer is finished the whole team will be mentioned to give their suggestions via line comments
-### **3. Create a regressions issue**
+### **4. Create a regressions issue**
On [the GitLab CE issue tracker on GitLab.com](https://gitlab.com/gitlab-org/gitlab-ce/issues/) create an issue titled "GitLab X.X regressions" add the following text:
@@ -212,7 +222,7 @@ Tweet about the RC release:
> GitLab x.x.0.rc1 is out. This release candidate is only suitable for testing. Please link regressions issues from LINK_TO_REGRESSION_ISSUE
-# **21st - Preparation**
+# **1 workdays before release - Preparation**
### **1. Pre QA merge**
@@ -252,7 +262,7 @@ Note: Merge CE into EE if needed.
### **2. 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.
+Update [installation.md](/doc/install/installation.md) to the newest version in master.
### **3. Push latest changes from x-x-stable branch to dev.gitlab.org**
@@ -304,22 +314,19 @@ 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>"
-### **10. Send out the newsletter**
-
-Send out an email to the 'GitLab Newsletter' mailing list on MailChimp.
-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.
+# **1 workday after release - Update GitLab.com**
-Proposed email text:
-"We have released a new version of GitLab. See our blog post(<link>) for more information."
+Update GitLab.com from RC1 to the released package.
+# **25th - Release GitLab CI**
-# **23rd - Optional Patch Release**
-
-# **24th - Update GitLab.com**
+- Create the update guid `doc/x.x-to-x.x.md`.
+- Update CHANGELOG
+- Bump version
+- Create annotated tags `git tag -a vx.x.0 -m 'Version x.x.0' xxxxx`
+- Create stable branch `x-x-stable`
+- Create GitHub release post
+- Post to blog about release
+- Post to twitter
-Merge the stable release into GitLab.com. Once the build is green deploy the next morning.
-# **25th - Release GitLab CI**
diff --git a/doc/release/patch.md b/doc/release/patch.md
index bcc14568fc8..3ee55028b1f 100644
--- a/doc/release/patch.md
+++ b/doc/release/patch.md
@@ -26,6 +26,6 @@ Otherwise include it in the monthly release and note there was a regression fix
1. Apply the patch to GitLab Cloud and the private GitLab development server
1. [Build new packages with the latest version](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/release.md)
1. Cherry-pick the changelog update back into master
+1. Create blog post
1. Send tweets about the release from `@gitlabhq`, tweet should include the most important feature that the release is addressing as well as the link to the changelog
1. Note in the 'GitLab X.X regressions' issue that the patch was published (CE only)
-1. Send out an email to the 'GitLab Newsletter' mailing list on MailChimp (or the 'Subscribers' list if the patch is EE only)