Redmine

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:08, 1 мая 2017.
Redmine
Redmine logo.png
Создатели: Jean-Philippe Lang
Постоянный выпуск: 3.3.2
Написана на: Ruby
Операционная система: Кросс-платформенное веб-приложение
Лицензия: GNU GPL
Веб-сайт redmine.org

Redmine - бесплатное и имеющее открытый исходный код веб-приложение, которое используется для управления версиями и поиска ошибок. Оно позволяет пользователям управлять множеством проектов и подпроектов. Для каждого проекта приложение позволяет создать свое описание, форум, контроль времени и несколько уровней доступа. Redmine также включает в себя календарь и диаграмму Гантта, позволяющие визуализировать процесс разработки проектов и их дедлайны. Также приложение включает в себя системы контроля версий и diff viewer (утилита, показывающая разницу между несколькими версиями одного и того же проекта).

Внешний вид Redmine похож на Trac, приложение, обладающее похожими функциями.

Redmine написан на Ruby on Rails. Приложение является кросс-платформенным и поддерживает 34 языка.

Возможности

Redmine предоставляет следующие возможности:

  • ведение нескольких проектов;
  • гибкая система доступа, основанная на ролях;
  • система отслеживания ошибок;
  • диаграммы Ганта и календарь;
  • ведение новостей проекта, документов и управление файлами;
  • оповещение об изменениях с помощью RSS-потоков и электронной почты;
  • вики для каждого проекта;
  • форумы для каждого проекта;
  • учёт временных затрат;
  • настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей;
  • лёгкая интеграция с системами управления версиями (SVN, CVS, Git, Mercurial, Bazaar и Darcs);
  • создание записей об ошибках на основе полученных писем;
  • поддержка множественной аутентификации LDAP;
  • возможность самостоятельной регистрации новых пользователей;
  • многоязычный интерфейс (в том числе русский);
  • поддержка СУБД MySQL, Microsoft SQL Server, PostgreSQL, SQLite, Oracle.

Распространение

По данным разработчика Redmine, веб-приложение используют более 80 известных компаний. Среди пользователей Redmine есть и Ruby. Redmine является самым популярным планировщиком с открытым кодом.

Структура

Пользователи системы

Пользователи являются одним из центральных понятий предметной области. Модель пользователя является основой для идентификации и аутентификации работающего с системой персонала и клиентов, а также для авторизации их в разных ролях, проектах и т. п.

Роли

Роли пользователей определяются гибкой моделью определения прав доступа пользователей. Роли включают в себя набор привилегий, позволяющих разграничивать доступ к различным функциям системы.

Пользователям назначается роль в каждом проекте, в котором он участвует, например, «менеджер в проекте по разработке сайта А», «разработчик в проекте по поддержанию интранета компании» или «клиент в проекте по рефакторингу информационной системы компании Б». Пользователь может иметь несколько ролей. Назначение роли для отдельной задачи (issue) в данный момент невозможно.

Проекты

Проект является одним из основных понятий в предметной области систем управления проектами. Благодаря этой сущности возможно организовать совместную работу и планирование нескольких проектов одновременно с разграничением доступа различным пользователям (см. выше). Проекты допускают иерархическую вложенность.

Трекеры

Трекеры являются основной классификацией, по которой сортируются задачи в проекте. Само по себе понятие «трекер» восходит к системам учёта ошибок (англ. Bug tracking tool), представлявшим каждая в отдельности один проект.

По сути, в «Redmine» трекеры представляют собой аналог подклассов класса «Задача» и являются основой для полиморфизма разного рода задач, позволяя определять для каждого их типа различные поля. Примерами трекеров являются «Улучшение», «Ошибка», «Документирование», «Поддержка»,

Задачи

Задачи являются центральным понятием всей системы, описывающим некую задачу, которую необходимо выполнить. У каждой задачи в обязательном порядке есть описание и автор, в обязательном порядке задача привязана к трекеру.

Каждая задача имеет статус. Статусы представляют собой отдельную сущность с возможностью определения прав на назначение статуса для различных ролей (например, статус «отклонен» может присвоить только менеджер) или определение актуальности задачи (например, «открыт», «назначен» — актуальные, а «закрыт», «отклонен» — нет).

