пятница, 10 декабря 2010 г.

Миграция с Mantis на YouTRACK

YouTRACK установился без каких-либо проблем, что порадовало. А вот миграция проектов из Mantis с самого начала проходить не захотела, — пришлось дополнительно подготовить к этому как Mantis, так и YouTrack. Ну и несколько багов-ишью обнаружено в процессе миграции, о которых ниже.

Процесс миграции на YouTrack с Mantis описан на сайте Jetbrains.
Добавлю к нему свои комментарии:
1. Перед выполнением описанных шагов, необходимо в настройках YouTrack включить REST API: Administration -> Setup -> Enable REST API.
2. По инструкции миграции необходимо поставить последние версии Python'a и библиотеки mySQLdb к нему. Я не стал скачивать последнюю доступную версию (2.7.1), а взял версию 2.5.4. Поскольку библиотеку для MySQL под Win (версии 1.2.2) нашёл только для этой версии питона.
3. После установки питона и библиотеки можно запускать скрипт миграции, который скачивается тут. Запускается следующей командой:
python mantis2youtrack.py target_url target_login target_pass mantis_db_name mantis_db_host mantis_db_port mantis_db_login mantis_db_pass mantis_project mantis_project mantis_project

target_url - URL к вашему YouTrack.
target_login, target_pass - логин и пароль к учётной записи в YouTrack с правами администратора.
mantis_db_* - параметры доступа к бд мантисса, которые можно взять из его конфигурационного файла config_inc.php, разве что указывается стандартный порт для MySQL — 3306.
В конце указывается список проектов, которые должны быть перенесены, через пробел.

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

Обнаруженные баги:
1. Не происходит миграция аттачей.
2. Если в мантиссе было разрешено не указывать категорию у ишью (делается это с помощью указания в конфиге параметра $g_allow_no_category = ON; у таких репортов в поле категория стоит значение (No Category)), то все ишью проекта, на котором есть хотя бы одно без категории, перенесены не будут.
3. Если у проекта есть список версий, то в качестве даты выпуска каждой версии устанавливается сегодняшняя дата.

Особенности:
1. Т.к. в YT поля Description и Steps to reproduce объединены в одно, то и при миграции значения этих полей будут находится в одном поле Description (при желании думаю можно смапить поля так, чтобы шаги писались в дополнительное кастомное поле).
2. Проекты и подпроекты. Пока не понял, как можно создать под-проект. Либо связать два уже созданных проекта таким образом.
3. Пользователи Mantis мигрируют в YouTrack, но без паролей. Для задания пароля на форме аутентификации необходимо ввести логин и нажать ссылку восстановления пароля - придёт письмо на почту.
4. Конвертируемый проект должен называться на английском и не содержать пробелов в имени.

В ролях:
Mantis v1.2.3.
YouTrack v2.1.3 build #793.
YouTrack rest api python v2.1.4.

Полезные ссылки:
Инструкция по миграции с Mantis на YouTRACK на сайте JetBrains
http://tv.jetbrains.net/ - раздел с видео по продуктам JetBrains. Есть интересные записи.
Import from Mantis to YouTRACK tool (на данный момент доступна версия 2.1.4, миграция проводилась версией 2.1.1 и 2.1.4).

5 комментариев:

  1. Где можно посмотреть сравнение YouTrack с другими багтрекерами?

    ОтветитьУдалить
  2. http://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems

    ОтветитьУдалить
  3. Благодарю за ссылку на сравнение, Максим!
    Но таблицы таблицами, а чтобы оценить всю прелесть "keyboard-centric", нужно это пощупать самому :)

    ОтветитьУдалить
  4. Добрый день, Вадим! Спасибо Вам за детальное описание процесса миграции. Мы обязательно учтем все Ваши комментарии.
    Подробнее:
    1. Миграция аттачей должна происходить, видимо это действительно баг. Скажите, пожалуйста, были ли какие-то ошибки в процессе миграции?
    2. Обязательно учтем такую особенность.
    3. А были ли у Вас указаны конкретные даты выпуска каждой версии? Если нет, то, видимо, по умолчанию при миграции была добавлена текущая дата.

    ОтветитьУдалить
  5. Валерия, написал подробнее в багтрекере ютрека.

    ОтветитьУдалить