Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSSDEVCONF-2022)

Материал из 0x1.tv

Докладчик
Дмитрий Маракасов

В докладе будет освещена история и основные возможности проекта Repology, ведущего мониторинг более 350 пакетных репозиториев с целью обнаружения новых релизов, координации работы мантейнеров пакетов и авторов ПО между собой, выявления уязвимых пакетов и пакетов, требующих обновления.

Будут затронуты встретившиеся на пути проекта сложности и их решения, вылившиеся в побочные проекты, как-то универсальная библиотека сравнения версий libversion и агрегатор метаданных о Python модулях PyPICache.

Видео

Презентация

Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf

Thesis

В мире насчитывается несколько сотен независимых открытых пакетных систем, но исторически разработка большинства из них происходит в своеобразной изоляции, поскольку разница в форматах пакетов и рецептов сборки, организационных и идеологических решениях не способствует не только прямому обмену кодом, но даже сравнительному анализу пакетных баз. Тем не менее, значительная часть работы (к примеру, подготовка патчей и банальный мониторинг новых релизов и уязвимостей) многократно дублируется и кажется, что вся экосистема значительно выиграла бы, будь у мантейнеров быстрый доступ к конфигурациям аналогичных пакетов в других системах и возможность сравнения с ними, равно как и «online» информация по полноте и актуальности собственной пакетной базы.

В попытке проверить эту гипотезу появился проект Repology. Сервис работает уже более 5 лет и на данный момент собирает информацию из более чем 350 источников, включающих основные и дополнительные пакетные репозитории большинства Linux и

  • BSD дистрибутивов, сторонние пакетные менеджеры других систем (MacOSX, Windows, Android, AIX, Solaris), коллекции

модулей языков программирования (PyPI, RubyGems, crates.io, CPAN и др.), а также новостные сайты и каталоги СПО.

Собранная информация приводится к единому формату, нормализуется и агрегируется до уровня upstream проектов, нивелируя разницу в том, как именно они опакечены в отдельных репозиториях. На уровне проекта становится возможным сравнение номеров версий с определением актуальных и, соответственно, версий, требующих обновления, а из этой информации — составление широкого набора выборок, отчётов, atom лент и графических информеров в срезах по отдельным проектам, мантейнерам и репозиториям. Собирается и другая информация, например, описания и ссылки на upstream, рецепты пакетов, логи сборки и патчи.

Проект решает задачи сразу нескольких заинтересованных сторон. Для мантейнеров пакетов Repology позволяет:

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


Для дистрибутивов/репозиториев в целом:

  • Иметь статистику по полноте и актуальности пакетной базы.
  • Своевременно получать информацию об обновлениях и уязвимостях по всем пакетам, возможно, экономя собственные ресурсы на создании локальных инструментов для этой цели.
  • Использовать предоставляемые Repology API готовые графические информеры в собственной инфраструктуре.


Для авторов ПО:

  • Иметь возможно полное представление обо всей downstream инфраструктуре: в каких дистрибутивах и системах опакечен

проект, под какие архитектуры собирается, с какими настройками и патчами, с какими версиями зависимостей и т. д.

  • Поддерживать двустороннюю связь с мантейнерами пакетов, как помогая исправлять недочёты в пакетах, так и улучшая собственную систему сборки и документацию для упрощения развёртывания и эксплуатации.
  • Использовать готовые графические информеры на страницах проекта, информируя пользователей о доступности и актуальности готовых пакетов.


На текущий момент поток обратной связи и статистика использования позволяют делать выводы о популярности и востребованности сервиса, а для кого-то он даже стал незаменимым инструментом. Развитие проекта продолжается как в сторону добавления новых возможностей (например, в планах добавить прямую поддержку VCS хостингов типа GitHub как источника информации о новых релизах), так и в сторону улучшения удобства сайта.

Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022)!.jpg

Примечания и ссылки