ABF - кэшированный chroot и улучшенные тесты
С момента выпуска последней русскоязычной заметки про новости ABF в «Точке РОСЫ» прошло уже три месяца. Эти три месяца разработка ABF шла полным ходом (а заодно мы показали ABF на LinuxTag), и пришла пора подитожить достижения за квартал.
Начнем с самой последней новости — недавно мы реализовали в ABF возможность перезапуска тестов в ситуации, когда пакеты успешно собрались, но тесты продемонстрировали невозможность их установки в целевую систему. Нередко такая ситуация возникает по вине других пакетов, и после исправления проблем мэйнтейнерам хочется просто перезапустить тест, а не всю сборку целиком. Теперь такая возможность есть — ищите соответствующую кнопку на странице с результатами сборки.
Непосредственно перед реализацией перезапуска тестов, мы поработали над улучшением этих самых тестов. Теперь помимо проверки возможности установки собранных пакетов в целевую систему, ABF проверяет — нет ли в репозиториях системы пакетов с таким же именем, версией и релизом. Такая проверка позволяет отловить ситуации, когда вы пересобрали пакет, но забыли поднять релиз. Иногда такие проверки неактуальны — что ж, вы всегда можете их отключить, сняв галочку «Использовать дополнительные тесты» при создании сборки.
Помимо тестов, мы поработали и над упрощением процесса сборки, реализовав давно обсуждавшиеся кэшированные chroot-окружения. Теперь при создании сборки вы можете выбрать — создавать ли chroot с нуля или использовать кэш. Кэш немного быстрее, однако есть шанс, что он уже разошелся с базовым репозиторием, и ваша сборка будет невоспроизводимой. Хотя кэш и обновляется ежедневно, такие ситуации все-таки возможно, и мы настоятельно рекомендуем не использовать кэш при сборке пакета, который будет опубликован в официальные репозитории. Более актуальное применение кэшированного chroot-окружения — это ситуация, когда необходимо обновить ключевые пакеты системы (которые, собственно, и входят в кэшированный chroot), сломав при этом на время их зависимости. С помощью кэшированного chroot и контейнеров эта задача решается достаточно легко и быстро, как показало недавнее обновление Perl и всех зависящих от него компонентов (включая urpmi и perl-URPM) в разрабатываемой ветке РОСЫ.
Наконец, мы позаботились об администраторах платформ, которые отвечают за наполнение и целостность дистрибутивов. Маленькое улучшение для них — теперь есть возможность фильтровать пакеты по группе при их добавлении в репозиторий, так что можно не путаться среди кучи проектов с одинаковым названием. Улучшение посерьезнее — возможность ограничить публикацию в репозиторий пакетов и разрешить публиковать только те пакеты, которые собраны из определенных веток Git-репозитория. Например, пакеты для ROSA Desktop Fresh у нас традиционно собирались из ветки rosa2012.1 (а для новой версии Desktop Fresh — из rosa2014.1). Теперь эта традиция зафиксирована на уровне ABF, и собрав пакет из другой ветки, вы обнаружите, что опубликовать его не можете. Такое вот небольшое ужесточение дисциплины, которое на самом деле очень сильно облегчает поддержку дистрибутива.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.