Skip to content

Commit

Permalink
Merge pull request #447 from tgodzik/fix-mdoc
Browse files Browse the repository at this point in the history
Make older Scala 2.12 versions work
  • Loading branch information
tgodzik authored Jan 18, 2021
2 parents 292e363 + 4543724 commit 3049439
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 2 deletions.
17 changes: 16 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import sbt.librarymanagement.CrossVersion
import scala.collection.mutable

def scala212 = "2.12.13"
def scala212Legacy = "2.12.12"
def scala211 = "2.11.12"
def scala213 = "2.13.4"
def scala3 = List("3.0.0-M3", "3.0.0-M2")
Expand Down Expand Up @@ -36,6 +38,8 @@ def multiScalaDirectories(projectName: String) =
partialVersion.collect { case (major, minor) =>
result += base / s"scala-$major.$minor"
}

result += base / s"scala-${scalaVersion.value}"
if (isScala3.value) {
result += base / "scala-3"
}
Expand Down Expand Up @@ -64,7 +68,7 @@ def crossSetting[A](
inThisBuild(
List(
scalaVersion := scala212,
crossScalaVersions := List(scala212, scala211, scala213) ::: scala3,
crossScalaVersions := List(scala212, scala212Legacy, scala211, scala213) ::: scala3,
organization := "org.scalameta",
licenses := Seq(
"Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")
Expand Down Expand Up @@ -114,6 +118,13 @@ val V = new {
val scalacheck = "1.15.2"
}

val crossVersionLegacy = Def.setting {
CrossVersion.binaryWith(
prefix = "",
suffix = if (scalaVersion.value == scala212Legacy) ".12" else ""
)
}

lazy val pprintVersion = Def.setting {
if (scalaVersion.value.startsWith("2.11")) "0.5.4"
else "0.6.0"
Expand Down Expand Up @@ -152,6 +163,7 @@ lazy val runtime = project
sharedSettings,
moduleName := "mdoc-runtime",
unmanagedSourceDirectories.in(Compile) ++= multiScalaDirectories("runtime").value,
crossVersion := crossVersionLegacy.value,
libraryDependencies ++= crossSetting(
scalaVersion.value,
if2 = List(
Expand All @@ -172,6 +184,7 @@ lazy val mdoc = project
.settings(
sharedSettings,
unmanagedSourceDirectories.in(Compile) ++= multiScalaDirectories("mdoc").value,
crossVersion := crossVersionLegacy.value,
moduleName := "mdoc",
mainClass in assembly := Some("mdoc.Main"),
assemblyJarName in assembly := "mdoc.jar",
Expand Down Expand Up @@ -329,6 +342,7 @@ lazy val plugin = project
managedResourceDirectories.in(Compile).value.head / "sbt-mdoc.properties"
val props = new java.util.Properties()
props.put("version", version.value)
props.put("scala212Legacy", scala212Legacy)
IO.write(props, "sbt-mdoc properties", out)
List(out)
},
Expand All @@ -352,6 +366,7 @@ lazy val js = project
.in(file("mdoc-js"))
.settings(
sharedSettings,
crossVersion := crossVersionLegacy.value,
crossScalaVersions --= scala3,
moduleName := "mdoc-js",
libraryDependencies ++=
Expand Down
1 change: 1 addition & 0 deletions mdoc-sbt/src/main/scala/mdoc/BuildInfo.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import java.util.Properties
object BuildInfo {
def version: String =
props.getProperty("version", "0.8.0-SNAPSHOT")
def scala212Legacy: String = props.getProperty("scala212Legacy", "2.12.12")

private lazy val props: Properties = {
val props = new Properties()
Expand Down
11 changes: 10 additions & 1 deletion mdoc-sbt/src/main/scala/mdoc/MdocPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ object MdocPlugin extends AutoPlugin {
}
}

def compatibleScalaVersion = Def.setting {
scalaVersion.value.split('.').take(3).map(_.toInt) match {
case Array(2, 12, minor) if minor <= 12 => BuildInfo.scala212Legacy
case _ => scalaBinaryVersion.value
}
}

override def projectSettings: Seq[Def.Setting[_]] =
List(
mdocIn := baseDirectory.in(ThisBuild).value / "docs",
Expand All @@ -91,7 +98,9 @@ object MdocPlugin extends AutoPlugin {
val isJS = mdocJS.value.isDefined
if (mdocAutoDependency.value) {
val suffix = if (isJS) "-js" else ""
List("org.scalameta" %% s"mdoc$suffix" % BuildInfo.version)
List(
"org.scalameta" % s"mdoc${suffix}_${compatibleScalaVersion.value}" % BuildInfo.version
)
} else {
List()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mdoc.internal.markdown

import scala.tools.nsc.Settings
import scala.tools.nsc.reporters.AbstractReporter
import scala.reflect.internal.util.Position

trait VersionSpecificFilteringReporter extends AbstractReporter { self: FilterStoreReporter =>
override def display(pos: Position, msg: String, severity: Severity): Unit =
add(pos, msg, severity)
override def displayPrompt(): Unit = ()
}

0 comments on commit 3049439

Please sign in to comment.