Кожен інструмент у цій галузі відповідає на питання одним числом — днів від останнього коміта — і кожен помиляється щодо тих самих проєктів. Невелика завершена бібліотека, якій три роки не потрібні були зміни, не покинута. Вона завершена. Позначити її мертвою означає втратити довіру до реєстру рівно на тому програмному забезпеченні, яке заслуговує найбільшої впевненості.
Тому тиша тут ніколи не є підставою. Оцінка спирається на інше твердження:
Покинутість — це невиконане зобов'язання, а не відсутність шуму.
Проєкт набуває зобов'язань, коли робота надходить ззовні: пул-реквест, що потребує рев'ю, ішюс, що потребує відповіді, опублікований патч до вразливості в тому, що проєкт постачає. Тихий проєкт, до якого ніхто нічого не має, нікому нічого не винен і не може нікого підводити. Тихий проєкт із п'ятнадцятьма пул-реквестами, на які два роки ніхто не глянув, і річною порадою безпеки, патч до якої вийшов того ж тижня, не відпочиває.
- Категорія: Життєздатність (0% усередині категорії)
- Вплив: множник на загальну оцінку, а в найважчих станах — і стеля
- Ключ метрики:
abandonment
Що читає оцінка
Заявлено. Мейнтейнер сказав про це сам. Прапорець архівації GitHub або позначка застарілості в реєстрі для всіх пакетів, які публікує репозиторій. Нічого не виводиться і нічого не потребує підтвердження — реєстр цитує свій предмет.
Посуха. Тривала відсутність людських комітів. Свідомо не давність пуша, яка зараховує оновлення версії від бота як ознаку життя: проєкти, чиєю єдиною активністю за рік були автоматичні оновлення, показують останній пуш давністю в кілька днів. Авторство читається покомітно, автоматичні автори виключаються. Посуха — необхідна умова й ніколи не є підставою сама по собі.
Невиконані зобов'язання. Підтверджувальні сигнали: пул-реквести без відповіді, ішюси без відповіді, опублікований патч, який не застосували, зупинені релізи, зламана неперервна інтеграція, відсутній єдиний мейнтейнер або незалежний висновок OpenSSF Scorecard про брак супроводу. Кожен із них — обов'язок, який проєкт очевидно не виконує.
Запобіжники. Свідчення, що хтось усе ще на місці або що від нього нічого не просять: мейнтейнер, який відповідає, відсутність відкритих звернень, реліз протягом року, жодної зачепленої залежності. Два запобіжники утримують результат від висновку, скільки б зобов'язань не спрацювало, бо обидва прочитання — «хтось відповідає» і «ніхто не питає» — повністю пояснюють тишу.
Що означають стани
| Стан | Значення |
|---|---|
maintained | Людська робота недавня; підстав немає |
unverified | Зібрані свідчення не дають відповіді |
dormant | Тихо, але пояснювано — утримано запобіжниками або нічого не винен |
abandoned | Посуха плюс невиконані зобов'язання, без заперечень |
declared | Мейнтейнер архівував проєкт або позначив пакети застарілими |
Усе, на що дані не відповідають, отримує стан unverified і не коштує репозиторію нічого. Неавтентифікований скан не читає ні вибірки комітів, ні черг трекера, тож не може дійти висновку — це фіксується як відсутність свідчень, а не як свідчення відсутності.
Як читати результат
- Алерт називає свої свідчення. Тривалість посухи наводиться поруч із зобов'язаннями, щоб висновок можна було перевірити, а не брати на віру.
- Посуха може бути нижньою межею. Вибірка комітів обмежена; коли в ній немає жодного людського коміта, справжній розрив передує вікну й повідомляється як «щонайменше».
- Знахідка не є вироком мейнтейнерам. Проєкти покидають зі звичайних причин — змінюється робота, згасає інтерес, люди хворіють. Реєстр фіксує те, що побачить споживач, а не чому так сталося.
- Автоматизація тут не рятує проєкт, але й не засуджує його. Коміти ботів виключені з розрахунку посухи, тож репозиторій, який підтримує теплим бот залежностей, читається настільки ж тихим, наскільки він тихий насправді. Активна автоматизація поряд зі свіжою людською роботою взагалі не є сигналом — див. активність розробки.
Як покращити
- Відповідайте на відкрите або закривайте його. Черга без відповіді — найсильніший окремий внесок у знахідку.
- Застосовуйте опубліковані патчі безпеки до залежностей або вказуйте, чому вони не стосуються проєкту.
- Якщо проєкт завершений, а не покинутий, скажіть про це: архівація або позначка застарілості пакетів замінює припущення фактом.
Пов'язане: активність розробки · стійкість супроводу · Життєздатність