archlint diff
diffコマンドは、継続的改善を可能にする「ラチェット(Ratchet)」機能の核となるコマンドです。現在のコードベースを、以前に保存したスナップショットまたは別のgitブランチ/コミットと比較します。
使用法
bash
# スナップショットファイルと比較する
archlint diff <baseline.json> [options]
# gitリファレンスと比較する
archlint diff <git-ref> [options]仕組み
archlintは単に問題をカウントするだけではありません。アーキテクチャ上の問題(smells)の**セマンティックな差分(semantic diff)**を実行します。
- 新しい問題: ベースラインには存在しなかったが、現在は存在する問題(例:新しいサイクル)。
- 悪化した問題: 既に存在していたが、より深刻になった問題(例:サイクルが3ファイルから5ファイルに拡大)。
- 解消された問題: ベースラインには存在していたが、現在は解消された問題。
オプション
| オプション | デフォルト | 説明 |
|---|---|---|
--fail-on <severity> | medium | この重要度以上の回帰(regression)が見つかった場合、終了コード1で終了します |
--explain | false | 各回帰について詳細な説明を提供します |
設定
.archlint.yaml ファイルで diff エンジンを微調整できます。
yaml
diff:
metric_threshold_percent: 20 # メトリクスが 20% 以上悪化した場合のみ回帰として報告
line_tolerance: 50 # ファジー・マッチング中に 50 行以内の移動を無視詳細は 設定ガイド を参照してください。
使用例
CIでmainブランチに対してチェックする
bash
archlint diff origin/main --fail-on medium --explainローカルのベースラインに対してチェックする
bash
archlint diff .archlint-baseline.json