ProHoster > Блог > Новини інтернету > Підсумки півроку роботи проекту Repology, що аналізує інформацію про версії пакетів
Підсумки півроку роботи проекту Repology, що аналізує інформацію про версії пакетів
Пройшли чергові півроку та проект Репологія, в рамках якого збирається та порівнюється інформація про версії пакетів з безлічі репозиторіїв, публікує черговий звіт. Метою проекту є покращення взаємодії мантейнерів пакетів із різних дистрибутивів як між собою, так і з авторами ПЗ — зокрема, проект допомагає швидше виявляти випуски нових версій ПЗ, стежити за актуальністю пакетів, уніфікувати схеми іменування та версіонування, підтримувати метаінформацію в актуальному стані, ділитися патчами та рішеннями проблем та покращувати переносимість ПЗ.
Кількість підтримуваних репозиторіїв перевищила 250. Додано підтримку Cygwin, distri, Homebrew Casks, just-install, KISS Linux, Kwort, LuaRocks, Npackd, OS4Depot, RPM Sphere. Видалено репозиторій Antergos, що припинив розвиток. Підтримка GNU Guix видалена (через зміни на сайті Guix, які унеможливили парсинг) і пізніше повернута (завдяки реалізації з боку Guix регулярного дампа метаданих в JSON форматі), а заодно покращена.
Введено вимогу для репозиторіїв крім імені пакета та версії надавати URL (домашні сторінки або посилання на дистрибутив) – ця інформація дозволяє надійно вирішувати численні конфлікти імен, з якими стикається проект. Репозиторії, на даний момент не надають такої інформації заплановано до видалення.
Основний репозиторій вихідного коду проекту розбитий на два (демон для оновлення даних репозиторіїв і web-додаток, що забезпечує роботу сайту), в коді завершено впровадження анотацій типів (весь код проекту тепер проходить mypy-strict) і приведення у відповідність PEP8.
Додано підтримку legacy гілок версій. Наприклад, тепер Repology може повідомити про застарілу PostgreSQL 11.2 (оскільки остання версія в 11-й гілці — 11.5) навіть за наявності в репозиторії новішої версії 12.0 (раніше всі версії нижче останньої в репозиторії позначалися як legacy і не могли мати статусу ). У зв'язку з цим більшість проектів раніше розбитих за мажорними версіями (наприклад, wxwidgets28/wxwidgets30) було об'єднано.
Додана можливість коректної обробки проектів із паралельними несумісними схемами версіонування. Наприклад, FreeCAD у якого 0.18.4 та 0.18.16146 відповідають одному релізу.
Перероблено перелік и індивідуальні сторінки мантейнерів – тепер статистика мантейнера збирається окремо за репозиторіями. Практика показала, що репрезентативна агрегована статистика неможлива через те, що пакети, зберігаючи мантейнера метаданих, можуть мігрувати в інші репозиторії без його відома і позбавляючись його підтримки за фактом (при цьому відстежити це автоматично неможливо). Пізніше вони можуть застаріти і пов'язувати цей факт з оригінальним мантейнером було б некоректно — така ситуація викликала невдоволення мантейнерів Gentoo через наявність Funtoo — по суті, форка Gentoo, що не контролюється ними, що зберігає інформацію про мантейнерів. Прив'язка статистики до репозиторій дозволила вирішити цю проблему, заразом інформація про мантейнерів стала більш докладною та структурованою.
Додана експериментальна підтримка нового типу badge, що є матрицею версій обраних проектів у всіх репозиторіях. Цей інструмент корисний, наприклад, для отримання загального уявлення про стан (наявність пакета, версія, її актуальність та відповідність заданому мінімуму) залежностей будь-якого проекту (або довільного списку проектів). Ця функціональність запитана (і використовується) Проектом PostGIS.
Покращена підтримка 404 сторінок проектів — зокрема, якщо запитаного проекту немає, але ім'я раніше зустрічалося (наприклад, як назва пакету, який був віднесений до проекту з іншою назвою), то користувачеві пропонуються варіанти проектів, які він міг мати на увазі, на кшталт «сторінок дозволу неоднозначності» Wikipedia. Приклад.
Поліпшено інтеграцію з Wikidata — крім покращень в імпорті даних, реалізований та запущений бот, Який оновлює інформацію про ПЗ у Wikidata за даними з Repology. Нагадаємо, що Wikidata поступово стає основним джерелом структурованої інформації для Wikipedia (у контексті новини - фактів про програмне забезпечення, таких як історія версій, ліцензія, сайт, підтримувані ОС, автор, пакети в різних дистрибутивах тощо), що дозволяє підтримувати актуальність даних в одному місці замість десятків локалізованих версій сторінки кожного проекту. Наприклад, картка проекту Nginx у Wikipedia транслює інформацію лише з Wikidata.
За минулі півроку було опрацьовано понад 500 заявок (reports) на додавання/зміну правил з метою коректнішої обробки окремих проектів.
Рейтинг репозиторіїв по відсотковому співвідношенню нових пакетів (тільки для репозиторіїв з 1000 і більше пакетами і крім upstream колекцій модулів типу CPAN, Hackage, PyPi):
Ravenports (99.16%)
Arch та похідні (85.23%)
Homebrew (84.57%)
nix (84.55%)
Scoop (84.02%)
Загальна статистика:
252 репозиторів
180 тисяч проектів
2.3 мільйони окремих пакетів
36 тисяч мейнтейнерів
153 тисячі зафіксованих релізів за останні півроку (минулий огляд містив помилку, за попередні півроку було зафіксовано 150 тисяч релізів)
9.5% відомих проектів випустили за минулі півроку щонайменше одну нову версію