Skip to content

Commit

Permalink
introduce sbt-buildinfo plugin and sbt-scalafix with organize-imports…
Browse files Browse the repository at this point in the history
… rule (#3)
  • Loading branch information
fgrutsch authored Dec 4, 2020
1 parent 59f5533 commit 12cfab4
Show file tree
Hide file tree
Showing 20 changed files with 69 additions and 67 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
${{ runner.os }}-sbt-${{ hashFiles('project/build.properties') }}-${{ hashFiles('**/*.sbt') }}
- name: Build project
run: sbt clean scalafmtCheckAll scalafmtSbtCheck coverage +test coverageReport coverageAggregate
run: sbt clean codeVerify coverage +test coverageReport coverageAggregate

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
Expand Down
10 changes: 10 additions & 0 deletions .scalafix.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
rules = [
OrganizeImports
]

OrganizeImports {
coalesceToWildcardImportThreshold = 4
expandRelative = true
groupedImports = Merge
removeUnused = true
}
2 changes: 1 addition & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version = "2.7.5"
preset = defaultWithAlign
danglingParentheses.preset = false
rewrite.rules = [
SortImports,
AsciiSortImports,
SortModifiers
]
maxColumn = 120
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ eMERGEnce is a bot that helps you to get rid of all your emerged pull requests a
* tests
* documentation (mdoc / generate readme)
* publish / deploy docu (docker, bintray, maven sync, etc.)
* build info plugin
* scalafix

## Credits

Expand Down
22 changes: 17 additions & 5 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
ThisBuild / scalafixDependencies += "com.github.liancheng" %% "organize-imports" % "0.4.4"
addCommandAlias("codeFmt", ";scalafmtAll;scalafmtSbt;scalafixAll")
addCommandAlias("codeVerify", ";scalafmtCheckAll;scalafmtSbtCheck;scalafixAll --check")

lazy val commonSettings = Seq(
organization := "com.firstbird.emergence",
startYear := Some(2020),
Expand All @@ -17,12 +21,13 @@ lazy val commonSettings = Seq(
"-unchecked",
"-Xcheckinit",
"-Xfatal-warnings",
"-Wdead-code"
)
"-Wdead-code",
"-Wunused:imports"
),
semanticdbEnabled := true,
semanticdbVersion := scalafixSemanticdb.revision
)

addCommandAlias("codeFmt", ";scalafmtAll;scalafmtSbt")

lazy val root = project
.in(file("."))
.settings(commonSettings)
Expand All @@ -31,9 +36,16 @@ lazy val root = project

lazy val core = project
.in(file("core"))
.enablePlugins(BuildInfoPlugin)
.settings(commonSettings)
.settings(
name := "core",
libraryDependencies ++= Dependencies.core,
addCompilerPlugin(Dependencies.betterMonadicFor)
addCompilerPlugin(Dependencies.betterMonadicFor),
buildInfoPackage := organization.value,
buildInfoKeys := Seq[BuildInfoKey](
version,
"appName" -> "Emergence",
"cliName" -> "emergence"
)
)
8 changes: 3 additions & 5 deletions core/src/main/scala/com/firstbird/emergence/core/App.scala
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package com.firstbird.emergence.core

import cats.effect.IO
import cats.effect.ExitCode
import com.firstbird.emergence.core.app._
import caseapp.cats.IOCaseApp
import com.firstbird.emergence.core.app.CliOptions
import com.firstbird.emergence.core.app.CliOptions._
import caseapp.core.RemainingArgs
import cats.effect.{ExitCode, IO}
import com.firstbird.emergence.core.app.CliOptions._
import com.firstbird.emergence.core.app.{CliOptions, _}

