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

2.11.x failing due to missing spray-json-shapeless dependency for ensime-server #119

Closed
wants to merge 22 commits into from

Conversation

SethTisue
Copy link
Member

https://scala-ci.typesafe.com/job/scala-2.11.x-integrate-community-build/49/console shows the failure:

Missing dependency: the library com.github.fommil#spray-json-shapeless is not provided (in space "default") by any project in this configuration file`

the cause is https://github.com/ensime/ensime-server/commit/88cd6e33e946c472e1a1c3477942425211ac6974

perhaps it will be straightforward to just add the dependency? we'll see. spray-json-shapeless's dependencies are here: https://github.com/fommil/spray-json-shapeless/blob/master/build.sbt

@SethTisue SethTisue self-assigned this Jul 22, 2015
@SethTisue SethTisue mentioned this pull request Jul 22, 2015
@SethTisue
Copy link
Member Author

@lrytz
Copy link
Member

lrytz commented Jul 23, 2015

specs2 failed, because there was a change in shapeless that changed ToList from a trait to a type alias (milessabin/shapeless@dc9bc0d).

It seems you need to update specs2 to include etorreborre/specs2@0b08208

scala> trait ToTraversable[L, M[_]] { type Lub; type Out = M[Lub] }
warning: there was one feature warning; re-run with -feature for details
defined trait ToTraversable

scala> type Aux[T, M[_], Lub0] = ToTraversable[T,M] { type Lub = Lub0 }
warning: there was one feature warning; re-run with -feature for details
defined type alias Aux

scala> type ToList[L, Lub] = Aux[L, List, Lub]
defined type alias ToList

scala> new ToList[Int, Int] {}
<console>:15: error: class type required but ToTraversable[Int,List]{type Lub = Int} found
       new ToList[Int, Int] {}
           ^

@SethTisue SethTisue force-pushed the issue/119 branch 7 times, most recently from 4408740 to a2a35c2 Compare July 28, 2015 18:37
SethTisue and others added 16 commits July 29, 2015 11:35
ensime requires spray-shapeless-json;
spray-shapeless-json requires a newer Shapeless than we were using;
specs2 doesn't work with that new Shapeless, so we upgrade it;
the new specs2 requires scalaz-stream;
scalaz-stream requires scodec-bits;
the scodec-bits build uses jmh-plugin which requires JDK 7+,
  so we must use a fork with the plugin removed;
and a partridge in a pear tree.
to see if it makes this error go away:
java.lang.BootstrapMethodError:
  java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1
the changes in Adriaan's fork had to do with sbt plugins, which we
are now using binary dependencies for instead of building from source,
so maybe the fork isn't needed.  also, scalariform has a new maintainer
@SethTisue
Copy link
Member Author

for 2.11.x, this was resolved by #126 simply by not upgrading ENSIME.

I plan to revisit this (am already revisiting it, on a wip branch) in the context of 2.11.x-jdk8. 2.11.x(jdk6) is more legacy at this point, more something we're content to freeze versions in.

@SethTisue SethTisue closed this Aug 25, 2015
This was referenced Aug 25, 2015
@SethTisue
Copy link
Member Author

improvements to this are in #147

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

Successfully merging this pull request may close these issues.

3 participants