-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Update sbt-mima-plugin to 0.4.0 #2934
Update sbt-mima-plugin to 0.4.0 #2934
Conversation
seems the new version reports on changes previously as bc
The actual change was from def rethrow[A](fa: F[Either[E, A]]): F[A] to def rethrow[A, EE <: E](fa: F[Either[EE, A]]): F[A] I am not sure if this is a Mima regression or it's a real BC breaking change, we better test with our own bin compat tests. |
f982b8a
to
72333aa
Compare
Codecov Report
@@ Coverage Diff @@
## master #2934 +/- ##
=======================================
Coverage 94.03% 94.03%
=======================================
Files 370 370
Lines 7038 7038
Branches 186 186
=======================================
Hits 6618 6618
Misses 420 420 Continue to review full report at Codecov.
|
So that's an - def rethrow[A](fa: F[Either[E, A]]): F[A]
+ def rethrow[A, EE <: E](fa: F[Either[EE, A]]): F[A] resulted in the method signature diff of: -(Lcats/MonadError<TF;TE;>;)TF;
+(Lcats/MonadError<TF;-TE;>;)TF; Does that signature diff make sense? Is it a problem? If you want to unblock the PR, as documented in https://github.com/lightbend/mima/releases/tag/0.4.0, you can ignore all |
cc @raboof, FYI and in case you have more insights |
The fact that MiMa now flags when the generic signature changes is intentional. Such a signature change is not necessarily incompatible, but flagged to err on the safe side and also catch unintentional changes. For example, a change from The You could also indeed just exclude all such warnings with Perhaps we should expand on this a bit in https://github.com/lightbend/mima/blob/master/core/src/main/scala/com/typesafe/tools/mima/core/Problems.scala#L109 and make that easier to find? |
It looks like the diff change is actually: - def rethrow(implicit F: MonadError[F, E]): F[A] = F.rethrow(fea)
+ def rethrow(implicit F: MonadError[F, _ >: E]): F[A] = (from 1745ea1) So the Is it safe for MiMa to assume that if a generic signature change is just going from invariant to covariant or contravariant then it's safe? The idea is that if the variance changed in the class ( Or maybe MiMa shouldn't get involved in the checking variance changes... |
Not generally - even if it could, I think mima should still flag it to manually verify it's an intentional change. |
Updates com.typesafe:sbt-mima-plugin from 0.3.0 to 0.4.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention @scala-steward in the comments below.
Have a fantastic day writing Scala!
Ignore future updates
Add this to your
.scala-steward.conf
file to ignore future updates of this dependency:labels: semver-minor