В Python Package Index (PyPI) появится система «Архивации проектов» (Project Archival), которая позволит архивировать проекты, предупреждая пользователей о том, что обновлений ожидать не стоит.
Разработчики объясняют, что помещенные в архив проекты по-прежнему будут доступны в PyPI, но при этом пользователи будут видеть предупреждение, которое должно помочь им принять решение о целесообразности таких зависимостей.
Новая функция должна повысить безопасность цепочки поставок в экосистеме PyPI, поскольку взлом учетных записей разработчиков и распространение вредоносных обновлений для популярных, но уже заброшенных проектов – это весьма распространенная тактика в арсенале злоумышленников.
Кроме того, новая система должна повысить прозрачность и снизить количество запросов на поддержку со стороны пользователей, четко информируя их о статусе проекта. Предупреждение призвано проинформировать разработчиков о том, что им пора искать альтернативные зависимости с активной поддержкой, а не полагаться на устаревшие и потенциально небезопасные проекты.
По информации специалистов Trail of Bits, разработавших новую систему архивации проектов, мейнтейнеры смогут помечать свои проекты как архивные и проинформировать пользователей о том, что обновлений, исправлений и поддержки в данном случае ждать не стоит.
Если же сопровождающие решат возобновить работу над проектом, они могут в любое время его разархивировать.
Новая система использует модель LifecycleStatus, изначально разработанную для помещения проектов на карантин. Она предусматривает механизм изменения состояний, обеспечивающий переход проекта между различными статусами. В TrailofBits сообщили, что в будущем планируют добавить больше статусов, включая: «устаревший» (deprecated), «полнофункциональный» (feature-complete) и «не поддерживается» (unmaintained).