{"action":"created","issue":{"url":"https://api.github.com/repos/scala-exercises/exercises-cats/issues/39","repository_url":"https://api.github.com/repos/scala-exercises/exercises-cats","labels_url":"https://api.github.com/repos/scala-exercises/exercises-cats/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/scala-exercises/exercises-cats/issues/39/comments","events_url":"https://api.github.com/repos/scala-exercises/exercises-cats/issues/39/events","html_url":"https://github.com/scala-exercises/exercises-cats/issues/39","id":173596525,"number":39,"title":"Cats version used in examples is outdated","user":{"login":"mttkay","id":102802,"avatar_url":"https://avatars.githubusercontent.com/u/102802?v=3","gravatar_id":"","url":"https://api.github.com/users/mttkay","html_url":"https://github.com/mttkay","followers_url":"https://api.github.com/users/mttkay/followers","following_url":"https://api.github.com/users/mttkay/following{/other_user}","gists_url":"https://api.github.com/users/mttkay/gists{/gist_id}","starred_url":"https://api.github.com/users/mttkay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mttkay/subscriptions","organizations_url":"https://api.github.com/users/mttkay/orgs","repos_url":"https://api.github.com/users/mttkay/repos","events_url":"https://api.github.com/users/mttkay/events{/privacy}","received_events_url":"https://api.github.com/users/mttkay/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-08-27T13:39:30Z","updated_at":"2016-10-17T14:20:36Z","closed_at":"2016-10-17T14:00:27Z","body":"The exercises are 3 major versions behind cats at the time I write this (they use 0.4.x where 0.7.x is the latest release.) Some exercise code does not compile anymore, e.g. due to the removal of the `cats.std` package. I tried updating cats to 0.7 and fixed all the compilation errors (they were mostly due to implicit conversions having moved to `cats.implicits._`) but ran into a chain of binary incompatibilities with the dependencies when executing the tests. I gave up at this point:\r\n\r\n```\r\n  libraryDependencies ++= Seq(\r\n    \"org.typelevel\" %% \"cats-core\" % \"0.7.0\",\r\n    \"com.chuusai\" %% \"shapeless\" % \"2.3.2\",\r\n    \"org.scalatest\" %% \"scalatest\" % \"2.2.6\",\r\n    \"org.scala-exercises\" %% \"exercise-compiler\" % version.value,\r\n    \"org.scala-exercises\" %% \"definitions\" % version.value,\r\n    \"org.scalacheck\" %% \"scalacheck\" % \"1.13.2\",\r\n    \"com.github.alexarchambault\" %% \"scalacheck-shapeless_1.13\" % \"1.1.1\",\r\n    compilerPlugin(\"org.spire-math\" %% \"kind-projector\" % \"0.7.1\")\r\n  )\r\n```\r\nI bumped shapeless (minor), scalatest (patch), scalacheck (minor) and scalacheck-shapeless (minor)\r\n\r\nSomething is still wrong though, as the test runner cannot find a class it's expecting:\r\n\r\n```\r\nAn exception or error caused a run to abort: Implementing class \r\njava.lang.IncompatibleClassChangeError: Implementing class\r\n\tat java.lang.ClassLoader.defineClass1(Native Method)\r\n\tat java.lang.ClassLoader.defineClass(ClassLoader.java:760)\r\n\tat java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)\r\n\tat java.net.URLClassLoader.defineClass(URLClassLoader.java:467)\r\n\tat java.net.URLClassLoader.access$100(URLClassLoader.java:73)\r\n\tat java.net.URLClassLoader$1.run(URLClassLoader.java:368)\r\n\tat java.net.URLClassLoader$1.run(URLClassLoader.java:362)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.net.URLClassLoader.findClass(URLClassLoader.java:361)\r\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:424)\r\n\tat sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)\r\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:357)\r\n\tat catslib.MonoidSpec.<init>(MonoidSpec.scala:9)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:422)\r\n\tat java.lang.Class.newInstance(Class.java:442)\r\n\tat org.scalatest.tools.Runner$.genSuiteConfig(Runner.scala:2644)\r\n\tat org.scalatest.tools.Runner$$anonfun$37.apply(Runner.scala:2461)\r\n\tat org.scalatest.tools.Runner$$anonfun$37.apply(Runner.scala:2460)\r\n\tat scala.collection.immutable.List.map(List.scala:273)\r\n\tat org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:2460)\r\n\tat org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1044)\r\n\tat org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1043)\r\n\tat org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:2722)\r\n\tat org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1043)\r\n\tat org.scalatest.tools.Runner$.run(Runner.scala:883)\r\n\tat org.scalatest.tools.Runner.run(Runner.scala)\r\n\tat org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:138)\r\n\tat org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:28)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:497)\r\n\tat com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)\r\n```\r\nIt appears there is some binary incompatibility between the dependencies somewhere. I also tried replacing ScalaTest with the latest major release 3, but that failed with other obscure errors.\r\n\r\nCould this be related to the exercise-compiler? What does it do and where can one look at it? Any advice or someone else looking into this?"},"comment":{"url":"https://api.github.com/repos/scala-exercises/exercises-cats/issues/comments/254221090","html_url":"https://github.com/scala-exercises/exercises-cats/issues/39#issuecomment-254221090","issue_url":"https://api.github.com/repos/scala-exercises/exercises-cats/issues/39","id":254221090,"user":{"login":"mttkay","id":102802,"avatar_url":"https://avatars.githubusercontent.com/u/102802?v=3","gravatar_id":"","url":"https://api.github.com/users/mttkay","html_url":"https://github.com/mttkay","followers_url":"https://api.github.com/users/mttkay/followers","following_url":"https://api.github.com/users/mttkay/following{/other_user}","gists_url":"https://api.github.com/users/mttkay/gists{/gist_id}","starred_url":"https://api.github.com/users/mttkay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mttkay/subscriptions","organizations_url":"https://api.github.com/users/mttkay/orgs","repos_url":"https://api.github.com/users/mttkay/repos","events_url":"https://api.github.com/users/mttkay/events{/privacy}","received_events_url":"https://api.github.com/users/mttkay/received_events","type":"User","site_admin":false},"created_at":"2016-10-17T14:20:36Z","updated_at":"2016-10-17T14:20:36Z","body":"\\o/"}}
{"actor":{"display_login":"mttkay"}}