/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠR ick ĠBus ar ow Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ @ file : Suppress (" Magic Number ") Ċ Ċ import Ġcom . github . ben man es . gradle . versions . updates .* Ċ import Ġformatting .* Ċ import Ġio . gitlab . art urb os ch . de te kt .* Ċ import Ġkotlinx . kn it .* Ċ import Ġkotlinx . validation .* Ċ import Ġorg . jetbrains . dok ka . gradle .* Ċ import Ġorg . jetbrains . kotlin . gradle . tasks .* Ċ import Ġorg . jl le its ch uh . gradle . kt lint . K tl int Extension Ċ import Ġorg . jl le its ch uh . gradle . kt lint . tasks . Base Kt Lint Check Task Ċ Ċ build script Ġ{ ĊĠ Ġdependencies Ġ{ ĊĠĠĠ Ġclasspath ( libs . android . gradle ) ĊĠĠĠ Ġclasspath ( libs . square . an vil . gradle ) ĊĠĠĠ Ġclasspath ( libs . google . k sp ) ĊĠĠĠ Ġclasspath ( libs . v ann ik tech . maven . publish ) ĊĠĠĠ Ġclasspath ( libs . kotlin . gradle . plug ) ĊĠĠĠ Ġclasspath ( libs . kotlin x . atomic fu ) ĊĠĠĠ Ġclasspath ( libs . kt lint . gradle ) ĊĠĠĠ Ġclasspath ( libs . kt lint . gradle ) ĊĠ Ġ} Ċ } Ċ Ċ plugins Ġ{ ĊĠ Ġid (" com . github . ben - man es . versions ") Ġversion Ġ" 0 . 3 9 . 0 " ĊĠ Ġid (" com . aut onomous apps . dependency - analysis ") Ġversion Ġ" 0 . 7 8 . 0 " ĊĠ Ġid (" com . os ack y . doctor ") Ġversion Ġ" 0 . 7 . 3 " ĊĠ Ġid (" io . gitlab . art urb os ch . de te kt ") Ġversion Ġ" 1 . 1 8 . 1 " ĊĠ Ġkotlin (" jvm ") ĊĠ Ġid (" com . dor ong old . task - tree ") Ġversion Ġ" 2 . 1 . 0 " ĊĠ Ġid (" org . jetbrains . kotlin x . binary - compatibility - validator ") Ġversion Ġ" 0 . 8 . 0 " ĊĠ Ġbase ĊĠ Ġdok ka ĊĠ Ġkn it ĊĠ Ġwebsite Ċ } Ċ Ċ all projects Ġ{ ĊĠ Ġconfigurations . all Ġ{ ĊĠĠĠ Ġresolution Strategy Ġ{ ĊĊĠĠĠĠĠ Ġeach Dependency Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġrequested . group Ġ== Ġ" org . jetbrains . kotlin " Ġ-> Ġuse Version ( libs . versions . kotlin . get ()) ĊĠĠĠĠĠĠĠĠĠ Ġrequested . name . startsWith (" kotlin x - coroutines ") Ġ-> Ġuse Version ( libs . versions . kotlin x . coroutines . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ @ Suppress (" DE PREC ATION ") Ċ de te kt Ġ{ ĊĊĠ Ġparallel Ġ= Ġtrue ĊĠ Ġconfig Ġ= Ġfiles ("$ rootDir / de te kt / de te kt - config . yml ") ĊĊĠ Ġreports Ġ{ ĊĠĠĠ Ġxml . enabled Ġ= Ġfalse ĊĠĠĠ Ġhtml . enabled Ġ= Ġtrue ĊĠĠĠ Ġtxt . enabled Ġ= Ġfalse ĊĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĊĠ Ġde te kt ( libs . art urb os ch . de te kt . cli ) ĊĠ Ġde te kt Plugins ( projects . dispatch Det ek t ) Ċ } Ċ Ċ tasks . with Type < Det ek t Create Baseline Task > Ġ{ ĊĊĠ Ġset Source ( files ( rootDir )) ĊĊĠ Ġinclude (" ** /*. kt ", Ġ"** /*. k ts ") ĊĠ Ġexclude (" **/ resources /** ", Ġ" **/ build /** ", Ġ" **/ src / test / java ** ") ĊĊĠ Ġ// ĠTarget Ġversion Ġof Ġthe Ġgenerated ĠJVM Ġbytecode . ĠIt Ġis Ġused Ġfor Ġtype Ġresolution . ĊĠ Ġthis . jvm Target Ġ= Ġ" 1 . 8 " Ċ } Ċ Ċ tasks . with Type < Det ek t > Ġ{ ĊĊĠ Ġset Source ( files ( rootDir )) ĊĊĠ Ġinclude (" ** /*. kt ", Ġ"** /*. k ts ") ĊĠ Ġexclude (" **/ resources /** ", Ġ" **/ build /** ", Ġ" **/ src / test / java ** ") ĊĊĠ Ġ// ĠTarget Ġversion Ġof Ġthe Ġgenerated ĠJVM Ġbytecode . ĠIt Ġis Ġused Ġfor Ġtype Ġresolution . ĊĠ Ġthis . jvm Target Ġ= Ġ" 1 . 8 " Ċ } Ċ Ċ apply ( plugin Ġ= Ġ" binary - compatibility - validator ") Ċ Ċ extensions . configure < Api Validation Extension > Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠPackages Ġthat Ġare Ġexcluded Ġfrom Ġpublic ĠAPI Ġdump s Ġeven Ġif Ġthey ĊĠĠ Ġ* Ġcontain Ġpublic ĠAPI . ĊĠĠ Ġ*/ ĊĠ Ġignored Packages Ġ= Ġmutable Set Of (" sample ", Ġ" samples ") ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSub - projects Ġthat Ġare Ġexcluded Ġfrom ĠAPI Ġvalidation ĊĠĠ Ġ*/ ĊĠ Ġignored Projects Ġ= Ġmutable Set Of ( ĊĠĠĠ Ġ" dispatch - internal - test ", ĊĠĠĠ Ġ" dispatch - internal - test - android ", ĊĠĠĠ Ġ" dispatch - sample " ĊĠ Ġ) Ċ } Ċ Ċ val Ġsort Dependencies Ġby Ġtasks . register ing Ġ{ ĊĊĠ Ġdescription Ġ= Ġ" sort Ġall Ġdependencies Ġin Ġa Ġgradle Ġk ts Ġfile " ĊĠ Ġgroup Ġ= Ġ" refactor " ĊĊĠ Ġdo Last Ġ{ ĊĠĠĠ Ġsort Dependencies () ĊĠ Ġ} Ċ } Ċ Ċ dependency Analysis Ġ{ ĊĠ Ġissues Ġ{ ĊĠĠĠ Ġall Ġ{ ĊĠĠĠĠĠ Ġignore K tx ( false ) Ġ// Ġdefault Ġis Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun Ġis Non Stable ( version : ĠString ): ĠBoolean Ġ{ ĊĠ Ġval Ġstable Keyword Ġ= ĠlistOf (" RELEASE ", Ġ" FINAL ", Ġ" GA "). any Ġ{ Ġversion . toUpperCase (). contains ( it ) Ġ} ĊĠ Ġval Ġregex Ġ= Ġ"^ [ 0 - 9 ,. v - ]+ (- r )? $ ". to Regex () ĊĠ Ġval Ġis Stable Ġ= Ġstable Keyword Ġ|| Ġregex . matches ( version ) ĊĠ Ġreturn Ġis Stable . not () Ċ } Ċ Ċ tasks . named (" dependency Updates ", ĠDependency Updates Task :: class . java ). configure Ġ{ ĊĠ Ġreject Version If Ġ{ ĊĠĠĠ Ġis Non Stable ( candidate . version ) Ġ&& Ġ! is Non Stable ( current Version ) ĊĠ Ġ} Ċ } Ċ Ċ all projects Ġ{ ĊĠ Ġapply ( plugin Ġ= Ġ" org . jl le its ch uh . gradle . kt lint ") ĊĊĠ Ġconfigure < K tl int Extension > Ġ{ ĊĠĠĠ Ġdebug . set ( false ) ĊĊĠĠĠ Ġdisabled Rules . set ( ĊĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠ Ġ" no - wildcard - imports ", ĊĠĠĠĠĠĠĠ Ġ" max - line - length ", Ġ// Ġmanually Ġformatting Ġstill Ġdoes Ġthis , Ġand ĠK TL int Ġwill Ġstill Ġwrap Ġlong Ġchains Ġwhen Ġpossible ĊĠĠĠĠĠĠĠ Ġ" filename ", Ġ// Ġsame Ġas ĠDet ek t 's ĠMatch ing Declaration Name , Ġbut ĠDet ek t 's Ġversion Ġcan Ġbe Ġsupp ressed Ġand Ġthis Ġcan 't ĊĠĠĠĠĠĠĠ Ġ" experimental : argument - list - wrapping " Ġ// Ġdoesn 't Ġwork Ġhalf Ġthe Ġtime ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĠ Ġtasks . with Type < Base Kt Lint Check Task > Ġ{ ĊĠĠĠ Ġworker Max Heap Size . set (" 5 1 2 m ") ĊĠ Ġ} Ċ } Ċ Ċ configure < com . os ack y . doctor . Doctor Extension > Ġ{ ĊĠ Ġnegative Avoid ance Threshold . set ( 5 0 0 ) Ċ } Ċ