2013-11-14 13:40:05 -05:00
# Things to do when creating new monthly minor or major release
2013-10-15 05:51:56 -04:00
NOTE: This is a guide for GitLab developers. If you are trying to install GitLab see the latest stable [installation guide ](install/installation.md ) and if you are trying to upgrade, see the [upgrade guides ](update ).
2013-05-27 03:21:01 -04:00
## Install guide up to date?
* References correct GitLab branch `x-x-stable` and correct GitLab shell tag?
## Make upgrade guide
### From x.x to x.x
2013-07-29 06:46:00 -04:00
#### 0. Any major changes? Database updates? Web server change? File structure changes?
2013-05-27 03:21:01 -04:00
#### 1. Make backup
#### 2. Stop server
#### 3. Do users need to update dependencies like `git`?
#### 4. Get latest code
#### 5. Does GitLab shell need to be updated?
#### 6. Install libs, migrations, etc.
#### 7. Any config files updated since last release?
Check if any of these changed since last release (~22nd of last month depending on when last release branch was created):
2013-12-30 08:27:18 -05:00
* https://gitlab.com/gitlab-org/gitlab-ce/commits/master/lib/support/nginx/gitlab
* 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
2013-05-27 03:21:01 -04:00
#### 8. Need to update init script?
2013-12-30 08:27:18 -05:00
Check if changed since last release (~22nd of last month depending on when last release branch was created): https://gitlab.com/gitlab-org/gitlab-ce/commits/master/lib/support/init.d/gitlab
2013-05-27 03:21:01 -04:00
#### 9. Start application
#### 10. Check application status
2013-10-15 05:51:56 -04:00
## Make sure the code quality indicatiors are good
2013-05-27 03:21:01 -04:00
* [![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)
* [![Code Climate ](https://codeclimate.com/github/gitlabhq/gitlabhq.png )](https://codeclimate.com/github/gitlabhq/gitlabhq)
* [![Dependency Status ](https://gemnasium.com/gitlabhq/gitlabhq.png )](https://gemnasium.com/gitlabhq/gitlabhq) this button can be yellow (small updates are available) but must not be red (a security fix or an important update is available)
* [![Coverage Status ](https://coveralls.io/repos/gitlabhq/gitlabhq/badge.png?branch=master )](https://coveralls.io/r/gitlabhq/gitlabhq)
2013-10-15 05:51:56 -04:00
## Make a release branch
After making the release branch new commits are cherry-picked from master. When the release gets closer we get more selective what is cherry-picked.
2013-12-27 08:15:07 -05:00
* 5 days before release: feature freeze (stop merging new features)
* 4 days before release: UI freeze (stop merging changes to the user interface)
* 3 days before release: code freeze (stop merging non-essential code improvements)
* 2 days before release: release candidate 1 (tag and tweet about x.x.rc1)
* 1 day before release: release candidate 2 (optional, only if rc1 had problems)
2013-10-29 19:46:42 -04:00
# Write a blog post
* Mention what GitLab is on the second line: GitLab is open source software to collaborate on code.
* Select and thank the the Most Valuable Person (MVP) of this release.
* Note if there are security fixes: This release fixes an important security issue and we advise everyone to upgrade as soon as possible.
2013-10-15 05:51:56 -04:00
## Last actions
1. Update VERSION and CHANGELOG
1. Create a git tag vX.X.X
1. Publish the blog post
2013-12-27 08:15:07 -05:00
1. Tweet about the release