Skip to content

archlint diff

Команда diff реализует ключевую функциональность инструмента — принцип «храповика» (Ratchet). Она сравнивает вашу текущую кодовую базу с ранее сохраненным snapshot или другой веткой/коммитом git.

Использование

bash
# Сравнение с файлом snapshot
archlint diff <baseline.json> [options]

# Сравнение с git ref
archlint diff <git-ref> [options]

Как это работает

archlint не просто считает проблемы. Он выполняет семантическое сравнение (diff) архитектурных дефектов:

  1. Новые проблемы: Дефекты, которые существуют сейчас, но не существовали в базовом состоянии (например, новый цикл).
  2. Ухудшившиеся показатели: Существующие проблемы, которые стали более серьезными (например, цикл вырос с 3 файлов до 5).
  3. Исправленные дефекты: Проблемы, которые были в базе, но теперь исчезли.

Опции

ОпцияПо умолчаниюОписание
--fail-on <severity>mediumВыйти с кодом 1, если найдена регрессия этой критичности или выше
--explainfalseПредоставить подробное объяснение для каждой регрессии

Конфигурация

Вы можете настроить движок сравнения в файле .archlint.yaml:

yaml
diff:
  metric_threshold_percent: 20 # сообщать о регрессии только если метрика ухудшилась более чем на 20%
  line_tolerance: 50 # игнорировать смещения в пределах 50 строк при сопоставлении

Подробности см. в Руководстве по конфигурации.

Примеры

Проверка относительно ветки main в CI

bash
archlint diff origin/main --fail-on medium --explain

Проверка относительно локальной базы

bash
archlint diff .archlint-baseline.json

Released under the MIT License.