-
Notifications
You must be signed in to change notification settings - Fork 59
add a Java 9 community build #609
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
Comments
my experience attempting this locally was that all extractions failed with but then I made an empty sbt project and ran it with Java 9, and sbt/sbt-launcher-package#143 kicked in and showed the "Copying runtime jar." message. I thought then running dbuild again might work, but same error maybe I also need to do something to make sure |
helps, but is not sufficient. adding
|
an old (2014) ticket on Java 9 support dbuild is lightbend-labs/dbuild#155 |
That might be scala/scala-dev#304. The only workaround I know it to refactor the |
this is reproducible outside dbuild simply by switching to Java 9 and then firing up sbt in e.g. the scala-xml or scala-parser-combinators repo two repos that don't have this problem: utest, scalacheck as an experiment, I went into scala-parser-combinators and ripped out sbt-scala-module, after which |
okay, so let's work on that over at scala/sbt-scala-module#33, then come back here later |
a "community build" consisting only of scalacheck (with scala and scala-xml binaries retrieved via aether), at https://github.com/SethTisue/community-builds/blob/wip-2.12.x-jdk9/configs/community.dbuild, is passing locally with the so it looks like dbuild works on Java 9, which is good news, and we'll just need to expand the build a step at a time from here (and work around the |
questioning, all the while, how ambitious it's appropriate to get with this how soon! I could see this staying pretty minimal for a long time until at least:
and probably not even until either or both of these stronger conditions are met:
|
Are we able to set the Java version individually per-project? That would allow us more flexibility: we could build problematic projects on Java 8 and run compliant ones on 9. |
Not at the moment; dbuild uses whatever version of Java is in the environment, and makes no attempt to control it. |
Akka has announced Java 9 support (as of Akka 2.5.6). I'll make Akka a priority next time I do some work on this |
the new build has grown from one to five projects. they are: scala-xml, plus
how I got there: I rebased Jason's backport PR onto 2.10.x (which has other JDK9 stuff merged on it that Jason's PR doesn't include yet) after much trial and error, my efforts to get dbuild+sbt to use a Scala version with "SNAPSHOT" and/or a SHA in the version number failed, so I publish a 2.10.7 snapshot as
and then in my repositories file put:
since as @dwijnand discovered, sbt is hardwired to ignore a normal the config file changes necessary are in the wip branch in my fork I'm also not going to bother trying to run this on Jenkins until Scala 2.10.7 and sbt 0.13.17 are published — I think it would be wasted work, it's enough if I just run it locally for now. |
@retronym might pick this up and run with it for a while. thus, brain dump: I have pushed my wip fumblings on this to https://github.com/SethTisue/community-builds/commits/wip-2.12.x-jdk9 to get it up on Jenkins, some work on the scala-jenkins-infra repository will be needed:
adding more Scala modules to the build would require doing something about scala/sbt-scala-module#35, iirc besides the remaining Scala modules, obvious next additions could include ScalaTest and akka-actor |
sbt 0.13.17-RC2 and 1.1.0 exist now and should make this a bit easier |
what are those great crashing footfalls I hear? it's our THREE mighty behemoths, LARGER than the old ones. what a thrilling and awe-inspiring sight they are! and apparently they have JDK 9 on them already 🤖🤖🤖 💪💪💪 ⓽⓽⓽ 💥💥💥 I created https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-jdk9-integrate-community-build via the Jenkins UI by copying the regular 2.12.x job, adding note that's a run of the regular 2.12.x branch of this repo. thought I'd see how that does first. we can also try the |
It failed. Didn't look like there were any more builds kicked off. Did this end up getting hung up? |
work on 2.12.5 (and the usual thousand other things) interceded. ironically, since this would have caught the big regression in 2.12.5. sigh yeah so in the first run a bunch of projects failed to even extract, I looked at a sampling and it was usually (always?) because something in the build choked on the unexpected Java version number so I'll need to start just marching down the list and making pull requests or issues in those projects, starting with the ones with the most downstream dependents I kicked off a new run just now at https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-jdk9-integrate-community-build/2/console , perhaps some of the included projects have already been fixed |
Oh, ok. Yeah, that's brutal. |
I know this problem, it requires an updated shade plugin, as in playframework/play-ws#173. I'll take this up with coursier and argonaut-shapeless. Issue: coursier/coursier#822 Workaround: #700 |
This probably just means that project is building with SBT 0.13.16 or lower, which is yet to update to Scala 2.10.7 to get support of for Java 9. |
that's odd — we override the sbt versions of all included projects (to 0.13.17 and 1.1.1, currently) |
I've opened a PR for ScalaTest: |
this is still a back-burner task, but, to at least make sure we're not slipping backwards, I merged current 2.12.x onto https://github.com/SethTisue/community-builds/commits/wip-2.12.x-jdk9 and made sure it still works:
as for the full build, I've set a personal to-do item to make gradual progress on at least getting all of the projects extracting. today's increment of progress on that is here: scala/scala-swing#78 |
it didn't, and I couldn't reproduce it outside dbuild, so maybe it's choking on a dbuild-mangled version number |
gah, of course, it's scala/sbt-scala-module#35 again, which has been pending so long I forgot about it |
scala/scala-xml#220 should do it |
that worked. stuff is building now. let's see how far it gets: https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-jdk9-integrate-community-build/115/consoleFull |
sigh, for some reason slick/slick#1908 brings the entire build to a halt |
do the best you can, run 117! |
You need to add |
thanks, that does it ( |
latest is run 121 in my local testing, we're now very close to being able to declare victory (as in, enough green projects, not all of them), but there is one more keystone project that is failing and taking out a big swath of the build, namely specs2. I've filed etorreborre/specs2#659 on it |
oh and there's one other thing I need to fix, which is that I pushed a "fix" for Scala.js that hardcodes locally, with Homebrew-installed sbt, if I run sbt on Java 9 and do |
specs2 needs scala-js-stubs, which I haven't fixed yet (still the highest priority needed fix) scala-collection-compat and sourcecode were both failing because of a too-old sbt-osgi version; I've pushed fixes for both |
I pushed a scala-js-stubs fix. https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-jdk9-integrate-community-build/182/consoleFull has scala-js-stubs green. the rest is still running, I'll swing back by tomorrow and see how it did. |
119 projects are green now! declaring victory. |
|
|
|
|
status at https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-jdk9-integrate-community-build/274/ : |
141 green projects now! https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-jdk9-integrate-community-build/310/console has
|
someone want to look into the specs2-more and zinc failures...? or any of the others? |
|
the expected-to-fail list is now kept in this repo itself, here: https://github.com/scala/community-builds/blob/2.12.x/report/Report.scala#L38 |
PR to fix blaze: http4s/blaze#213 we are using a frozen blaze so we won't immediately get the fix once this is merged. but perhaps http4s has moved on and could handle blaze master now, I should try it and see |
ticket on zinc failure: sbt/zinc#567 |
this came up in the context of the Scala community build, at scala/community-build#609
ticket on boopickle failure: |
nope, we had to keep blaze frozen for now. I could re-fork it and cherry-pick |
starting, I suppose, with just a stripped-down thing that only attempts to build some basic stuff like the Scala standard modules, then expanding from there
Scala 2.12 only is fine for now, I think. the behemoths are already somewhat pressed for space (and the space can't be increased without rebuilding the nodes), and even just adding the 2.12/jdk9 combo will make the problem, one might say, worse enough
plan:
re: Jenkins, @retronym did some work, prior to JDK 9 going final/gold/GA, on making it available on our Jenkins nodes; see scala/scala-jenkins-infra#174 for details
The text was updated successfully, but these errors were encountered: