From 9c5d8079a367ac24d04466f03f6b9abf5c333f59 Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Tue, 24 Nov 2015 08:28:18 -0800
Subject: [PATCH] Bump Redis requirement to 2.8 for Sidekiq 4 requirements

Closes #3649

[ci skip]
---
 CHANGELOG                   |  1 +
 README.md                   |  2 +-
 doc/install/installation.md | 22 +++++++++++++++++++---
 lib/tasks/gitlab/check.rake |  2 +-
 4 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 09e3382becc50..7359bda421bb4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -11,6 +11,7 @@ v 8.3.0 (unreleased)
   - Update project repositorize size and commit count during import:repos task (Stan Hu)
   - Fix API setting of 'public' attribute to false will make a project private (Stan Hu)
   - Handle and report SSL errors in Web hook test (Stan Hu)
+  - Bump Redis requirement to 2.8 for Sidekiq 4 (Stan Hu)
   - Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)
   - Add rake tasks for git repository maintainance (Zeger-Jan van de Weg)
   - Fix 500 error when update group member permission
diff --git a/README.md b/README.md
index c459e67baa198..3ec1d4a776cb6 100644
--- a/README.md
+++ b/README.md
@@ -69,7 +69,7 @@ GitLab is a Ruby on Rails application that runs on the following software:
 - Ubuntu/Debian/CentOS/RHEL
 - Ruby (MRI) 2.1
 - Git 1.7.10+
-- Redis 2.4+
+- Redis 2.8+
 - MySQL or PostgreSQL
 
 For more information please see the [architecture documentation](http://doc.gitlab.com/ce/development/architecture.html).
diff --git a/doc/install/installation.md b/doc/install/installation.md
index 618391e16d224..0a19a060a9a1d 100644
--- a/doc/install/installation.md
+++ b/doc/install/installation.md
@@ -62,7 +62,7 @@ up-to-date and install it.
 
 Install the required packages (needed to compile Ruby and native extensions to Ruby gems):
 
-    sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs
+    sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs
 
 If you want to use Kerberos for user authentication, then install libkrb5-dev:
 
@@ -174,7 +174,23 @@ We recommend using a PostgreSQL database. For MySQL check [MySQL setup guide](da
 
 ## 6. Redis
 
-    sudo apt-get install redis-server
+As of this writing, most Debian/Ubuntu distributions ship with Redis 2.2 or
+2.4. GitLab requires at least Redis 2.8. If your platform doesn't provide
+this, the following instructions cover building and installing Redis from
+scratch.
+
+Ubuntu users [can also use a PPA](https://launchpad.net/~chris-lea/+archive/ubuntu/redis-server)
+to install a recent version of Redis.
+
+    # Build Redis
+    wget http://download.redis.io/releases/redis-2.8.23.tar.gz
+    tar xzf redis-2.8.23.tar.gz
+    cd redis-2.8.23
+    make
+
+    # Install Redis
+    cd utils
+    sudo ./install_server.sh
 
     # Configure redis to use sockets
     sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.orig
@@ -197,7 +213,7 @@ We recommend using a PostgreSQL database. For MySQL check [MySQL setup guide](da
     fi
 
     # Activate the changes to redis.conf
-    sudo service redis-server restart
+    sudo service redis_6379 start
 
     # Add git to the redis group
     sudo usermod -aG redis git
diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake
index a25fac62cfc1a..b5af3d88b4cff 100644
--- a/lib/tasks/gitlab/check.rake
+++ b/lib/tasks/gitlab/check.rake
@@ -331,7 +331,7 @@ namespace :gitlab do
     end
 
     def check_redis_version
-      min_redis_version = "2.4.0"
+      min_redis_version = "2.8.0"
       print "Redis version >= #{min_redis_version}? ... "
 
       redis_version = run(%W(redis-cli --version))
-- 
GitLab