Updates builder — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Технические подробности)
м (дополнение)
 
(не показаны 4 промежуточные версии 2 участников)
Строка 19: Строка 19:
 
Ага, есть более новая версия! {{Программа|updates_builder}} ее скачал и поместил тарболл с исходниками в файловое хранилище ABF, обновил .abf.yml и spec-файл и запустил новую сборку.
 
Ага, есть более новая версия! {{Программа|updates_builder}} ее скачал и поместил тарболл с исходниками в файловое хранилище ABF, обновил .abf.yml и spec-файл и запустил новую сборку.
  
Все эти изменения происходят в отдельной ветке Git-репозитория - '''auto_update'''. Сборка запускается для платформы '''rosa2012.1''', но результаты будут публиковаться в репозиторий '''import_personal'''. Более того, автоматическая публикация для этих сборок отключена - поэтому пакеты необходимо скачивать из соответствующих контейнеров (либо явно запускать публикацию).
+
Все эти изменения происходят в отдельной ветке Git-репозитория - '''auto_update'''. Сборка запускается для актуальной платформы ROSA Desktop Fresh, но результаты будут публиковаться в репозиторий '''import_personal'''. Более того, автоматическая публикация для этих сборок отключена - поэтому пакеты необходимо скачивать из соответствующих контейнеров (либо явно запускать публикацию).
  
 
Теперь надо убедиться, что новый пакет успешно собрался (если вы подписаны на оповещения по e-mail от ABF, то вам должно придти письмо с результатами сборки). Если сборка завершилась успешно, то вы можете скачать пакет и проверить, что он устанавливается и работает. Если все в порядке, то можно перенести изменения в основную ветку и собрать пакет в нормальный репозиторий.
 
Теперь надо убедиться, что новый пакет успешно собрался (если вы подписаны на оповещения по e-mail от ABF, то вам должно придти письмо с результатами сборки). Если сборка завершилась успешно, то вы можете скачать пакет и проверить, что он устанавливается и работает. Если все в порядке, то можно перенести изменения в основную ветку и собрать пакет в нормальный репозиторий.
Строка 38: Строка 38:
  
 
== Технические подробности ==
 
