Токенизатор/ПорядокВыкладыванияВПродакшен

Материал из OpenCorpora
Перейти к навигации Перейти к поиску

ВНИМАНИЕ: прежде чем начинать процедуру выкладывания, убедитесь, что все версии токенизатора синхронизированы и готовы для продакшена!

Perl скрипт (collect_data.pl) и PHP библиотека (lib_tokenizer.php)

Смержить девелоперскую ветку (tonenizer-x.xx) в транк и закоммитить.

$ svn up scripts/
$ scripts/tokenizer/collect_data.pl config.ini
$ svn up lib/

Perl модуль (Lingua::RU::OpenCorpora::Tokenizer)

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

Порядок действий в интерфейсе:

Включить генератор

Нажать кнопку "Переключить статус". Статус должен быть "Включен" на зеленом фоне.

Что делать если в статусе написано "Ошибка"?

Проверить, что пользователь, из–под которого запускается веб–сервер, имеет права на запись во всех директориях и для всех файлов, которые указаны в секции [generator] конфигурационного файла.

Узнать текущую версию данных

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

В графе "Текущий тэг" указана текущия (последняя) версия данных.

Что делать если в графе "Текущий тэг" указано "n/a"?

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

$ perl -MLingua::RU::OpenCorpora::Tokenizer::List -le'print Lingua::RU::OpenCorpora::Tokenizer::List->data_version'
0.03
$ echo -n 0.03 > /tmp/tokenizer.current
$ 

Note: путь до файла с текущим тэгом может быть другим. Сверьтесь с конфигом (секция [generator], пункт current_tag), если не уверены.

Установить новую версию данных

В графе "Следующий тэг" должно числиться "n/a". Это значит, что следующая версия еще неизвестна. Чтобы установить ее:

При условии, что текущая версия — 0.03:

$ echo -n 0.04 > /tmp/generator.next
$

Note: путь до файла со следующим тэгом может быть другим. Сверьтесь с конфигом (секция [generator], пункт next_tag), если не уверены.

Что делать если в графе "Следующий тэг" уже записана какая–то версия?

В начале процедуры в графе "Следующий тэг" должно быть написано "n/a". Если там уже стоит другой тэг, то, возможно, кто–то уже начал процесс выкатки, и вам надо скоординироваться.

Сгенерировать новые файлы

Нажать кнопку "Запустить", дождаться конца. Индикатор слева от кнопки должен быть зеленым.

Протестировать новые файлы

Нажать кнопку "Протестировать", дождаться конца (может занять несколько минут). Индикатор слева от кнопки должен быть зеленым.

Детали тестирования можно посмотреть после его окончания по щелчку на ссылке "Подробности".

Проверьте значения всех метрик. Если метрика F1 имеет низкое значение, то, скорее всего, в модуле имеется баг. В таком случае стоит отложить всю процедуру.

Опубликовать новые файлы

Нажать кнопку "Опубликовать", дождаться конца. Индикатор слева от кнопки должен быть зеленым.

Что делать если на одной из предыдущих стадий индикатор загорелся красным?

Щелкнуть по ссылке "Подробности", прочитать сообщение об ошибке, устранить ошибку.

Загрузить новую версию модуля на CPAN

Обратиться к Алексею Сурикову.


По окончанию процедуры значение из поля "Следующий тэг" должно переместиться в поле "Текущий тэг". Если этого не произошло, то надо сделать это вручную.

Если процедура была завершена успешно, то надо отключить генератор до следующего обновления (кнопка "Переключить статус", статус "Выключен" на сером фоне).