object App extends IOCaseApp[CliOptions] {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
package com.firstbird.emergence.core.app

import java.nio.file.Path
import com.firstbird.emergence.core.vcs.Vcs
import com.firstbird.emergence.core.model._
import sttp.model.Uri
import cats.syntax.all._
import caseapp.core.argparser.ArgParser
import caseapp.core.argparser.SimpleArgParser
import caseapp.core.Error.MalformedValue
import java.nio.file.Paths
import com.typesafe.config.ConfigFactory
import java.nio.file.{Path, Paths}

import scala.sys.process.Process
import scala.util.Try
import scala.util.Failure
import scala.util.Success
import com.typesafe.config.Config

import caseapp.core.Error.MalformedValue
import caseapp.core.argparser.{ArgParser, SimpleArgParser}
import caseapp.{AppName, AppVersion, ProgName}
import cats.effect.Sync
import scala.sys.process.Process
import cats.syntax.all._
import com.firstbird.emergence.BuildInfo
import com.firstbird.emergence.core.model._
import com.firstbird.emergence.core.vcs.VcsSettings
import com.typesafe.config.ConfigFactory
import sttp.model.Uri

@AppName(BuildInfo.appName)
@AppVersion(BuildInfo.version)
@ProgName(BuildInfo.cliName)
final case class CliOptions(
configuration: Configuration,
vcsType: CliOptions.VcsType,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package com.firstbird.emergence.core.app

import com.firstbird.emergence.core.vcs.Vcs
import cats.effect.ExitCode
import cats.syntax.all._
import cats.instances.all._
import cats.syntax.all._
import com.firstbird.emergence.core._
import com.firstbird.emergence.core.vcs.model.Repository
import cats.Monad
import com.firstbird.emergence.core.vcs.model.{MergeStrategy, Repository => VcsRepo}
import com.firstbird.emergence.core.app.CliOptions
import cats.effect.IO
import com.firstbird.emergence.core.vcs.Vcs
import com.firstbird.emergence.core.vcs.model.{Repository => VcsRepo}
import io.chrisdavenport.log4cats.Logger

class Emergence[F[_]](options: CliOptions)(implicit logger: Logger[F], vcs: Vcs[F], F: MonadThrowable[F]) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
package com.firstbird.emergence.core.app

import cats.effect.Resource
import sttp.client3._
import cats.effect._
import sttp.client3.asynchttpclient.cats.AsyncHttpClientCatsBackend
import com.firstbird.emergence.core.vcs.bitbucketcloud.BitbucketCloudVcs
import cats.effect.{Resource, _}
import com.firstbird.emergence.core.vcs._
import com.firstbird.emergence.core.model._
import cats.effect.IO
import io.chrisdavenport.log4cats.Logger
import io.chrisdavenport.log4cats.slf4j.Slf4jLogger
import sttp.client3._
import sttp.client3.asynchttpclient.cats.AsyncHttpClientCatsBackend

object EmergenceContext {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package com.firstbird.emergence.core.model

import com.typesafe.config.Config

import io.circe.generic.auto._
import io.circe.config.syntax._
import io.circe.Error
import io.circe.Decoder
import io.circe.generic.auto._
import io.circe.{Decoder, Error}

final case class Configuration(
repositories: List[Configuration.Repository]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package com.firstbird.emergence.core.vcs

import com.firstbird.emergence.core._
import com.firstbird.emergence.core.vcs.bitbucketcloud._
import com.firstbird.emergence.core.model._
import com.firstbird.emergence.core.app._
import com.firstbird.emergence.core.vcs.bitbucketcloud._
import sttp.client3.SttpBackend

final class VcsFactory[F[_]: MonadThrowable](implicit sttpBackend: SttpBackend[F, Any], settings: VcsSettings) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package com.firstbird.emergence.core.vcs.bitbucketcloud

import sttp.client3._
import sttp.client3.circe._
import cats.syntax.all._
import com.firstbird.emergence.core.vcs.model._
import com.firstbird.emergence.core._
import com.firstbird.emergence.core.vcs.bitbucketcloud.Encoding._
import com.firstbird.emergence.core.vcs._
import sttp.model.Uri
import cats.Monad
import com.firstbird.emergence.core.vcs.bitbucketcloud.Encoding._
import com.firstbird.emergence.core.vcs.model._
import sttp.client3._
import sttp.client3.circe._

final class BitbucketCloudVcs[F[_]](implicit backend: SttpBackend[F, Any], settings: VcsSettings, F: MonadThrowable[F])
extends Vcs[F] {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package com.firstbird.emergence.core.vcs.bitbucketcloud

import io.circe._
import cats.syntax.all._
import com.firstbird.emergence.core.vcs.model.BranchName._
import com.firstbird.emergence.core.vcs.model.PullRequestNumber._
import com.firstbird.emergence.core.vcs.model.PullRequestTitle._
import com.firstbird.emergence.core.vcs.model.BranchName._
import com.firstbird.emergence.core.vcs.model._
import io.circe._

private[bitbucketcloud] object Encoding {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package com.firstbird.emergence.core.vcs.bitbucketcloud

import com.firstbird.emergence.core.vcs.model._
import com.firstbird.emergence.core.vcs.bitbucketcloud.Encoding._
import io.circe.Encoder
import io.circe.Json
import com.firstbird.emergence.core.vcs.model._
import io.circe.{Encoder, Json}

final private[bitbucketcloud] case class MergePullRequestRequest(
closeSourceBranch: Boolean,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.firstbird.emergence.core.vcs.model

import io.circe.Decoder

import io.circe.generic.extras.semiauto.deriveUnwrappedCodec

final case class BranchName(value: String) extends AnyVal {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.firstbird.emergence.core.vcs.model

import io.circe._

final case class BuildStatus(
name: BuildStatusName,
state: BuildStatusState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package com.firstbird.emergence.core.vcs.model

import io.circe.Decoder
import com.firstbird.emergence.core.vcs.model.BuildStatusState.Success
import com.firstbird.emergence.core.vcs.model.BuildStatusState.Failed
import com.firstbird.emergence.core.vcs.model.BuildStatusState.{Failed, Success}

sealed trait BuildStatusState {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.firstbird.emergence.core.vcs.model

import io.circe.generic.extras.semiauto.deriveUnwrappedCodec
import io.circe.Codec
import io.circe.generic.extras.semiauto.deriveUnwrappedCodec

final case class PullRequestNumber(value: Int) extends AnyVal {
override def toString: String = value.toString
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.firstbird.emergence.core.vcs.model

import io.circe.generic.extras.semiauto.deriveUnwrappedCodec
import io.circe.Decoder
import io.circe.generic.extras.semiauto.deriveUnwrappedCodec

final case class PullRequestTitle(value: String) extends AnyVal {
override def toString: String = value
Expand Down
2 changes: 2 additions & 0 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.1")
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.24")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0")

0 comments on commit 12cfab4

Please sign in to comment.