Skip to content

Commit 7f7601c

Browse files
authored
Update Scala Native to 0.5 and drop Scala 2.11 (#1358)
1 parent 332b465 commit 7f7601c

File tree

8 files changed

+39
-66
lines changed

8 files changed

+39
-66
lines changed

.github/workflows/ci.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
fail-fast: false
2525
matrix:
2626
os: [ubuntu-latest]
27-
scala: [2.11.12, 2.12.17, 2.13.11]
27+
scala: [2.12.19, 2.13.14]
2828
java: [temurin@8]
2929
platform: [jvm, js, native]
3030
runs-on: ${{ matrix.os }}
@@ -77,7 +77,7 @@ jobs:
7777
strategy:
7878
matrix:
7979
os: [ubuntu-latest]
80-
scala: [2.13.11]
80+
scala: [2.13.14]
8181
java: [temurin@8]
8282
runs-on: ${{ matrix.os }}
8383
steps:

README.md

+6-7
Original file line numberDiff line numberDiff line change
@@ -120,20 +120,20 @@ resolvers ++= Seq(
120120
[ci]: https://travis-ci.org/milessabin/shapeless
121121

122122

123-
Builds are available for Scala 2.11.x, 2.12.x and 2.13.x. The main line of development for
124-
shapeless 2.3.3 is Scala 2.13.2.
123+
Builds are available for Scala 2.12 and 2.13.
124+
The main line of development for shapeless 2.3.x is Scala 2.13.
125125

126126
```scala
127-
scalaVersion := "2.13.5"
127+
scalaVersion := "2.13.14"
128128

129129
libraryDependencies ++= Seq(
130-
"com.chuusai" %% "shapeless" % "2.3.3"
130+
"com.chuusai" %% "shapeless" % "2.3.11"
131131
)
132132
```
133133

134134
For using snapshots of Shapeless you should add,
135135
```scala
136-
scalaVersion := "2.13.5"
136+
scalaVersion := "2.13.14"
137137

138138
libraryDependencies ++= Seq(
139139
"com.chuusai" %% "shapeless" % "2.4.0-SNAPSHOT"
@@ -163,8 +163,7 @@ releases][olderusage] on the shapeless wiki.
163163

164164
## Building shapeless
165165

166-
shapeless is built with SBT 1.3.10 or later, and its main branch is built with Scala 2.13.2 by default but also
167-
cross-builds for 2.11.12 and 2.12.12.
166+
shapeless is built with SBT 1.x and its main branch is built with Scala 2.13 by default but also cross-builds for 2.12.
168167

169168
[namehashing]: https://github.com/sbt/sbt/issues/1640
170169

build.sbt

+4-16
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@ import com.typesafe.tools.mima.core.*
33
import sbtcrossproject.CrossPlugin.autoImport.crossProject
44
import sbtcrossproject.CrossProject
55

6-
val Scala211 = "2.11.12"
7-
val Scala212 = "2.12.17"
8-
val Scala213 = "2.13.11"
6+
val Scala212 = "2.12.19"
7+
val Scala213 = "2.13.14"
98

109
commonSettings
1110
noPublishSettings
1211
crossScalaVersions := Nil
1312

1413
ThisBuild / organization := "com.chuusai"
1514
ThisBuild / scalaVersion := Scala213
16-
ThisBuild / crossScalaVersions := Seq(Scala211, Scala212, Scala213)
15+
ThisBuild / crossScalaVersions := Seq(Scala212, Scala213)
1716
ThisBuild / mimaFailOnNoPrevious := false
1817
ThisBuild / versionScheme := Some("pvp")
1918

@@ -193,7 +192,7 @@ lazy val examples = crossProject(JSPlatform, JVMPlatform, NativePlatform)
193192
.configureCross(configureJUnit)
194193
.dependsOn(core)
195194
.settings(moduleName := "examples")
196-
.settings(libraryDependencies += "org.scala-lang.modules" %%% "scala-parser-combinators" % "2.2.0")
195+
.settings(libraryDependencies += "org.scala-lang.modules" %%% "scala-parser-combinators" % "2.4.0")
197196
.settings(runAllIn(Compile))
198197
.settings(commonSettings)
199198
.settings(noPublishSettings)
@@ -248,17 +247,6 @@ lazy val mimaSettings = Seq(
248247
ProblemFilters.exclude[DirectMissingMethodProblem]("shapeless.package.macrocompat"),
249248
// inaccessible interface change
250249
ProblemFilters.exclude[MissingClassProblem]("shapeless.CaseClassMacros$PatchedContext$2$PatchedLookupResult"),
251-
// methods added to traits (not binary compatible on Scala 2.11)
252-
ProblemFilters.exclude[ReversedMissingMethodProblem]("shapeless.LowPriorityUnaryTCConstraint.hnilUnaryTC"),
253-
ProblemFilters.exclude[ReversedMissingMethodProblem]("shapeless.SingletonTypeUtils.isSymbolLiteral"),
254-
ProblemFilters.exclude[ReversedMissingMethodProblem]("shapeless.CaseClassMacros.mkAttributedRef"),
255-
ProblemFilters.exclude[ReversedMissingMethodProblem]("shapeless.CaseClassMacros.numNonCaseParamLists"),
256-
ProblemFilters.exclude[ReversedMissingMethodProblem]("shapeless.ReprTypes.objectRef"),
257-
ProblemFilters.exclude[ReversedMissingMethodProblem]("shapeless.IsCons1Macros.mkPackUnpack"),
258-
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("shapeless.CaseClassMacros.varargTpt"),
259-
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("shapeless.CaseClassMacros.varargTC"),
260-
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("shapeless.IsCons1Macros.varargTpt"),
261-
ProblemFilters.exclude[InheritedNewAbstractMethodProblem]("shapeless.IsCons1Macros.varargTC")
262250
)
263251
)
264252

core/shared/src/test/scala/shapeless/generic.scala

+23
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,16 @@ package GenericTestsAux {
177177
@generateGeneric
178178
object A
179179
}
180+
181+
case class WrongApplySignature private(value: String)
182+
object WrongApplySignature {
183+
def apply(v: String): Either[String, WrongApplySignature] = scala.Left("No ways")
184+
}
185+
186+
case class CCWithCustomUnapply(x: Int, y: String)
187+
object CCWithCustomUnapply {
188+
def unapply(cc: CCWithCustomUnapply): Option[(Int, String, String)] = None
189+
}
180190
}
181191

182192
class GenericTests {
@@ -878,6 +888,19 @@ class GenericTests {
878888
assertEquals(Priv("secret"), gen.from(Inl(Priv("secret"))))
879889
assertEquals(Inl(Priv("secret")), gen.to(Priv("secret")))
880890
}
891+
892+
@Test
893+
def testCCWithCustomUnapply(): Unit = {
894+
illTyped("Generic[WrongApplySignature]")
895+
val cc = CCWithCustomUnapply(23, "foo")
896+
val gen = Generic[CCWithCustomUnapply]
897+
val r = gen.to(cc)
898+
val f = gen.from(13 :: "bar" :: HNil)
899+
assertTypedEquals[Int :: String :: HNil](23 :: "foo" :: HNil, r)
900+
typed[CCWithCustomUnapply](f)
901+
assertEquals(13, f.x)
902+
assertEquals("bar", f.y)
903+
}
881904
}
882905

883906
package GenericTestsAux2 {

core/shared/src/test/scala_2.13+/shapeless/GenericTests213.scala

-37
This file was deleted.

project/Boilerplate.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ object Boilerplate {
490490
val `a:T..n:T` = synVals.map(_ + ":T").mkString(", ")
491491
val commonImplicits = "factory: Factory[T, CC[T]], ev: AdditiveCollection[CC[T]]"
492492
val implicits = scalaBinaryVersion match {
493-
case "2.11" | "2.12" => commonImplicits
493+
case "2.12" => commonImplicits
494494
case _ => s"dis: DefaultToIndexedSeq[CC], $commonImplicits"
495495
}
496496

project/build.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version=1.9.9
1+
sbt.version=1.10.0

project/plugins.sbt

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-osgi" % "0.
66
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.12.0")
77
addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.7")
88
addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "3.0.2")
9-
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.12.0")
10-
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.9")
9+
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0")
10+
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.1")
1111
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2")
1212
addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2")
1313
addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.14.2")

0 commit comments

Comments
 (0)