-
-
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
add back the implicit method as explicit to maintain BC #2471
Conversation
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.
Looks good, but I'm going to be super pedantic and go through the rest just so we don't need a 1.3.2 for this. Stay tuned.
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.
I tested all the other MiMa exceptions, and those are sound.
We can also remove this exception, since it shouldn't have been:
exclude[DirectMissingMethodProblem]("cats.data.OptionTInstances.catsDataMonadForOptionT")
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.
Yep, perfect.
@rossabaker I just removed the exception |
0a32f44
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.
It’s dangerous to add to the Mima exceptions I guess.
We could have automated test on exceptions. Compile this in an unpublished cats module that builds against the desired cats-core in Provided scope: object MimaExceptions {
def isBinaryCompatible = {
cats.data.OptionT.catsDataTraverseForOptionT[List]
cats.data.Kleisli.catsDataCommutativeArrowForKleisliId
cats.data.OptionT.catsDataMonoidKForOptionT[List]
cats.data.OptionT.catsDataMonoidForOptionT[List, Int]
cats.data.Kleisli.catsDataMonadForKleisliId[Int]
cats.data.Kleisli.catsDataCommutativeArrowForKleisli[Option]
cats.data.Kleisli.catsDataCommutativeFlatMapForKleisli[Option, Int]
cats.data.IRWST.catsDataStrongForIRWST[List, Int, Int, Int]
cats.data.OptionT.catsDataMonadErrorMonadForOptionT[List]
true
}
} And then the test, which depends on the unpublished module: class MimaExceptionsTest {
test("is binary compatible") {
MimaExceptions.isBinaryCompatible
}
} It's more or less what I did in a side repo to verify the others. And it would have caught this one. |
Note: I don't want the above test idea to slow the bugfix. If others like the idea, we can always add it after 1.3.1. |
Codecov Report
@@ Coverage Diff @@
## master #2471 +/- ##
==========================================
- Coverage 95.39% 95.38% -0.02%
==========================================
Files 357 357
Lines 6516 6517 +1
Branches 288 282 -6
==========================================
Hits 6216 6216
- Misses 300 301 +1
Continue to review full report at Codecov.
|
* add back the implicit method as explicit to maintain BC * Update build.sbt * Please scalastyle
No description provided.