Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make older Scala 2.12 versions work #447

Merged
merged 1 commit into from
Jan 18, 2021
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
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 = ()
}