Либерс
Вопрос: Каков возраст зависимостей проекта по сравнению с текущими стабильными версиями?
Обзор
Libyears измеряет совокупный возраст зависимостей проекта по сравнению с их текущими стабильными версиями. Текущая стабильная версия зависимости относится к версии, предназначенной для общего использования, за исключением предварительных версий или черновых версий. Libyears помогает количественно оценить разрыв между зависимостями проекта и их последними стабильными версиями. Эта метрика может быть выражена в различных формах, таких как:
- Общий возраст по всем зависимостям
- Средний возраст зависимостей
- Средний возраст зависимостей (хотя медиана может скрывать проблемы, если есть длинный хвост старых зависимостей)
Метрика Libyears помогает определить зависимости, которые находятся под угрозой из-за устаревших версий. Более старые зависимости могут представлять риски стабильности, безопасности и уязвимости, поскольку они могут иметь известные недостатки безопасности или меньше поддерживаться их сопровождающими. Libyears предоставляет ценный фильтр для определения приоритетов, на которые нужно обратить внимание для обновлений или дальнейшей проверки.
В целом, более низкое значение Libyear указывает на то, что проект более актуален. Инструменты, реализующие эту метрику, также часто сортируют зависимости по возрасту, чтобы определить самые старые, потенциально самые рискованные.
Хотите знать больше?
Нажмите, чтобы узнать больше об этом показателе.
Стратегии сбора данных
Большинство инструментов, которые вычисляют Libyears, предоставляют версии зависимостей и вычисляют разрыв между текущими стабильными релизами и версиями проекта. Обратите внимание, что некоторые инструменты могут включать различия в номерах версий (например, 1.1.1 против 1.2.3), но поскольку схемы нумерации версий различаются, эта метрика фокусируется на измерении возраста зависимостей на основе дат релизов.
- Параметры: Libyears обычно рассчитываются в контексте определенной экосистемы (например, JavaScript или Maven). Межэкосистемные расчеты более сложны и могут потребовать комплексного Software Bill of Materials (SBOM).
Этот показатель может учитывать:
- Прямые зависимости только или включать транзитивные зависимости (зависимости зависимостей). Включение транзитивных зависимостей часто выявляет дополнительные риски, но поддерживается не всеми инструментами.
- Текущие стабильные ветки: Обычно текущей считается только последняя стабильная ветка проекта. Однако более старые ветки, которые все еще активно поддерживаются, также могут быть приемлемы. Важно, чтобы в любом отчете были четко указаны используемые критерии.
- Льготные периоды: По умолчанию при расчете "текущей" зависимости льготный период не учитывается. Однако, если он используется, его следует явно указать в отчетах.
Фильтры
Расчеты Libyears можно отфильтровать, чтобы обеспечить более целенаправленный анализ:
- Уровень зависимости: Прямые зависимости против включения транзитивных зависимостей, как определено в Зависимости исходного кода Метрика.
- Накопленное количество лет LIBY: Суммирование возраста всех зависимостей.
- Средний возраст: Средний возраст всех иждивенцев.
- Средний возраст: Среднее значение всех возрастов зависимости (хотя оно может скрывать проблемы из-за длинных хвостов).
- Сортированный список: Зависимые лица отсортированы по возрасту, сначала самые старые, чтобы быстро определить тех, кто находится в группе наибольшего риска.
Визуализация
Это пример Libyear как кумулятивной меры Libyears для прямых зависимостей, в данном случае с кумулятивным значением 103.78 кумулятивных libyears.
Рисунок 1: Накопленные годы LIB для прямых зависимостей проекта.Источник
Рекомендации
- Кокс Дж., Бауэрс Э., ван Экелен М. и Виссер Дж. (2015). Измерение свежести зависимостей в программных системах. Труды 37-й Международной конференции по программной инженерии (МКСЭ 2015). https://ericbouwers.github.io/papers/icse15.pdf
- Либийер: https://libyear.com/
Соавторы
- София Варгас
- Дэвид А. Уиллер
- Винод Ахуджа
- Кейт Стюарт
- Дуэйн О'Брайен
- Шон Гоггинс
- Йигакпоа Л. Самуэль
Дополнительная информация
- Чтобы изменить этот показатель, пожалуйста Подайте запрос на изменение здесь.
- Для ссылки на эту метрику в программном обеспечении или публикациях используйте этот стабильный URL-адрес: https://chaoss.community/?p=3976.
Использование и распространение показателей работоспособности может привести к нарушению конфиденциальности. Организации могут быть подвержены рискам. Эти риски могут проистекать из соблюдения GDPR в ЕС, законодательства штата в США или других законов. Также могут быть контрактные риски, вытекающие из условий обслуживания для поставщиков данных, таких как GitHub и GitLab. Использование метрик должно быть проверено на предмет рисков и потенциальных проблем с этикой данных. Посмотри пожалуйста Документ по этике данных CHAOSS для дополнительных указаний.