В Cargo пришло шесть новых проверок оформления манифеста — и одно правило, которое их отключает
23.01.2026За несколько недель в сборщике пакетов появился набор проверок оформления манифеста: описание пакета, совпадающее с файлом по умолчанию, незаполненные поля, зависимость, объявленная во вложенности и не используемая.
Что проверяется и зачем
Описание пакета, совпадающее с файлом по умолчанию, — избыточно: поле можно убрать, поведение не изменится. То же с адресом страницы, если он совпадает с адресом репозитория. Незаполненное поле в общем описании вложенности — забытое наследование. Зависимость, объявленная во вложенности, но не используемая, — мёртвая строка, которая намекает на неверное понимание области видимости.
Последняя — самая опасная. Читатель крейта видит зависимость и делает вывод, что она нужна для корректности. Если она на самом деле не используется, код может работать по случайности.
Правило, которое важнее самих проверок
Включённые по умолчанию проверки не запускаются, если у пакета объявлена слишком старая минимальная версия языка.
Причина практическая. Проект с минимальной версией ниже, чем появились эти проверки, не может их отключить: отключение появилось позже. Формально он нарушал бы политику Cargo, но нарушить её он не мог — инструмента не существовало.
Теперь такие проекты не получают предупреждений, чего не может добиться ни одна настройка вручную.
Оригинал
lint: Add redundant_readme lint; правило минимальной версии — rust-lang/cargo#16618
Упоминаний: 1 · Просмотров: 5