djspiewak / sbt-spiewak

A plugin which represents my personal SBT project baseline
Apache License 2.0
53 stars 20 forks source link

Enable MiMa for all platforms #68

Closed armanbilge closed 2 years ago

armanbilge commented 3 years ago

Now that many more typelevel projects are crossing for JS with platform-specific sources, guaranteeing bincompat is more important than ever. In case there is any doubt, there is MiMa for Scala.js (as well as Native I assume):

.sjsir files have binary compatibility guarantees similar to those of .class files. With a few exceptions related to JS interop annotations, if changes to a .class files are binary compatible, then the changes applied to the corresponding .sjsir files are also binary compatible. This allows Scala.js codebases to meaningfully use MiMa to check that they do not break their binary API.

Via https://www.scala-lang.org/2020/11/03/scalajs-for-scala-3.html.

sbt-spiewak currently disables MiMa for non-JVM platforms. I think this is the right bit to change?

armanbilge commented 2 years ago

See https://github.com/http4s/http4s-dom/pull/34 for my experience enabling MiMa for Scala.js, I think will need some additional adjustments besides this PR.

armanbilge commented 2 years ago

Closing, b/c there are deeper issues and I don't really know what I'm doing 😅 see https://github.com/djspiewak/sbt-spiewak/issues/76.