Skip to content
This repository has been archived by the owner on Apr 22, 2020. It is now read-only.

Read the Scala cross versions from travis file for checking the isLastScalaVersion #709

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ matrix:
jdk: oraclejdk8
env:
- SBT_VERSION=1.0.2
- scala: 2.10.6
- scala: 2.10.7
jdk: oraclejdk8
env:
- SBT_VERSION=0.13.16
Expand Down
5 changes: 2 additions & 3 deletions autocheck/build.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import sbt.Keys._
import sbtorgpolicies.OrgPoliciesKeys.orgGithubSetting
import sbtorgpolicies.io.FileReader
import sbtorgpolicies.io.FileReader._
import sbtorgpolicies.libraries._
import sbtorgpolicies.model.GitHubSettings

Expand Down Expand Up @@ -32,12 +32,11 @@ lazy val `org-policies-auto-dep-check` = (project in file("."))
.toList ++
javaLibs.mapValues(lib => lib._1 % lib._2 % lib._3).values.toList,
checkDependencies := Def.taskDyn {
val fr = new FileReader
val versionSbtFile = baseDirectory.value.getParentFile / "version.sbt"
val VersionRegex = """.*"(.*-SNAPSHOT)".*""".r

val currentPluginVersion =
fr.getFileContent(versionSbtFile.getAbsolutePath) match {
getFileContent(versionSbtFile.getAbsolutePath) match {
case Right(VersionRegex(v)) => Some(v)
case _ => None
}
Expand Down
6 changes: 2 additions & 4 deletions core/src/main/scala/sbtorgpolicies/github/GitHubOps.scala
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,9 @@ import sbtorgpolicies.github.syntax._
import sbtorgpolicies.io.syntax._
import sbtorgpolicies.io.{FileReader, IO, IOResult}

class GitHubOps(owner: String, repo: String, accessToken: Option[String]) {
class GitHubOps(owner: String, repo: String, accessToken: Option[String], fileReader: FileReader = FileReader) {

val fileReader: FileReader = new FileReader

val gh = Github(accessToken)
val gh: Github = Github(accessToken)

def fetchContributors: Either[GitHubException, List[User]] = {

Expand Down
18 changes: 8 additions & 10 deletions core/src/main/scala/sbtorgpolicies/io/FileHelper.scala
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,11 @@ import cats.syntax.traverseFilter._
import sbtorgpolicies.exceptions.IOException
import sbtorgpolicies.io.syntax._
import sbtorgpolicies.templates._
import FileReader._
import FileWriter._

class FileHelper {

val fileReader: FileReader = new FileReader

val fileWriter: FileWriter = new FileWriter

val templatesEngine: TemplatesEngine = new TemplatesEngine

def getPluginUrl: IOResult[URL] =
Expand All @@ -49,8 +47,8 @@ class FileHelper {

for {
pluginUrl <- getPluginUrl
_ <- fileWriter.copyJARResourcesTo(pluginUrl, templatesOutput, "templates")
_ <- fileWriter.copyFilesRecursively(userTemplatesDir.getAbsolutePath, s"${templatesOutput}templates")
_ <- copyJARResourcesTo(pluginUrl, templatesOutput, "templates")
_ <- copyFilesRecursively(userTemplatesDir.getAbsolutePath, s"${templatesOutput}templates")
} yield ()
}

Expand All @@ -64,16 +62,16 @@ class FileHelper {

def checkFiles(): IOResult[Unit] =
fileList.traverseU_ { f =>
if (!fileReader.exists(templatePath(f)))
if (!exists(templatePath(f)))
IOException(s"File not found: ${f.templatePath}").asLeft
else ().asRight
}

def prepareFileContent(file: FileType): IOResult[Option[String]] =
if (!fileReader.exists(file.outputPath) || file.overWritable) {
if (!exists(file.outputPath) || file.overWritable) {
templatesEngine.replaceFileContentsWith(templatePath(file), file.replacements) map (Option(_))
} else if (file.fileSections.nonEmpty) {
fileReader.getFileContent(file.outputPath) map (Option(_))
getFileContent(file.outputPath) map (Option(_))
} else Right(None)

def replaceSection(fileContent: String, fileSection: FileSection): IOResult[String] =
Expand All @@ -94,7 +92,7 @@ class FileHelper {

def writeToFileIfWritable(maybeContent: Option[String], fileType: FileType): IOResult[Option[FileType]] =
maybeContent map { c =>
fileWriter.writeContentToFile(c, outputPath(fileType)) map (_ => Option(fileType))
writeContentToFile(c, outputPath(fileType)) map (_ => Option(fileType))
} getOrElse None.asRight

def processFile(fileType: FileType): IOResult[Option[FileType]] =
Expand Down
4 changes: 3 additions & 1 deletion core/src/main/scala/sbtorgpolicies/io/FileReader.scala
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import sbtorgpolicies.io.syntax._

import scala.annotation.tailrec

class FileReader {
trait FileReader {

def exists(path: String): Boolean =
Either
Expand Down Expand Up @@ -115,3 +115,5 @@ class FileReader {
}
.leftMap(e => IOException(s"Error fetching files recursively", Some(e)))
}

object FileReader extends FileReader
8 changes: 4 additions & 4 deletions core/src/main/scala/sbtorgpolicies/io/FileWriter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,7 @@ import cats.syntax.traverse._
import sbtorgpolicies.exceptions._
import sbtorgpolicies.io.syntax._

class FileWriter {

val fileReader: FileReader = new FileReader
trait FileWriter {

def writeContentToFile(content: String, output: String): IOResult[Unit] = {

Expand Down Expand Up @@ -87,7 +85,7 @@ class FileWriter {
(files map copySingleFile).sequenceU

for {
files <- fileReader.fetchFilesRecursivelyFromPath(sourcePath)
files <- FileReader.fetchFilesRecursivelyFromPath(sourcePath)
paths <- copyMultipleFiles(files)
} yield paths
}
Expand Down Expand Up @@ -125,3 +123,5 @@ class FileWriter {
}
.leftMap(e => IOException(s"Error copying resources from $jarUrl to directory $output", Some(e)))
}

object FileWriter extends FileWriter
13 changes: 6 additions & 7 deletions core/src/main/scala/sbtorgpolicies/io/ReplaceTextEngine.scala
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,24 @@ class ReplaceTextEngine {

import ReplaceTextEngine._
import textSyntax._

val fileReader: FileReader = new FileReader
val fileWriter: FileWriter = new FileWriter
import FileReader._
import FileWriter._

final def replaceBlocks(
startBlockRegex: Regex,
endBlockRegex: Regex,
replacements: Map[String, String],
in: List[File],
isFileSupported: (File) => Boolean): IOResult[List[ProcessedFile]] =
fileReader.fetchFilesRecursively(in, isFileSupported) map { files =>
fetchFilesRecursively(in, isFileSupported) map { files =>
files.map(replaceBlocksInFile(Some(startBlockRegex), Some(endBlockRegex), replacements, _))
}

final def replaceTexts(
replacements: Map[String, String],
in: List[File],
isFileSupported: (File) => Boolean): IOResult[List[ProcessedFile]] =
fileReader.fetchFilesRecursively(in, isFileSupported) map { files =>
fetchFilesRecursively(in, isFileSupported) map { files =>
files.map(replaceBlocksInFile(None, None, replacements, _))
}

Expand All @@ -58,10 +57,10 @@ class ReplaceTextEngine {
in: File): ProcessedFile = {

val result: IOResult[Boolean] = for {
content <- fileReader.getFileContent(in.getAbsolutePath)
content <- getFileContent(in.getAbsolutePath)
replaced = replaceContent(content, startBlockRegex, endBlockRegex, replacements)
modified <- if (replaced != content) {
fileWriter.writeContentToFile(replaced, in.getAbsolutePath).map(_ => true)
writeContentToFile(replaced, in.getAbsolutePath).map(_ => true)
} else Right(false)
} yield modified

Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/sbtorgpolicies/libraries.scala
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ object libraries {
"monocle" -> "1.4.0",
"mockito" -> "2.11.0",
"moultingyaml" -> "0.4.0",
"newrelic" -> "3.43.0",
"newrelic" -> "3.44.0",
"paradise" -> "2.1.0",
"pbdirect" -> "0.0.6",
"pcplod" -> "1.2.1",
Expand Down
6 changes: 3 additions & 3 deletions core/src/main/scala/sbtorgpolicies/model.scala
Original file line number Diff line number Diff line change
Expand Up @@ -117,15 +117,15 @@ object model {

object sbtV {
val `0.13`: String = "0.13.16"
val `1.0`: String = "1.0.2"
val `1.0`: String = "1.0.3"

val crossSbtVersions: List[String] = List(`0.13`, `1.0`)
}

object scalac {

val `2.10`: String = "2.10.6"
val `2.11`: String = "2.11.11"
val `2.10`: String = "2.10.7"
val `2.11`: String = "2.11.12"
val `2.12`: String = "2.12.4"
val `2.13`: String = "2.13.0-M2"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ import cats.syntax.validated._
import sbtorgpolicies.exceptions.ValidationException
import sbtorgpolicies.io.FileReader

class FileValidation {

val fileReader: FileReader = new FileReader
class FileValidation(fileReader: FileReader = FileReader) {

def validateFile(inputPath: String, validations: ValidationFunction*): ValidationResult =
fileReader.getFileContent(inputPath) match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ import scala.util.matching.Regex

trait ValidationFunctions {

val yamlOps = new YamlOps

def requiredStrings(list: List[String]): ValidationFunction = {

def validateList(content: String, list: List[String])(
Expand Down Expand Up @@ -77,7 +75,7 @@ trait ValidationFunctions {

def validateCrossScalaVersions(content: String): ValidationResult = {

val travisCrossScalaVersion: List[String] = yamlOps.getFields(content, "scala").toList.sorted
val travisCrossScalaVersion: List[String] = YamlOps.getFields(content, "scala").toList.sorted
if (travisCrossScalaVersion == crossScalaVersions.sorted) ().valid
else
ValidationException(
Expand All @@ -86,7 +84,7 @@ trait ValidationFunctions {
}

def validateTasks(content: String, section: String, expectedTasks: Seq[String]): ValidationResult = {
val tasksInTravisFile: List[String] = yamlOps.getFields(content, section).toList
val tasksInTravisFile: List[String] = YamlOps.getFields(content, section).toList

if (expectedTasks.forall(expectedTsk => tasksInTravisFile.exists(_.contains(expectedTsk))))
().valid
Expand Down
4 changes: 3 additions & 1 deletion core/src/main/scala/sbtorgpolicies/rules/YamlOps.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import net.jcazevedo.moultingyaml._
import sbtorgpolicies.exceptions.YamlException
import sbtorgpolicies.rules.syntax._

class YamlOps {
trait YamlOps {

def parseContent(str: String): YamlResult[YamlObject] =
Either
Expand All @@ -35,3 +35,5 @@ class YamlOps {
} yield yamlValues

}

object YamlOps extends YamlOps
8 changes: 4 additions & 4 deletions core/src/main/scala/sbtorgpolicies/rules/syntax.scala
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ object syntax {

final class YamlResultOps(result: YamlResult[Seq[YamlValue]]) {

def toList: List[String] = result match {
case Right(yamlValues) => yamlValues.flatMap(_.convertTo[List[String]]).toList
case _ => Nil
}
def toList: List[String] = mapToString.getOrElse(Nil)

def mapToString: YamlResult[List[String]] =
result.map(_.flatMap(_.convertTo[List[String]]).toList)

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,7 @@ import sbtorgpolicies.templates.utils._

import scala.util.matching.Regex

class TemplatesEngine {

val fileReader: FileReader = new FileReader

val fileWriter: FileWriter = new FileWriter
class TemplatesEngine(fileReader: FileReader = FileReader, fileWriter: FileWriter = FileWriter) {

def replaceFileContentsWith(inputPath: String, replacements: Replacements): IOResult[String] =
fileReader.withFileContent(inputPath, replaceWith(_, replacements))
Expand Down
5 changes: 2 additions & 3 deletions core/src/test/scala/sbtorgpolicies/github/GitHubOpsTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,8 @@ class GitHubOpsTest extends TestOps {
override lazy val pullRequests: GHPullRequests = ghPullRequests
}

val gitHubOps = new GitHubOps(owner, repo, None) {
override val fileReader: FileReader = fileReaderMock
override val gh: Github = githubMock
val gitHubOps = new GitHubOps(owner, repo, None, fileReaderMock) {
override val gh: Github = githubMock
}
(gitHubOps, fileReaderMock, ghGitData, ghPullRequests, ghRepos, ghUsers)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,7 @@ class FileValidationTest extends TestOps with OneInstancePerTest {

val mockFileReader: FileReader = mock[FileReader]

val fileValidation: FileValidation = new FileValidation {

override val fileReader: FileReader = mockFileReader
}
val fileValidation: FileValidation = new FileValidation(mockFileReader)

test("FileValidation.validateFile works as expected") {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,7 @@ class TemplatesEngineTest extends TestOps {
val mockFileReader: FileReader = stub[FileReader]
val mockFileWriter: FileWriter = stub[FileWriter]

val templatesEngine: TemplatesEngine = new TemplatesEngine {

override val fileReader: FileReader = mockFileReader

override val fileWriter: FileWriter = mockFileWriter
}
val templatesEngine: TemplatesEngine = new TemplatesEngine(mockFileReader, mockFileWriter)

(templatesEngine, mockFileReader, mockFileWriter)
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/sbtorgpolicies/settings/DefaultSettings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ trait DefaultSettings extends AllSettings {
getEnvVarOrElse("TRAVIS_PULL_REQUEST") == "false"
},
orgAfterCISuccessTaskListSetting := List(
orgUpdateDocFiles.asRunnableItem,
depUpdateDependencyIssues.asRunnableItem,
orgPublishReleaseTask.asRunnableItem(allModules = true, aggregated = false, crossScalaVersions = true)
orgPublishReleaseTask.asRunnableItem(allModules = true, aggregated = false, crossScalaVersions = true),
orgUpdateDocFiles.asRunnableItem
) ++ guard(((baseDirectory in LocalRootProject).value / "docs").exists() && !version.value.endsWith("-SNAPSHOT"))(
defaultPublishMicrosite),
orgScriptTaskListSetting := List(
Expand Down
Loading