playframework / twirl

Twirl is Play's default template engine
Apache License 2.0
549 stars 108 forks source link

Upgrade scala-xml for Scala 2.13 to 2.x releases #526

Closed arixmkii closed 2 years ago

arixmkii commented 2 years ago

Project having twirl-api in dependency tree fails to compile for Scala 2.13 when used with scoverage 2.0 plugin.

https://github.com/playframework/twirl/blob/main/build.sbt#L81

twirl-api has scala-xml frozen for Scala 2.12 and 2.13, but it seems that a way to go is considered to use 1.x versions only for Scala 2.12

This is how it is done in scoverage. https://github.com/scoverage/scalac-scoverage-plugin/blob/5f6a377014afe67a4a806015982dff35ea0b04e3/build.sbt#L167

The error in our builds

[error] java.lang.RuntimeException: found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error] 
[error]     * org.scala-lang.modules:scala-xml_2.13:2.1.0 (early-semver) is selected over {1.2.0}
[error]         +- org.scoverage:scalac-scoverage-reporter_2.13:2.0.0 (depends on 2.1.0)
[error]         +- com.typesafe.play:twirl-api_2.13:1.5.1             (depends on 1.2.0)
[error]         +- com.typesafe.play:play-ws-standalone-xml_2.13:2.1.10 (depends on 1.2.0)

Expected result:

Project compiles w/o errors, when scoverage plugin is used.

I think it needs to be addressed because scoverage is commonly used plugin.

Same issue reported to play-ws https://github.com/playframework/play-ws/issues/687

mkurz commented 2 years ago

Fixed in #525