Skip to content

Commit

Permalink
Use cached dependencies instead of doubling expensive sbt call
Browse files Browse the repository at this point in the history
  • Loading branch information
exoego committed Aug 18, 2019
1 parent a02f3ff commit b51a779
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import io.chrisdavenport.log4cats.Logger
import org.scalasteward.core.application.Config
import org.scalasteward.core.data.{Dependency, Update}
import org.scalasteward.core.io.{FileAlg, FileData, ProcessAlg, WorkspaceAlg}
import org.scalasteward.core.repocache.RepoCacheRepository
import org.scalasteward.core.sbt.command._
import org.scalasteward.core.sbt.data.{ArtificialProject, SbtVersion}
import org.scalasteward.core.scalafix.Migration
Expand Down Expand Up @@ -58,6 +59,7 @@ object SbtAlg {
processAlg: ProcessAlg[F],
workspaceAlg: WorkspaceAlg[F],
scalafmtAlg: ScalafmtAlg[F],
cacheRepository: RepoCacheRepository[F],
F: Monad[F]
): SbtAlg[F] =
new SbtAlg[F] {
Expand Down Expand Up @@ -136,7 +138,7 @@ object SbtAlg {
updates <- withTemporarySbtDependency(repo) {
exec(sbtCmd(commands), repoDir).map(parser.parseSingleUpdates)
}
originalDependencies <- getOriginalDependencies(repo)
originalDependencies <- cacheRepository.getDependencies(List(repo))
updatesUnderNewGroupId = originalDependencies.flatMap(
UpdateService.findUpdateUnderNewGroup
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import org.scalasteward.core.coursier.CoursierAlg
import org.scalasteward.core.edit.EditAlg
import org.scalasteward.core.git.{Author, GitAlg}
import org.scalasteward.core.io.{MockFileAlg, MockProcessAlg, MockWorkspaceAlg}
import org.scalasteward.core.repocache.RepoCacheRepository
import org.scalasteward.core.repocache.json.JsonRepoCacheRepository
import org.scalasteward.core.repoconfig.RepoConfigAlg
import org.scalasteward.core.sbt.SbtAlg
import org.scalasteward.core.scalafmt.ScalafmtAlg
Expand Down Expand Up @@ -56,6 +58,8 @@ object MockContext {
implicit val gitHubRepoAlg: VCSRepoAlg[MockEff] = VCSRepoAlg.create(config, gitAlg)
implicit val logAlg: LogAlg[MockEff] = new LogAlg[MockEff]
implicit val scalafmtAlg: ScalafmtAlg[MockEff] = ScalafmtAlg.create
implicit val cacheRepository: RepoCacheRepository[MockEff] =
new JsonRepoCacheRepository[MockEff]()
implicit val sbtAlg: SbtAlg[MockEff] = SbtAlg.create
implicit val editAlg: EditAlg[MockEff] = new EditAlg[MockEff]
implicit val repoConfigAlg: RepoConfigAlg[MockEff] = new RepoConfigAlg[MockEff]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,7 @@ class SbtAlgTest extends FunSuite with Matchers {
";set every credentials := Nil;dependencyUpdates;reload plugins;dependencyUpdates"
),
List("rm", s"$repoDir/project/tmp-sbt-dep.sbt"),
List(
"TEST_VAR=GREAT",
"ANOTHER_TEST_VAR=ALSO_GREAT",
repoDir.toString,
"firejail",
s"--whitelist=$repoDir",
"sbt",
"-batch",
"-no-colors",
";show libraryDependenciesAsJson;reload plugins;show libraryDependenciesAsJson"
)
List("read", s"/tmp/ws/repos_v05.json")
)
)
}
Expand Down Expand Up @@ -103,21 +93,7 @@ class SbtAlgTest extends FunSuite with Matchers {
),
List("restore", (repoDir / ".sbtopts").toString),
List("restore", (repoDir / ".jvmopts").toString),
List("rm", (repoDir / ".jvmopts").toString),
List("rm", (repoDir / ".sbtopts").toString),
List(
"TEST_VAR=GREAT",
"ANOTHER_TEST_VAR=ALSO_GREAT",
repoDir.toString,
"firejail",
s"--whitelist=$repoDir",
"sbt",
"-batch",
"-no-colors",
";show libraryDependenciesAsJson;reload plugins;show libraryDependenciesAsJson"
),
List("restore", (repoDir / ".sbtopts").toString),
List("restore", (repoDir / ".jvmopts").toString)
List("read", s"/tmp/ws/repos_v05.json")
)
)
}
Expand Down Expand Up @@ -145,17 +121,7 @@ class SbtAlgTest extends FunSuite with Matchers {
"-no-colors",
";dependencyUpdates;reload plugins;dependencyUpdates"
),
List(
"TEST_VAR=GREAT",
"ANOTHER_TEST_VAR=ALSO_GREAT",
repoDir.toString,
"firejail",
s"--whitelist=$repoDir",
"sbt",
"-batch",
"-no-colors",
";show libraryDependenciesAsJson;reload plugins;show libraryDependenciesAsJson"
)
List("read", s"/tmp/ws/repos_v05.json")
)
)
}
Expand Down

0 comments on commit b51a779

Please sign in to comment.