sbt / sbt-ci-release

sbt plugin to automate Sonatype releases from GitHub Actions
Apache License 2.0
283 stars 76 forks source link

[Idea] Binary compatibility check #78

Closed jatcwang closed 4 years ago

jatcwang commented 4 years ago

Binary compatibility is important for Scala libs and currently everyone is doing their own setup. I think this plugin can provide a good default to help catch unexpected breakages. By making version number representative of binary compatibility, day-to-day life will be much nicer for a Scala dev (e.g. by using https://www.scala-lang.org/2019/10/17/dependency-management.html)

There are two approaches:

We can implement both and the user can choose what makes senes for their library. WDYT?

olafurpg commented 4 years ago

Thank you for reporting! I believe that MiMa is the is best way to enforce binary compatibility. I’m not sure how much this plugin can help improve the situation besides automatically adding a dependency on sbt-mima 🤔

ChristopherDavenport commented 4 years ago

I created sbt-mima-version-check for this reason.

olafurpg commented 4 years ago

@ChristopherDavenport thank you for sharing! I believe binary compatibility checking is outside the scope of this project. I'm happy to merge a PR adding a note/link under the FAQ section recommending an sbt plugin like sbt-mima-version-check to verify binary compatibility between releases.