Для каждого проекта отдельно определяются набор этапов разработки и набор категорий задач. Среди других полей интересны также «оцененное время», служащее основой для построения управленческих диаграмм, а также поле выбора наблюдателей за задачей (см. «Получение уведомлений»). К задачам имеется возможность прикреплять файлы (имеется отдельная сущность «Приложение»).

Значения других перечислимых свойств (например, приоритетность) хранятся в отдельной общей таблице.

Отслеживание изменения параметров задач

За отслеживание изменений параметров задач пользователями в системе отвечают две сущности: «Запись журнала изменений» и «Измененный параметр». Запись журнала отображает одно действие пользователя по редактированию параметров задачи и/или добавление комментария к ней. То есть служит одновременно инструментом ведения истории задачи и инструментом ведения диалога.

Сущность «Измененный параметр» привязана к отдельной записи журнала и предназначена для хранения старого и нового значения измененного пользователем параметра.

Связи между задачами

Задачи могут быть взаимосвязаны: например, одна задача является подзадачей для другой или предшествовать ей. Эта информация может быть полезна в ходе планирования разработки программы, за её хранение в Redmine отвечает отдельная сущность.

Учёт затраченного на проект времени

Система поддерживает учёт затраченного времени благодаря сущности «Затраченное время», связанной с пользователями и задачей. Сущность позволяет хранить затраченное время, вид деятельности пользователя (разработка, проектирование, поддержка) и краткий комментарий к работе. Эти данные могут быть использованы, например, для анализа вклада каждого участника в проект или для оценки фактической трудоемкости и стоимости разработки.

Привязка репозиториев

Redmine предоставляет возможность интеграции с различными системами управления версиями (репозиториями). Интеграция заключается в отслеживании изменений во внешнем репозитории, их фиксации в базе данных, анализе изменений с целью их привязки к определенным задачам.

В инфологической структуре системы за интеграцию с внешними репозиториями отвечают три сущности: Репозиторий, Редакция и Изменение.

  • Репозиторий — связанная с проектом сущность, хранящая тип подключенного репозитория, его местонахождение и идентификационные данные его пользователя.
  • Редакция — отображение редакции репозитория, и, кроме информационных полей, может быть привязана к конкретной задаче: для этого требуется указать в описании изменений «refs #NUM», где NUM — номер задачи), и к пользователю-автору редакции.
  • Изменение — хранит список измененных (добавленных, удаленных, перемещенных, модифицированных) файлов в каждой редакции.

Получение уведомлений

Уведомления пользователей об изменениях, происходящих на сайте, осуществляется с помощью сущности «Наблюдатели», связывающей пользователей с объектами различных классов (проекты, задачи, форумы и др.). В базе данных хранятся также ключи доступа к подписке RSS, позволяющие получать уведомления посредством этой технологии, также уведомления рассылаются с помощью электронной почты.

Некоторые недостатки Redmine

  • Управление файлами и документами в Redmine сводится к их добавлению, удалению и редактированию. Правами доступа ни к файлам, ни к отдельным документам управлять нельзя.
  • В Redmine нельзя управлять правами доступа на уровне отдельных полей задачи. Например, на данный момент от клиентов нельзя скрыть оценки времени работы над задачей. Но можно сделать дополнительные поля видимыми только пользователям с определёнными ролями.
  • Нельзя скрыть внутреннюю переписку между программистами от клиента.
  • В Redmine в список задач не выводится общая трудоёмкость задач.
  • Нет возможности дать пользователю роль во всей системе; например, «Руководитель проектного офиса» должен иметь доступ ко всем проектам в системе: для этого нужно добавить пользователя с этой ролью во все проекты.
  • Подключить Git репозиторий возможно только в случае, если и Redmine, и репозиторий находятся на одном сервере.

Установка

Необходимые компоненты для установки Redmine

  • Ruby — среда разработки Ruby.
  • DevKit для Ruby — компонент разработчика для Ruby.
  • AddTrustExternalCARoot-2048.pem — сертификат безопасности для Ruby.
  • Redmine — последняя версия Redmine.
  • NSSM — сервис менеджер.

