Near future of supported JDKs and Bazel 0.17

43 views
Skip to first unread message

Lukács T. Berki

unread,
Sep 5, 2018, 7:40:40 AM9/5/18
to bazel-...@googlegroups.com, Liam Miller-Cushon, Laurent Le Brun, Philipp Wollermann, Jakob Buchgraber
Hey there,

Given all the breakage in Bazel 0.16, our desire to get out Bazel 0.17 without it being as badly broken as Bazel 0.16, the fact that we *still* don't have integration testing between Bazel and various combinations of JDK versions, here is our plan for Bazel 0.17:
  1. We have already rolled back the embedded javac from 10 to 9
  2. We are going to roll back the embedded JDK from 10 to 9
  3. We are going to add integration testing to make sure that various combinations of auto-detected JDKs, --host_javabase and --javabase keeps working
  4. We are going to release Bazel 0.17 with the above changes
  5. We roll forward the embedded JDK and javac to version 10
  6. We release Bazel 0.18 with out integration tests giving confidence or at least advance warning that things don't break with the version bump.
In addition, we'll also share a postmortem about Bazel 0.16.

Apologies for all the breakages; this really should not happen again, that's why we are taking the most conservative course of action possible.

--
Lukács T. Berki | Software Engineer | lbe...@google.com | 

Google Germany GmbH | Erika-Mann-Str. 33  | 80636 München | Germany | Geschäftsführer: Paul Manicle, Halimah DeLaine Prado | Registergericht und -nummer: Hamburg, HRB 86891

Philipp Wollermann

unread,
Sep 5, 2018, 7:43:40 AM9/5/18
to Lukács T. Berki, bazel-...@googlegroups.com, Liam Miller-Cushon, Laurent Le Brun, Jakob Buchgraber

On Wed, Sep 5, 2018 at 1:40 PM Lukács T. Berki <lbe...@google.co
  1. We release Bazel 0.18 with out integration tests giving confidence or at least advance warning that things don't break with the version bump.
s/out/our/ ?

Lukács T. Berki

unread,
Sep 5, 2018, 7:50:39 AM9/5/18
to Philipp Wollermann, bazel-...@googlegroups.com, Liam Miller-Cushon, Laurent Le Brun, Jakob Buchgraber
Erm. Of course. I meant "with *our* integration tests giving confidence".
 

petros.es...@gmail.com

unread,
Sep 5, 2018, 8:19:20 AM9/5/18
to Bazel/JVM Special Interest Group
What motivated rolling back to Java 9?

We at two sigma, actually looked forward to Bazel 0.17.0's embedded jdk moving directly to Java 10. 
There were was inherent bug in java 9 (resolved in java 10) that has kept us on Bazel-0.15.0.
It's an issue with jar time stamping. Internally, we timestamp all jars to 00:00, which java9 
finds problematic for whatever reason. Many of these jars are precompiled and are referenced
by Bazel built java code through java_import statements.

Lukács T. Berki

unread,
Sep 5, 2018, 8:30:38 AM9/5/18
to petros.es...@gmail.com, Bazel/JVM Special Interest Group
On Wed, Sep 5, 2018 at 2:19 PM, <petros.es...@gmail.com> wrote:
What motivated rolling back to Java 9?
Mainly the desire to avoid having *two* botched releases one after the another. Unfortunately, moving to javac 10 is not a small change because that breaks compatibility with Java 8 javabases. I was briefly considering having an embedded JDK 10 with JDK 9, but https://github.com/bazelbuild/bazel/issues/6077 convinced me that we should not take our chances with that, either.


We at two sigma, actually looked forward to Bazel 0.17.0's embedded jdk moving directly to Java 10. 
There were was inherent bug in java 9 (resolved in java 10) that has kept us on Bazel-0.15.0.
It's an issue with jar time stamping. Internally, we timestamp all jars to 00:00, which java9 
finds problematic for whatever reason. Many of these jars are precompiled and are referenced
by Bazel built java code through java_import statements.
Is this an issue with the JDK or javac? If the former, you may be able to work around it by using --host_javabase=<JDK10> . 


On Wednesday, September 5, 2018 at 11:40:40 AM UTC, Lukács T. Berki wrote:
Hey there,

Given all the breakage in Bazel 0.16, our desire to get out Bazel 0.17 without it being as badly broken as Bazel 0.16, the fact that we *still* don't have integration testing between Bazel and various combinations of JDK versions, here is our plan for Bazel 0.17:
  1. We have already rolled back the embedded javac from 10 to 9
  2. We are going to roll back the embedded JDK from 10 to 9
  3. We are going to add integration testing to make sure that various combinations of auto-detected JDKs, --host_javabase and --javabase keeps working
  4. We are going to release Bazel 0.17 with the above changes
  5. We roll forward the embedded JDK and javac to version 10
  6. We release Bazel 0.18 with out integration tests giving confidence or at least advance warning that things don't break with the version bump.
In addition, we'll also share a postmortem about Bazel 0.16.

Apologies for all the breakages; this really should not happen again, that's why we are taking the most conservative course of action possible.

--
Lukács T. Berki | Software Engineer | lbe...@google.com | 

Google Germany GmbH | Erika-Mann-Str. 33  | 80636 München | GermanyGeschäftsführer: Paul Manicle, Halimah DeLaine Prado | Registergericht und -nummer: Hamburg, HRB 86891

--
You received this message because you are subscribed to the Google Groups "Bazel/JVM Special Interest Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-sig-jvm+unsubscribe@googlegroups.com.
To post to this group, send email to bazel-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-sig-jvm/4c16c876-ed1b-47a2-a9ea-4d7e588a7378%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Liam Miller-Cushon

unread,
Oct 10, 2018, 7:05:44 PM10/10/18
to Lukács T. Berki, petros.es...@gmail.com, bazel-...@googlegroups.com

It's an issue with jar time stamping. Internally, we timestamp all jars to 00:00, which java9 
finds problematic for whatever reason.

The change in JDK 9 sounds like https://bugs.openjdk.java.net/browse/JDK-8184940.

We're preparing to make JDK 10 the default --host_javabase again, now that we can put that change behind a `--incompatible_*` flag: https://github.com/bazelbuild/bazel/issues/6173#issuecomment-428762001
Reply all
Reply to author
Forward
0 new messages