-
Notifications
You must be signed in to change notification settings - Fork 138
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 alleycats-core, cats-core to 2.7.0 #583
Update alleycats-core, cats-core to 2.7.0 #583
Conversation
Codecov Report
@@ Coverage Diff @@
## master #583 +/- ##
=======================================
Coverage 95.14% 95.14%
=======================================
Files 65 65
Lines 1134 1134
Branches 8 8
=======================================
Hits 1079 1079
Misses 55 55
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report at Codecov.
|
Needs a compat review before merge, it bump the cats-kernel version up to |
@cchantep are you sure about this merge? This could have created problems for DataBricks / earlier Spark releases... |
I was curious what your concerns were here? Cats 2.7.0 is binary-compatible with Cats 2.1.1. |
@armanbilge Spark 3.0.x and Spark 3.1.x depend on |
What? 🤯 yeah, you should definitely be checking this before merging |
@armanbilge oh yea, check this out https://github.com/apache/spark/blob/v3.1.3/dev/deps/spark-deps-hadoop-2.7-hive-2.3#L30 I believe it's due to |
@pomadchin actually it might be okay. I forgot that actually cats-kernel 2.x maintains bincompat with cats-kernel 1.x. Actually, we check this in CI: I think the history says that Cats 2.x was only because of breaking changes to laws modules, according to https://gist.github.com/djspiewak/b8f2b4547951442102488964bc351cf9#3-communicate-everything. So, it's probably fine actually. (In theory, a |
@armanbilge it is def not okay in some cases, I think it is enough to add circe and submit a job on a 3.1.x cluster to see the kernel issue. I don't remember the details, but I had to shade kernel at some point here as well as shapeless, due to runtime errors. |
Okay I've done a bit for the history digging to add more context: locationtech/geotrellis#3397 && typelevel/cats#3628 Hopefully it is fine, but just checking for sanity could be good enough. We'll see is it good enough by checking the users feedback I guess :D |
Wow, interesting. If you have a chance I'd be curious to see what those errors are. For it to be possible, I think it means that cats-kernel 2.0.0-M4 broke bincompat with cats-kernel 1.x, then fixed it again before release 2.0.0 final. But it's possible actually. Edit: or, it could be that 2.0.0-M4 add some new methods that they then remove from 2.0.0 final. Also possible. |
@pomadchin thanks for the links.
Ahhh. Well IIUC it explains everything. Cats 2.7.0 is bincompat with Cats 2.0.0 (and probably M4). So that means you can use 2.7.0 instead of 2.0.0. But, if I read that correctly, it says that Spark will force 2.0.0-M4 no matter what version of Cats you choose? And 2.0.0 is not bincompat with 2.7.0. You cannot replace 2.7.0 with 2.0.0(-M4). Is that really how it works? |
@armanbilge yes, that is the default behavior, there are flags to overcome it (to choose the shipped dep with the jar over the class path dep) but it may have consequences / issues. Really the only 100% to wrokaround it is assembly + shading. The alternative could be to bump your cluster deps up manually (thx we have K8S) and hope that it works. |
The build is ok, so if the build is not covering properly that, feel free to revert/update. |
2 similar comments
The build is ok, so if the build is not covering properly that, feel free to revert/update. |
The build is ok, so if the build is not covering properly that, feel free to revert/update. |
Updates
from 2.6.1 to 2.7.0.
GitHub Release Notes - Changelog - Version Diff
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 me in the comments below.
Configure Scala Steward for your repository with a
.scala-steward.conf
file.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: library-update, early-semver-minor, semver-spec-minor