Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSSDEVCONF-2022) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
;{{SpeakerInfo}}: {{Speaker|Дмитрий Маракасов}} <blockquote> В докладе будет освещена история и основные возможности проекта Repology, ведущего мониторинг более 350 пакетных репозиториев с целью обнаружения новых релизов, координации работы мантейнеров пакетов и авторов ПО между собой, выявления уязвимых пакетов и пакетов, требующих обновления. Будут затронуты встретившиеся на пути проекта сложности и их решения, вылившиеся в побочные проекты, как-то универсальная библиотека сравнения версий libversion и агрегатор метаданных о Python модулях PyPICache. </blockquote> {{VideoSection}} {{vimeoembed|989843822|800|450}} {{youtubelink|}} |aSWvR7YEyDA}} {{SlidesSection}} [[File:Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022).pdf|left|page=-|300px]] {{----}} == 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 как источника информации о новых релизах), так и в сторону улучшения удобства сайта. * https://repology.org/ {{----}} [[File:{{#setmainimage:Repology — мониторинг пакетных репозиториев (Дмитрий Маракасов, OSEDUCONF-2022)!.jpg}}|center|640px]] {{LinksSection}} <!-- <blockquote>[©]</blockquote> --> <references/> [[Категория:OSSDEVCONF-2022]] [[Категория:Draft]] |
Текущая версия на 16:15, 2 августа 2024
- Докладчик
- Дмитрий Маракасов
В докладе будет освещена история и основные возможности проекта Repology, ведущего мониторинг более 350 пакетных репозиториев с целью обнаружения новых релизов, координации работы мантейнеров пакетов и авторов ПО между собой, выявления уязвимых пакетов и пакетов, требующих обновления.
Будут затронуты встретившиеся на пути проекта сложности и их решения, вылившиеся в побочные проекты, как-то универсальная библиотека сравнения версий libversion и агрегатор метаданных о Python модулях PyPICache.
Содержание
Видео
Презентация
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 как
источника информации о новых релизах), так и в сторону улучшения удобства сайта.