# From 4.0 to 4.1

## Important changes

* Resque replaced with Sidekiq
* New options for configuration file added
* Init.d script should be updated
* __requires ruby1.9.3-p327__

- - -

### 1. Stop GitLab & Resque

    sudo service gitlab stop

### 2. Update GitLab

```bash
# Set the working directory
cd /home/gitlab/gitlab/

# Get latest code
sudo -u gitlab -H git fetch
sudo -u gitlab -H git checkout 4-1-stable

# Install gems for MySQL
sudo -u gitlab -H bundle install --without development test postgres

# Migrate db
sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production

```

### 3. Replace init.d script with a new one

```
# backup old one
sudo mv /etc/init.d/gitlab /etc/init.d/gitlab.old

# get new one usign sidekiq
sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/4-1-stable/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab

```

### 4. Check GitLab's status

    sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production


### 5. Start GitLab & Sidekiq

    sudo service gitlab start

### 6. Remove old init.d script

    sudo rm /etc/init.d/gitlab.old