== Технические подробности ==
Для получения информации о новых релизах, {{Программа|updates_builder}} использует сервис http://upstream-tracker.org. Если вы хотите, чтобы {{Программа|updates_builder}} отслеживал некоторый пакет, для которого нет ссылки на апстрим - сообщите об этом мэйнтейнеру сервиса upstream-tracker.org.
+
Для получения информации о новых релизах, {{Программа|updates_builder}} использует сервис [http://upstream-tracker.org/updates/rosa/2012/ upstream-tracker.org]. Если вы хотите, чтобы {{Программа|updates_builder}} отслеживал некоторый пакет, для которого нет ссылки на апстрим - сообщите об этом мэйнтейнеру сервиса upstream-tracker.org.
  
 
Обратите внимание, что для работы с ABF {{Программа|updates_builder}} использует консольный клиент из пакета {{Pkg|abf-console-client}}.
 
Обратите внимание, что для работы с ABF {{Программа|updates_builder}} использует консольный клиент из пакета {{Pkg|abf-console-client}}.
 +
 +
== Запуск в РОСЕ ==
 +
Updates Builder запускается в РОСЕ на постоянной основе для пакетов, перечисленных на этой страничке:
 +
 +
http://wiki.rosalab.ru/en/index.php/Updates_builder_checklist
 +
 +
В случае успешной сборки, скрипты запуска автоматически формируют Pull Request на внесение изменений в основные репозитории.
 +
 +
В случае неудачи, скрипты анализируют журнал сборки и пытаются устранить некоторые виды тривиальных ошибок - такие, как изменение состава файлов, отсутствие сборочных зависимостей и так далее. После внесения изменений, сборка запускается повторно.
 +
 +
Исходный код скриптов, используемых для запуска Updates Builder, анализа его логов и исправления некоторых типов ошибок, можно найти здесь:
 +
 +
https://abf.rosalinux.ru/dsilakov/updates_builder_launcher
 +
 +
=== Статистика обновления пакетов в РОСЕ ===
 +
На сайте [http://upstream.rosalinux.ru/updates_builder_reports/rosa_results.html Upstream Tracker] можно найти сводную информацию по пакетам ROSA Desktop Fresh, для которых Updaets Builder попробовал собрать обновления.
  
 
[[Категория:Управление_пакетами]]
 
[[Категория:Управление_пакетами]]

Текущая версия на 12:31, 25 августа 2015

Updates-builder - это утилита для автоматического отслеживания обновлений ПО для пакетов и сборки новых версий в ABF.

Исходный код

Исходный код можно посмотреть здесь: https://abf.rosalinux.ru/dsilakov/updates_builder/tree/master?

Пример

Возьмем в качестве примера пакет alleyoop. У нас в репозиториях лежит версия 0.9.7 и мы хотим посмотреть, есть ли обновления в апстриме:

$ updates_builder.py --run-one alleyoop
<...>
alleyoop-0.9.8 https://sourceforge.net/projects/alleyoop/files/alleyoop/alleyoop-0.9.8/alleyoop-0.9.8.tar.gz
<...>
Creating a new spec file
Downloading file https://sourceforge.net/projects/alleyoop/files/alleyoop/alleyoop-0.9.8/alleyoop-0.9.8.tar.gz
done

Ага, есть более новая версия! updates_builder ее скачал и поместил тарболл с исходниками в файловое хранилище ABF, обновил .abf.yml и spec-файл и запустил новую сборку.

Все эти изменения происходят в отдельной ветке Git-репозитория - auto_update. Сборка запускается для актуальной платформы ROSA Desktop Fresh, но результаты будут публиковаться в репозиторий import_personal. Более того, автоматическая публикация для этих сборок отключена - поэтому пакеты необходимо скачивать из соответствующих контейнеров (либо явно запускать публикацию).

Теперь надо убедиться, что новый пакет успешно собрался (если вы подписаны на оповещения по e-mail от ABF, то вам должно придти письмо с результатами сборки). Если сборка завершилась успешно, то вы можете скачать пакет и проверить, что он устанавливается и работает. Если все в порядке, то можно перенести изменения в основную ветку и собрать пакет в нормальный репозиторий.

Для начала, клонируем проект alleyoop с помощью консольного клиента ABF:

$ abf get alleyoop; cd alleyoop
$ git checkout auto_update

Посмотрите обновленный файл .abf.yml, а также spec-файл; при необходимости, подправьте их.

После этого, переключитесь на ветку rosa2012.1 и перенесите изменения туда:

$ git checkout rosa2012.1
$ git merge auto_update
$ abf put -m "LOG Updated to 0.9.8"

Вот и все! Теперь можно запустить сборку обновленного пакета для платформы rosa2012.1 из ветки rosa2012.1.

Технические подробности

Для получения информации о новых релизах, updates_builder использует сервис upstream-tracker.org. Если вы хотите, чтобы updates_builder отслеживал некоторый пакет, для которого нет ссылки на апстрим - сообщите об этом мэйнтейнеру сервиса upstream-tracker.org.

Обратите внимание, что для работы с ABF updates_builder использует консольный клиент из пакета abf-console-client.

Запуск в РОСЕ

Updates Builder запускается в РОСЕ на постоянной основе для пакетов, перечисленных на этой страничке:

http://wiki.rosalab.ru/en/index.php/Updates_builder_checklist

В случае успешной сборки, скрипты запуска автоматически формируют Pull Request на внесение изменений в основные репозитории.

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

Исходный код скриптов, используемых для запуска Updates Builder, анализа его логов и исправления некоторых типов ошибок, можно найти здесь:

https://abf.rosalinux.ru/dsilakov/updates_builder_launcher

Статистика обновления пакетов в РОСЕ

На сайте Upstream Tracker можно найти сводную информацию по пакетам ROSA Desktop Fresh, для которых Updaets Builder попробовал собрать обновления.