В cargo tree фильтр публичных зависимостей стал фильтром по рёбрам, а не по глубине

10.10.2025

В cargo tree опция --depth public заменена на --edges public. Фильтр стал работать по публичности рёбер дерева зависимостей, а не по глубине.

Разница между двумя подходами

Глубина отсчитывает уровни вложенности. Публичность рёбер отвечает на другой вопрос: какие зависимости крейт объявил публичными, то есть какие являются частью его контракта.

Это разные вещи. Крейт может иметь публичную зависимость на глубине трёх уровней — вложенность ничего не значит, важно лишь объявление. И наоборот, близкая по глубине зависимость может быть приватной, то есть внутренней деталью.

Прежний фильтр отвечал на вопрос о глубине, а обещание по названию — о публичности. Расхождение и было проблемой.

Когда полезно

Нужен именно перечень того, что крейт обещает своим пользователям. Например, при проверке, что библиотека не подмешивает свою внутреннюю зависимость в публичный интерфейс.

Оригинал

fix(tree): Switch from --depth public to --edges public

Упоминаний: 1 · Просмотров: 3