package Ġru . mi pt . npm . gradle Ċ Ċ import Ġgro ovy . text . Simple Template Engine Ċ import Ġkotlinx . validation . Api Validation Extension Ċ import Ġkotlinx . validation . Binary Compatibility Validator Plugin Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . Task Ċ import Ġorg . gradle . kotlin . dsl .* Ċ import Ġorg . jetbrains . changelog . Change log Plugin Ċ import Ġorg . jetbrains . changelog . Change log Plugin Extension Ċ import Ġorg . jetbrains . dok ka . gradle . Abstract D ok ka Task Ċ import Ġorg . jetbrains . dok ka . gradle . D ok ka Plugin Ċ import Ġru . mi pt . npm . gradle . internal .* Ċ Ċ private Ġfun ĠProject . all Tasks (): ĠSet < Task > Ġ= Ġall projects . flatMap To ( HashSet ()) Ġ{ Ġit . tasks Ġ} Ċ Ċ @ Suppress (" unused ") Ċ public Ġclass ĠK Science Publishing Extension ( public Ġval Ġproject : ĠProject ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġis V cs Initialized Ġ= Ġfalse ĊĊĠĠĠ Ġ@ Deprecated (" Use Ġgit Ġfunction Ġand Ġreport Ġan Ġissue Ġif Ġother ĠV CS Ġis Ġused .") ĊĠĠĠ Ġpublic Ġfun Ġv cs ( vcs Url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is V cs Initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . setup Publication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( vcs Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ Ġurl . set ( vcs Url ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis V cs Initialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfig ures ĠGit Ġrepository Ġ( sources ) Ġfor Ġthe Ġpublication . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġv cs Url ĠURL Ġof Ġthe Ġrepository 's Ġweb Ġinterface . ĊĠĠĠĠ Ġ* Ġ@ param Ġconnection Url ĠURL Ġof Ġthe ĠGit Ġrepository . ĊĠĠĠĠ Ġ* Ġ@ param Ġdeveloper Connection Url ĠURL Ġof Ġthe ĠGit Ġrepository Ġfor Ġdevelopers . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġgit ( vcs Url : ĠString , Ġconnection Url : ĠString ? Ġ= Ġnull , Ġdeveloper Connection Url : ĠString ? Ġ= Ġconnection Url ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is V cs Initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . setup Publication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( vcs Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( vcs Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Url ?. let Ġ{ Ġconnection . set (" scm : git :$ it ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection Url ?. let Ġ{ Ġdeveloper Connection . set (" scm : git :$ it ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis V cs Initialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlink Public ations To Release Task ( name : ĠString ) Ġ= Ġproject . after Evaluate Ġ{ ĊĠĠĠĠĠĠĠ Ġall Tasks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . name Ġ== Ġ" publish ${ publication Target } To ${ name . capitalize ()} Repository " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġrelease Task ?. depends On ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠGitHub Ġas ĠV CS Ġand Ġadds ĠGitHub ĠPackages ĠMaven Ġrepository Ġto Ġpublishing . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġgithub Project Ġthe ĠGitHub Ġproject . ĊĠĠĠĠ Ġ* Ġ@ param Ġgithub Org Ġthe ĠGitHub Ġuser Ġor Ġorganization . ĊĠĠĠĠ Ġ* Ġ@ param Ġrelease Ġwhether Ġpublish Ġpackages Ġin Ġthe Ġ` release ` Ġtask Ġto Ġthe ĠGitHub Ġrepository . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġgithub ( github Project : ĠString , Ġgithub Org : ĠString Ġ= Ġ" mi pt - npm ", Ġrelease : ĠBoolean Ġ= Ġfalse , Ġpublish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAutomatically Ġinitialize ĠV CS Ġusing ĠGitHub ĊĠĠĠĠĠĠĠ Ġif Ġ(! is V cs Initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgit (" https :// github . com /$ github Org /${ github Project }", Ġ" https :// github . com /$ github Org /${ github Project }. git ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( publish ) Ġproject . add Github Publishing ( github Org , Ġgithub Project ) ĊĠĠĠĠĠĠĠ Ġif Ġ( release ) Ġlink Public ations To Release Task (" github ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġrelease Task Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . tasks . find ByName (" release ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠSpace ĠPackages ĠMaven Ġrepository Ġto Ġpublishing . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġspace Repo Ġthe Ġrepository ĠURL . ĊĠĠĠĠ Ġ* Ġ@ param Ġrelease Ġwhether Ġpublish Ġpackages Ġin Ġthe Ġ` release ` Ġtask Ġto Ġthe ĠSpace Ġrepository . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġspace ( space Repo : ĠString Ġ= Ġ" https :// maven . pkg . jetbrains . space / mi pt - npm / p / sci / maven ", Ġrelease : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . add Space Publishing ( space Repo ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( release ) Ġlink Public ations To Release Task (" space ") ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġ// ĠB intr ay Ġpublishing Ċ // ĠĠĠ Ġvar Ġbin tray Org : ĠString ? Ġby Ġproject . extra Ċ // ĠĠĠ Ġvar Ġbin tray User : ĠString ? Ġby Ġproject . extra Ċ // ĠĠĠ Ġvar Ġbin tray ApiKey : ĠString ? Ġby Ġproject . extra Ċ // ĠĠĠ Ġvar Ġbin tray Repo : ĠString ? Ġby Ġproject . extra ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠSon atype ĠMaven Ġrepository Ġto Ġpublishing . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġrelease Ġwhether Ġpublish Ġpackages Ġin Ġthe Ġ` release ` Ġtask Ġto Ġthe ĠSon atype Ġrepository . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġson atype ( release : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( is V cs Initialized ) Ġ{ Ġ" The Ġproject Ġv cs Ġis Ġnot Ġset Ġup Ġuse Ġ' git ' Ġmethod Ġto Ġdo Ġso " Ġ} ĊĠĠĠĠĠĠĠ Ġproject . add Son atype Publishing () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( release ) Ġlink Public ations To Release Task (" son atype ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠApplies Ġthird - party Ġplugins Ġ( D ok ka , ĠChangelog , Ġbinary Ġcompatibility Ġvalidator ); Ġconfig ures ĠMaven Ġpublishing , ĠREADME Ċ Ġ* Ġgeneration . Ċ Ġ*/ Ċ public Ġopen Ġclass ĠK Science Project Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ): ĠUnit Ġ= Ġtarget . run Ġ{ ĊĠĠĠĠĠĠĠ Ġapply < Change log Plugin >() ĊĊĠĠĠĠĠĠĠ Ġapply < D ok ka Plugin >() ĊĠĠĠĠĠĠĠ Ġapply < Binary Compatibility Validator Plugin >() ĊĊĠĠĠĠĠĠĠ Ġafter Evaluate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Snapshot ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure < Api Validation Extension > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidation Disabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure < Change log Plugin Extension > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion . set ( project . version . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġroot Read me Extension Ġ= ĠK Science Read me Extension ( this ) ĊĠĠĠĠĠĠĠ Ġextensions . add (" k science Publish ", ĠK Science Publishing Extension ( this )) ĊĠĠĠĠĠĠĠ Ġextensions . add (" readme ", Ġroot Read me Extension ) ĊĊĠĠĠĠĠĠĠ Ġ// Add Ġreadme Ġgenerators Ġto Ġindividual Ġsub projects ĊĠĠĠĠĠĠĠ Ġsub projects Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreadme Extension Ġ= ĠK Science Read me Extension ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextensions . add (" readme ", Ġreadme Extension ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenerate Read me Ġby Ġtasks . creating Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" documentation " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Generate Ġa ĠREADME Ġfile Ġif Ġstub Ġis Ġpresent " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( readme Extension . readme Template . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinputs . file ( readme Extension . readme Template ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreadme Extension . additional Files . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinputs . file ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreadme File Ġ= Ġthis @ sub projects . file (" README . md ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs . file ( readme File ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreadme String Ġ= Ġreadme Extension . readme String () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( readme String Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreadme File . write Text ( readme String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . with Type < Abstract D ok ka Task > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( generate Read me ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġgenerate Read me Ġby Ġtasks . creating Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" documentation " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Generate Ġa ĠREADME Ġfile Ġand Ġa Ġfeature Ġmatrix Ġif Ġstub Ġis Ġpresent " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub projects Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . find ByName (" generate Read me ") ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( root Read me Extension . readme Template . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinputs . file ( root Read me Extension . readme Template ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Read me Extension . additional Files . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinputs . file ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreadme File Ġ= Ġproject . file (" README . md ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs . file ( readme File ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprojects Ġ= Ġsub projects . associate Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnormalized Path Ġ= Ġit . path . replace First (" :", "" ). replace (": "," /") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . path . replace (": "," /") Ġto Ġit . extensions . findBy Type < KS cience Read me Extension >() Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( root Read me Extension . readme Template . exists ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodules String Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub projects . forEach Ġ{ Ġsub project Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġsub project . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġsub project . path . replace First (" :", Ġ""). replace (" :", Ġ"/") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġext Ġ= Ġsub project . extensions . findBy Type < KS cience Read me Extension >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ("< hr /> ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ("\ n * Ġ### Ġ[$ name ]( $ path )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ext Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ("> Ġ${ ext . description }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ( ">\ n > Ġ** Mat urity **: Ġ${ ext . mat urity }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeature String Ġ= Ġext . features String ( item Prefix Ġ= Ġ"> Ġ- Ġ", Ġpath Prefix Ġ= Ġ"$ path /") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( feature String . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ( ">\ n > Ġ** Features :** ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ( feature String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ("< hr /> ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Read me Properties : ĠMap < String , ĠAny ?> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Read me Extension . actual ized Properties Ġ+ Ġ(" modules " Ġto Ġmodules String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreadme File . write Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Template Engine (). create Template ( root Read me Extension . readme Template ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. make ( root Read me Properties ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtasks . with Type < Abstract D ok ka Task > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( generate Read me ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// val Ġpatch Change log Ġby Ġtasks . getting ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UNUSED _ VARIABLE ") Ġval Ġrelease Ġby Ġtasks . creating Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= ĠRELEASE _ GROUP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Publish Ġdevelopment Ġor Ġproduction Ġrelease Ġbased Ġon Ġversion Ġsuffix " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( generate Read me ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠDisable ĠAPI Ġvalidation Ġfor Ġsnapshots ĊĠĠĠĠĠĠĠ Ġif Ġ( is Snapshot ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextensions . findBy Type < Api Validation Extension >() ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidation Disabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" API Ġvalidation Ġis Ġdisabled Ġfor Ġsnapshot Ġor Ġdev Ġversion ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġconst Ġval ĠRELEASE _ GROUP : ĠString Ġ= Ġ" release " ĊĠĠĠ Ġ} Ċ } Ċ