Review Board - специализированная программа, которая помогает производить анализ кода и выявлять ошибки, недочеты в стиле написания кода. Затем происходит рецензирование кода (code review). Когда замечания исправлены, рецензия считается закрытой и код включается в стабильную ветку проекта. Весь процесс рецензирования хорошо структурирован. Рецензия - произвольный набор комментариев к коду, каждый из которых принадлежит к одной или нескольким строкам кода. Уведомлениями о новых запросах и рецензиях возможно управлять, в том числе с помощью почтовых сообщений. Интрефейс программы достаточно удобен и понятен, представляет собой хорошо сделанный инструмент. Рецензентов возможно добавлять и управлять ими.

Просмотр diff-ов читабелен, имеется подсветка синтаксиса и изменений в коде. Реализован подход pre-commit-review (изменения рецензируются до того, как попадают в version control) и подход post-commit-review (изменения сначала попадают в version conrol, а затем рецензируются). Таким образом в Review Board workflow рецензирования построено добротно.

Установка Review Board не занимает много времени. Программа работает с различными системами контроля версий. База данных возможна как postgres, так и mysql. Review Board умеет получать данные из LDAP.

Установка Review Board:

Открываем терминал, команды выполняем под root или с помощью sudo. Обновляем систему:

# apt-get update
# apt-get upgrade

Установим необходимые зависимости, а также пакеты, необходимые для поддержки системы контроля версий:

# apt-get -y install python-setuptools python-dev python-mysqldb memcached patch libjpeg-dev
# easy_install pip
# apt-get -y install cvs git-core subversion python-svn

Установим Review Board:

# pip install ReviewBoard

Далее установим mysql и сконфигурируем базу данных (при установке mysql-server необходимо будет ввести пароль для пользователя root базы данных mysql):

# apt-get -y install mysql-server

Добавляем в конфигурационный файл MySQL настройки utf8:

# nano /etc/mysql/my.cnf

Прописываем:

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8

Стартуем сервис mysql, добавляем mysql для автоматического запуска при старте системы:

# systemctl start mysql.service
# systemctl enable mysql.service

Запустим настройку сервера через mysql_secure_installation:

# mysql_secure_installation

Вводим пароль для MySQL пользователя root, затем на вопрос об изменении пароля отвечаем - n, далее на все вопросы - y.

Затем создаем базу данных и пользователя для Review Board:

# mysql -u root -p

Выполняем следующие команды:

CREATE DATABASE rb;
CREATE USER 'rbu'@'localhost' IDENTIFIED BY 'Password_rb';
GRANT ALL PRIVILEGES ON rb.* TO 'rbu'@'localhost';
FLUSH PRIVILEGES;
exit

Где:

rb - база данных;

rbu - пользователь базы данных;

Password_rb - пароль;

Далее создаем Review Board site:

# apt-get install apache2
# rb-site install /var/www/rb.sigro.ru

 Заполняем:

Domain Name: rb.sigro.ru #Your actual domain
Root Path [/]: #Press enter to use default
Database Type: 1 #Enter 1 for MySQL
Database Name [reviewboard]: rb #Your database name
Database Server [localhost]: #Press enter to use default
Database Username: rbu #Your database username
Database Password: #Your database password
Memcache Server [localhost:11211]: #Press enter to use default
Username [admin]: adminrb #Provide Administrator account username
Password: #Provide Administrator account password
E-Mail Address: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. #Provide Administrator email
Company/Organization Name (optional) : sigro # Company/Organization
Allow us to collect support data? n

 Применяем права и создаем символические ссылки:

# chown -R www-data:www-data /var/www/reviews.example.net
# cp /var/www/rb.sigro.ru/conf/apache-wsgi.conf /etc/apache2/sites-available/rb.sigro.ru.conf
# ln -s /etc/apache2/sites-available/rb.sigro.ru.conf /etc/apache2/sites-enabled/rb.sigro.ru.conf

Запускаем сервисы Memcached и Apache и добавляем их в автозагрузку:

# systemctl start memcached.service
# systemctl enable memcached.service
# systemctl start apache2.service
# systemctl enable apache2.service

Устанавливаем mod-wgsi:

# aptitude install libapache2-mod-wsgi

Прописываем в dns сервере (в данном случае) для прямой зоны:

rb     IN     A     192.168.91.10

и для обратной зоны:

10     PTR     rb.sigro.ru.

Перечитываем файл конфигурации dns сервера:

# /etc/init.d/bind9 reload

Запускаем в браузере Review Board (в данном случае набираем rb.sigro.ru). В результате откроется окно программы Review Board, где вводим логин и пароль администратора.

Посмотреть весь процесс установки можно здесь: