В cargo tree фильтр публичных зависимостей стал фильтром по рёбрам, а не по глубине
10.10.2025В cargo tree опция --depth public заменена на --edges public. Фильтр стал работать по публичности рёбер дерева зависимостей, а не по глубине.
Разница между двумя подходами
Глубина отсчитывает уровни вложенности. Публичность рёбер отвечает на другой вопрос: какие зависимости крейт объявил публичными, то есть какие являются частью его контракта.
Это разные вещи. Крейт может иметь публичную зависимость на глубине трёх уровней — вложенность ничего не значит, важно лишь объявление. И наоборот, близкая по глубине зависимость может быть приватной, то есть внутренней деталью.
Прежний фильтр отвечал на вопрос о глубине, а обещание по названию — о публичности. Расхождение и было проблемой.
Когда полезно
Нужен именно перечень того, что крейт обещает своим пользователям. Например, при проверке, что библиотека не подмешивает свою внутреннюю зависимость в публичный интерфейс.
Оригинал
fix(tree): Switch from --depth public to --edges public
Упоминаний: 1 · Просмотров: 3