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

regression: cats-effect breaking in 2.12 build #544

Closed
SethTisue opened this issue May 13, 2017 · 4 comments
Closed

regression: cats-effect breaking in 2.12 build #544

SethTisue opened this issue May 13, 2017 · 4 comments
Assignees

Comments

@SethTisue
Copy link
Member

SethTisue commented May 13, 2017

last green scala/scala@c9c5cfd typelevel/cats-effect@2e0e05c https://scala-ci.typesafe.com/job/scala-2.12.x-integrate-community-build/1501/consoleFull

first red scala/scala@2f52c61 typelevel/cats-effect@36a0fb6 https://scala-ci.typesafe.com/job/scala-2.12.x-integrate-community-build/1502/consoleFull

there are no relevant differences between the two Scala commits

[cats-effect] [info] Compiling 6 Scala sources to /home/jenkins/workspace/scala-2.12.x-integrate-community-build/target-0.9.7-RC1/project-builds/cats-effect-cc33c4d5ccfd25721423dfc7ee213d14e293c8a1/laws/jvm/target/scala-2.12/test-classes...
[cats-effect] [error] /home/jenkins/workspace/scala-2.12.x-integrate-community-build/target-0.9.7-RC1/project-builds/cats-effect-cc33c4d5ccfd25721423dfc7ee213d14e293c8a1/laws/shared/src/test/scala/cats/effect/InstancesTests.scala:36: ambiguous implicit values:
[cats-effect] [error]  both method catsLawArbitraryForStateT in trait ArbitraryInstances0 of type [F[_], S, A](implicit evidence$17: cats.Applicative[F], implicit F: org.scalacheck.Arbitrary[S => F[(S, A)]])org.scalacheck.Arbitrary[cats.data.StateT[F,S,A]]
[cats-effect] [error]  and method arbitraryStateT in class InstancesTests of type [F[_], S, A](implicit arbFSA: org.scalacheck.Arbitrary[F[S => F[(S, A)]]])org.scalacheck.Arbitrary[cats.data.StateT[F,S,A]]
[cats-effect] [error]  match expected type org.scalacheck.Arbitrary[cats.data.StateT[cats.effect.IO,Int,Int]]
[cats-effect] [error]     implicit ec => EffectTests[StateT[IO, Int, ?]].effect[Int, Int, Int])
[cats-effect] [error]                                                          ^
[cats-effect] [error] one error found
[cats-effect] [error] (lawsJVM/test:compileIncremental) Compilation failed
@SethTisue SethTisue self-assigned this May 13, 2017
@SethTisue
Copy link
Member Author

@alexandru @djspiewak this is too involved for me to look into. dealing with by freezing cats-effect at 2e0e05c: 06cf7c6. not sure if you or another cats-effect contributor wants to look into it

@djspiewak
Copy link
Member

@SethTisue I'll take a look at it. Sorry, didn't realize that this was even a thing. The build is clean locally and in our own CI. It looks a lot like this is somehow being compiled against a snapshot of cats-core 1.0; could that be the case?

@SethTisue
Copy link
Member Author

SethTisue commented May 16, 2017

It looks a lot like this is somehow being compiled against a snapshot of cats-core 1.0; could that be the case

yes, the community build builds snapshots of everything, and collectively rewires them all to depend on those just-built snapshots, instead of on previously published artifacts. you can think of it as globally replacing binary dependencies with source dependencies.

the snapshots are usually of a project's development branch....unless a project has specifically been frozen at a particular commit, or we are tracking a stable release branch instead of a development branch.

we are currently tracking the master branch of cats.

when something like this happens, it's often far from clear what the "right" solution is, or even whether it even matters. leaving cats-effect frozen for a while, and then attempting to unfreeze sometime later, might be just fine.

or, maybe the error indicates that cats master is too unstable to track, and we ought to freeze cats instead.

or maybe something about the error is giving you early warning of a compatibility issue you ought to tackle sooner rather than later — I don't know.

@djspiewak
Copy link
Member

yes, the community build builds snapshots of everything, and collectively rewires them all to depend on those just-built snapshots, instead of on previously published artifacts. you can think of it as globally replacing binary dependencies with source dependencies.

That's what I thought it did.

So this is a problem mostly because there are a number of instances that we depend upon which didn't exist in cats 0.9, so they were recreated in cats-effect. I'll poke around over the weekend and see if I can contrive a way of making things compatible with both. I guess that for now, freezing the cats-effect side (by far the less important project) is the right thing to do.

or maybe something about the error is giving you early warning of a compatibility issue you ought to tackle sooner rather than later

This is exactly what it is. :-) But I already knew about this compatibility problem and was simply planning on addressing it once cats-core 1.0 went to RC.

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

No branches or pull requests

2 participants