Этап 1: detekt (статанализ + ktlint-форматирование) с baseline
CI / verify (push) Has been cancelled
CI / release (push) Has been cancelled

- detekt 1.23.8 применён ко всем НАШИМ модулям (vendor-форк исключён),
  +formatting-ruleset (обёртка ktlint). Совместим с Kotlin 2.3 (проверено).
- config/detekt/detekt.yml — настройки под наш код (LongMethod 120, MaxLine 140,
  MagicNumber off — dp/цвета отдельно, FunctionNaming off — @Composable Заглавные).
- detekt-baseline.xml по модулям: ~403 текущих замечаний зафиксированы →
  detekt зелёный, дальше ловит только НОВЫЕ. detekt в CI (ci.yml verify).

Проверено: detektBaseline + detekt BUILD SUCCESSFUL.
This commit is contained in:
b-dev-mobile
2026-07-07 23:36:40 +00:00
parent ab8fa70e51
commit ac438269c5
17 changed files with 549 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
# Detekt — статанализ + форматирование (formatting-ruleset = обёртка ktlint).
# buildUponDefaultConfig=true в build.gradle → это дополняет дефолты detekt.
# Подход адаптации на существующий код: baseline фиксирует текущие замечания,
# сборка падает только на НОВЫХ. Постепенно расчищаем baseline.
build:
maxIssues: 0 # с baseline: только новые замечания валят
complexity:
LongMethod:
active: true
threshold: 120 # у нас есть большие composable — не хотим шум сверх меры
LongParameterList:
active: false # Compose-функции с многими колбэками — норма
TooManyFunctions:
active: false
CyclomaticComplexMethod:
threshold: 25
style:
MaxLineLength:
maxLineLength: 140
MagicNumber:
active: false # в UI-коде много dp/цветов — отдельная задача (дизайн-токены)
ReturnCount:
active: false
UnusedPrivateMember:
active: true
exceptions:
TooGenericExceptionCaught:
active: false # много catch(Throwable) в фоновых путях — осознанно
SwallowedException:
active: false
naming:
FunctionNaming:
active: false # @Composable функции с Заглавной — стандарт Compose