Skip to content
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

Merged
merged 3 commits into from
Feb 24, 2022

Conversation

scala-steward
Copy link
Contributor

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:

updates.ignore = [ { groupId = "org.typelevel" } ]

labels: library-update, early-semver-minor, semver-spec-minor

@codecov
Copy link

codecov bot commented Nov 28, 2021

Codecov Report

Merging #583 (2ead2b7) into master (29961d5) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #583   +/-   ##
=======================================
  Coverage   95.14%   95.14%           
=======================================
  Files          65       65           
  Lines        1134     1134           
  Branches        8        8           
=======================================
  Hits         1079     1079           
  Misses         55       55           
Flag Coverage Δ
2.12.15 95.14% <ø> (ø)
2.13.8 95.78% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 29961d5...2ead2b7. Read the comment docs.

@pomadchin
Copy link
Member

pomadchin commented Dec 5, 2021

Needs a compat review before merge, it bump the cats-kernel version up to 2.7.0 and spark 3.2 depends on 2.1.1. Hope it does not break anything, but at least shapeless version breaks, mb should be downgraded?

@cchantep cchantep merged commit 689d97e into typelevel:master Feb 24, 2022
@pomadchin
Copy link
Member

@cchantep are you sure about this merge? This could have created problems for DataBricks / earlier Spark releases...

@armanbilge
Copy link
Member

Needs a compat review before merge

I was curious what your concerns were here? Cats 2.7.0 is binary-compatible with Cats 2.1.1.

@pomadchin
Copy link
Member

pomadchin commented Feb 24, 2022

@armanbilge Spark 3.0.x and Spark 3.1.x depend on cats-kernel_2.12-2.0.0-M4 which has some border cases and def not 100% bin compat with stable kernels. But mb it is fine, but I'd just check that all is good at least.

@armanbilge
Copy link
Member

What? 🤯 yeah, you should definitely be checking this before merging

@pomadchin
Copy link
Member

@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 breeze -> spire; this tiny beast lives in the class path and creates issues (sometimes).

@armanbilge
Copy link
Member

armanbilge commented Feb 24, 2022

@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:
https://github.com/typelevel/cats/blob/8363b8775ce2edecadec7526121fcf0558d6edea/build.sbt#L676
https://github.com/typelevel/cats/blob/8363b8775ce2edecadec7526121fcf0558d6edea/build.sbt#L358
https://github.com/typelevel/cats/blob/8363b8775ce2edecadec7526121fcf0558d6edea/build.sbt#L350-L354

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 M milestone could be doing anything, but it's very unlikely IMO.)

@pomadchin
Copy link
Member

@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.

@pomadchin
Copy link
Member

pomadchin commented Feb 24, 2022

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

@armanbilge
Copy link
Member

armanbilge commented Feb 24, 2022

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.

@armanbilge
Copy link
Member

@pomadchin thanks for the links.

all classes on Spark's fixed classpath will be preferred over your own jar.

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?

@pomadchin
Copy link
Member

@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.

@cchantep
Copy link
Collaborator

@cchantep are you sure about this merge? This could have created problems for DataBricks / earlier Spark releases...

The build is ok, so if the build is not covering properly that, feel free to revert/update.

2 similar comments
@cchantep
Copy link
Collaborator

@cchantep are you sure about this merge? This could have created problems for DataBricks / earlier Spark releases...

The build is ok, so if the build is not covering properly that, feel free to revert/update.

@cchantep
Copy link
Collaborator

@cchantep are you sure about this merge? This could have created problems for DataBricks / earlier Spark releases...

The build is ok, so if the build is not covering properly that, feel free to revert/update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants