Собирается ли свободное сообщество использовать для обновления своих пакетов огромных управляемых человекоподобных роботов?

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

Крибле! Крабле! Бумс…

Человек не должен работать!

Пакетов много, сопровождающий один. Как укоротить путь от Upstream до пакета?

{*} — что можно доверить роботам?

В результате время сопровождающего тратится только на содержательную правки и тестирование

Двигатели прогресса

Пакетов ещё больше, сопровождающий ещё более один:

Пролегомены к идеальному сообществу роботов

Диаграмма состояний пакета:

PackageWorkflow.png

Ещё одно изолированное состояние: вечно свежий.

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

Сравнить версии

Не меняет дерево исходников; возможно, и не требует его.

  1. Получить версию в целевом репозитории Vt

  2. Получить версии в development-репозиториях Vd1 … VdN

  3. Получить версию в upstream Vu

    • /!\ Upstream исчез, сменил формат хранения и т. п.

Версия Vdi в development-репозитории может быть выше актуальной Vt, это признак ручной сборки

Допуск к обновлению при условии Vu > max(Vt, Vd1, … , VdN)

Обновить

  1. Получение актуальных исходников:
    1. Pull из целевого репозитория
    2. Pull из development-репозиториев
  2. Получение Upsream-исходников
    • /!\ Upstream исходники не отдал, ошибка скачивания и т. п.

  3. Формирование сборочной ветки
    1. Обновление старых исходников новыми
      • /!\ Скрипты обновления не справились с задачей, вместо upstream скачался мусор и т. п.

    2. Модификация служебных файлов (*.spec, .gear/* …)
      • /!\ Скрипты обновления не справились с задачей, информация о новом пакете неверна и т. п.

    3. Оформление коммита

Допуск к сборке

Собрать

Не меняет дерево исходников.

  1. Тестовая сборка сборочной ветки в целевое хранилище
  2. Получение журнала сборки
    • /!\ Старым способом не собирается, плохо обновился spec и т. п.

    • /!\ Пострадало качество сборки: unpackaged files, предупреждения и т. п.

  3. Формирование бинарного хранилища для тестирования
  4. Формальное тестирование
    • /!\ Пакет на устанавливается, не прошли дополнительные тесты

Допуск к проверке

Проверить

Проверяет человек (тестер), достаточно доступа к тестовому хранилищу

  1. Подключение тестового хранилища
  2. Установка и тестирование пакетов
    • /!\ Тест не прошёл

Допуск к публикации

Критика идеального сообщества роботов

Дешёвая пластиковая имитация

Сборка происходит локально, соответствующее хранилище добавлено в системный sources.list, поэтому достаточно между 20-build и 30-push сделать dist-upgrade, чтобы начать тестировать собранные пакеты.

Accidental features

FrBrGeorge/HumanlikeRobots/Paper (last edited 2011-07-24 19:04:07 by FrBrGeorge)