-
-
Notifications
You must be signed in to change notification settings - Fork 24
Setup MiMa for finagle #430
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
project/FinaglePlugin.scala
Outdated
| libraryDependencies += module, | ||
| mimaCurrentClassfiles := { | ||
| (Compile / dependencyClasspath).value.seq.map(_.data).find(_.getName.startsWith(module.name)).get | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A little hacky but seems to work :)
Codecov Report
@@ Coverage Diff @@
## main #430 +/- ##
=======================================
Coverage 90.32% 90.32%
=======================================
Files 7 7
Lines 124 124
Branches 2 2
=======================================
Hits 112 112
Misses 12 12 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
| import com.typesafe.tools.mima.plugin.SbtMima | ||
| import org.typelevel.sbt.NoPublishPlugin | ||
|
|
||
| object FinaglePlugin extends AutoPlugin { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For every finagle module you want to check bincompat of, this plugin creates a synthetic (no-publish) project for it in your build. Each of these projects is configured for MiMa, except we set mimaCurrentClassfiles to the current finagle dependency (rather than the project's compile output, which is irrelevant).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then, all of these projects are aggregated into rootFinagle.
|
This is pretty cool. Looking forward to trying it out for real when they update upstream—hopefully it will be able to tell us whether whatever version is next (I was expecting |
| lazy val finagleVersion = versions.head | ||
| } | ||
|
|
||
| /* When a new Finagle version is released, add it to the beginning of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@armanbilge does this comment seem accurate to you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I believe so!
|
I tried setting |
Give it a try with
rootFinagle/mimaReportBinaryIssues:)