Search code examples
scalascalameta

Scala Meta: Confused about the versions


In the tutorial you find 2 versions for Scala-Meta.

lazy val MetaVersion = "3.7.2"
lazy val MetaVersion1 = "1.8.0"

I am a bit confused as they seem to refer the same project:

lazy val scalameta1 = "org.scalameta" %% "scalameta" % MetaVersion1
lazy val scalameta = "org.scalameta" %% "scalameta" % MetaVersion

Can somebody point out the difference, and when you use which one of these?

The Tutorial only mentions "3.7.2", but with that I got the exception

ERROR: new-style ("inline") macros require scala.meta

explained here: new-style-inline-macros-require-scala-meta


Solution

  • 3.7.2 is the current version of scalameta (actually already 3.7.4).

    1.8.0 is the last version of scalameta that worked with scalameta macro annotations through scalameta paradise compiler plugin (1 2 3).

    So if you need the latest version of scalameta you use 3.7.4. If you need scalameta macros you use 1.8.0.