Шаг 1: Распаковка

  • Устанавливаем RubyInstaller в нужный нам каталог (например C:\Ruby) и при установке ставим галочки:

«Add Ruby executables to your PATH» и «Associate .rb and .rbw files with this Ruby installation»

  • Распаковываем DevKit в C:\Ruby\Devkit
  • Копируем сертификат в C:\Ruby\lib\ruby\2.1.0\rubygems\ssl_certs
  • Распаковываем Redmine в C:\Ruby\Redmine
  • Распаковываем NSSM в папку Redmine C:\Ruby\Redmine\NSSM

Шаг 2: Установка devkit

  • Открываем консоль cmd от имени администратора.
  • Переходим в каталог Devkit:
    cd C:\Ruby\Devkit
  • Выполняем команду инициализации Devkit:
    ruby dk.rb init
  • Выполняем команду установки Devkit:
    ruby dk.rb install

Шаг 3:Установка необходимых gem'ов

  • Устанавливаем менеджер для управления gem`ами:
gem install bundler
  • Устанавливаем sqlite3 для Ruby
gem install sqlite3-ruby
  • Обновляем все gem`ы и подтверждаем обновления:
gem update
  • Сворачиваем консоль.

Шаг 4: Настройка Redmine

  • В папке config (C:\Ruby\redmine\config) открываем файл “database.yml.example”.
  • Удаляем все записи, кроме текста после SQLite3 configuration example. Удостоверьтесь, что символ решетки присутствует только в ПЕРВОЙ (SQLite3 configuration example) строке.
  • Сохраняем его уже в формате yml. (C:\Ruby\redmine\config\database.yml)
  • В папке Redmine (C:\Ruby\redmine) открываем файл “Gemfile”.
  • Дописываем туда в начало: gem "sqlite3-ruby"

Шаг 5: Создание БД и первый запуск Redmine

  • Возвращаемся в консоль и переходим в папку с redmine:
cd C:\Ruby\redmine
  • Выполняем команду (установка зависимостей для Redmine):
bundle install --without development test rmagick
  • Выполняем команду (генерируем ключ для Rails):
rake generate_secret_token
  • Выполняем команду (создаем базу данных):
rake db:migrate RAILS_ENV="production"
  • Выполняем команду (устанавливаем конфигурацию по умолчанию):
rake redmine:load_default_data RAILS_ENV="production"
  • Запускаем сервер:
ruby bin/rails s -e "production"
  • Проверяем запуск сервера по адресу:

/localhost:3000/

Шаг 6: Создание сервиса для Redmine:

  • Создаем cmd файл:

del C:\Ruby\Redmine\service.log

del C:\Ruby\Redmine\service-err.log

set RAILS_ENV=production

cd C:\Ruby\Redmine

C:\Ruby\bin\ruby.exe -CC:\Ruby\Redmine bin/rails server webrick -e production 1>> C:\Ruby\Redmine\service.log 2>> C:\Ruby\Redmine\service-err.log

  • Помещаем его в C:\Ruby\Redmine\
  • Переходим в консоль и переходим в папку NSSM:
cd C:\Ruby\Redmine\NSSM
  • Заходим в папку с разрядностью вашей системой, например:
cd win64
  • Создаем сервис:
nssm install Redmine
  • В открытом окне создания сервиса, в Path устанавливаем:
c:\windows\system32\cmd.exe
  • В Arguments устанавливаем:
/c C:\Ruby\Redmine\start.cmd
  • Во вкладке «Details» устанавливаем Startup type: Automatic
  • Перезагружаем ПК (или просто включаем сервис руками) и пользуемся.

Ответвления

В результате разногласий в процессе разработки проекта, несколько разработчиков Redmine создали форк, названный Bluemine (вскоре название сменилось на ChiliProject). Его работа продолжалась до февраля 2015 года. В свою очередь, форк самого ChiliProject - OpenProject функционирует до сих пор.

См.также

Ссылки