scala-steward-org / scala-steward

:robot: A bot that helps you keep your projects up-to-date
Apache License 2.0
1.15k stars 496 forks source link

Report binary incompatibilities #815

Open exoego opened 5 years ago

exoego commented 5 years ago

It would be great if Steward report binary incompatibilities on PR using https://github.com/lightbend/mima or something.

exoego commented 5 years ago

I am working on this. To avoid huge conflicts, I will open a PR after my other PRs get merged.

He-Pin commented 3 years ago

@exoego I just come up with this idea too, any progress?

fthomas commented 3 years ago

I guess the idea here is that Scala Steward compares the current version and the proposed version of a dependency with MiMa but I'm wondering how useful such report would be. Imagine MiMa finds incompatibilities and Scala Steward reports them in the PR body. As receiver of this report how would you know that these incompatibilities have negative consequences for your project? Wouldn't you need to check that all your other dependencies and their transitive dependencies aren't affected by the incompatibilities? How would a human do that?

I could imagine that it would make more sense that the project receiving PRs from Scala Steward uses https://github.com/scalacenter/sbt-missinglink as part of its CI which would check automatically that the project is not affected by any binary incompatibilities of the new version.

exoego commented 3 years ago

Ah, I did not know missinglink. It sounds very useful for "application" repos, where use libraries solely.

I initially thought mima is useful for "library", like cats or circe, which is depended by many other projects, therefore binary compatibilities is important. In such repo, authors want to avoid bin-incompatibility when updating dependencies.

It seems that missinglink covers 2nd use case too. I will attempt to make a PR using missinglink.