Итоги полугода работы проекта Repology, анализирующем информацию о версиях пакетов
Полгода назад была опубликована новость о проекте repology, собирающем и сравнивающем информацию о версиях пакетов во множестве репозиториев. Целью проекта является улучшение взаимодействия мантейнеров пакетов из различных дистрибутивов как между собой, так и с авторами ПО — в частности, проект помогает быстрее обнаруживать выпуски новых версий ПО, следить за актуальностью пакетов, унифицировать схемы именования и версионирования, поддерживать метаинформацию в актуальном состоянии, делиться патчами и решениями проблем и улучшать переносимость ПО.
Проект продолжает работу, наращивая возможности и аудиторию. Основные изменения за прошедшие полгода:
- Число поддерживаемых репозиториев превысило 80 и включает Linux (Alpine, ALT, Antergos, Arch, Astra, AUR, Calculate, CentOS, CRUX, Debian, EPEL, Fedora, Gentoo, Guix, GoboLinux, Mint, Mageia, Manjaro, nix, OpenSUSE, OpenWrt, Parabola, PCLinuxOS, Rosa, RPM Fusion, Sabayon, SlackBuilds, Ubuntu), *BSD (FreeBSD, DragonFly, OpenBSD, pkgsrc), дополнительные репозитории (GetDeb/PlayDeb, KDE Neon, некоторые оверлеи Gentoo), официальные коллекции модулей ЯП (CPAN, Hackage, PyPi, RubyGems), репозитории других систем (Chocolatey, F-Droid, MacPorts, Yet Another Cygwin Ports) и новостные/информационные сайты (LibreGameWiki и freshcode.club).
- Полностью переработан сайт, прототип на статически сгенерированных страницах заменён полноценным динамическим сайтом на Bootstrap/Flask/PostgreSQL. Улучшена навигация, добавлен поиск по пакетам и мантейнерам, статистика, графики, JSON API, SVG значки с информацией о версиях пакетов для встраивания на сайты проектов и в README.
- Настроено ежечасное обновление информации из репозиториев
- Добавлен просмотр информации о пакетах в нескольких срезах (список версий по репозиториям, список всех пакетов со всех известной информацией, агрегированный срез по типам метаданных)
- Алгоритм сравнения версий значительно улучшен, оптимизирован и вынесен в отдельную C-библиотеку (никакая из опробованных автором существующих реализаций сравнения версий не показала достаточного уровня безошибочных сравнений на объёме и вариативности данных, обрабатываемых проектом)
- Добавлено средство проверки доступности ссылок — все известные ссылки (на домашние страницы проектов и файлы с исходниками) проверяются на предмет доступности и редиректов, информация отображается рядом с ссылкой.
- Реализован поиск мантейнеров с похожими наборами поддерживаемых пакетов (т.е. и областью интересов)
- Добавлено отображение на сайте списка обнаруженных проблем с пакетам (на данный момент в основном битые ссылки), который можно просматривать в привязке к отдельным репозиториям и мантейнерам
- Продолжается пополнение набора правил, с помощью которого разрешаются различия именования пакетов в различных репозиториях, добавлена возможность отправлять заявку на добавления правил прямо с сайта, не прибегая к созданию Issue на GitHub.
Статистика на текущий момент:
- 81 репозиторий
- 120022 пакета
- 21088 мантейнеров
Топ репозиториев по общему количеству пакетов:
- AUR (30938)
- Debian/Ubuntu (26516/27677)
- FreeBSD (25706)
- Gentoo (19162)
- Fedora (19135)
Топ репозиториев по количеству свежих пакетов:
- FreeBSD (14365)
- Debian/Ubuntu (12077/12525)
- Fedora (11941)
- Gentoo (9271)
- AUR (9090)
Полный текст статьи читайте на OpenNet