Closed vorburger closed 8 months ago
release 7.0.0
FYI 7.0.2 still seems to have this problem as well (change .bazelversion
in reproducer project)
Adding this (found in https://github.com/bazelbuild/rules_java/issues/141) to .bazelrc
of the reproducer project doesn't seem to help:
build --java_runtime_version=remotejdk_21
build --tool_java_runtime_version=remotejdk_21
I'm now experimenting with using default_java_toolchain
to see if that could somehow fix this...
I'm now experimenting with using default_java_toolchain to see if that could somehow fix this...
done in https://github.com/enola-dev/enola/pull/436/files - but that does not fix this.
With that, I'm out of depth, and moving on for now without using Java String Templates... 😭
Huh, this is fun - with some more trial and error, I was able to see that Java 21 String Templates do work for java_binary
, but are clearly broken for java_library
(unless one uses --nojava_header_compilation
). That's exactly what https://github.com/bazelbuild/bazel/issues/15083 from @nresare had reported... it looks like that actually isn't fixed - or must somehow have regressed? (Maybe the new fix should add better test coverage to avoid it from re-occurring again?)
@cushon
Thanks for the report, the underlying problem is that turbine doesn't support string templates yet. I filed https://github.com/google/turbine/issues/303 to track that.
String Templates do work for
java_binary
, but are clearly broken forjava_library
(unless one uses--nojava_header_compilation
)
That's consistent with any turbine issue, header compilation only happens for targets that are dependencies of other targets. It doesn't run when compiling a top-level target like java_binary
.
ACK! FYI https://github.com/vorburger/bazel-multiline-problem created for standalone reproducer, if useful.
what https://github.com/bazelbuild/bazel/issues/15083 from @nresare had reported... it looks like that actually isn't fixed - or must somehow have regressed? (
Actuallly it's slightly different - that initial one was just for a multiline string, without variable, this is about with a variable.
Using the latest turbine version from https://github.com/bazelbuild/bazel/pull/21128 fixes the original repro for me.
I used the steps in https://github.com/bazelbuild/java_tools/issues/43#issuecomment-1346822307 to build a version of the prebuilt tools. Passing --override_repository
to use the updated tools fixes the turbine error:
bazelisk test --override_repository=rules_java~7.3.2~toolchains~remote_java_tools_linux=/tmp/java_tools_linux //web/ui/...
The test subsequently fails because --enable-preview
isn't being passed at runtime:
1) testUi(dev.enola.web.ui.UiTest)
java.lang.UnsupportedClassVersionError: Preview features are not enabled for dev/enola/web/ui/ThingUI (class file version 65.65535). Try running with '--enable-preview'
Passing --test_arg=--jvm_flags=--enable-preview
allows it to succeed.
I think it would be good to get this into a rules_java
release and an upcoming Bazel release. String templates are 'just' a preview feature, but users on Java 21 may want to experiment with them.
@bazel-io flag
@bazel-io fork 7.1.0
@iancha1992 This will require not just a cherry-pick, but also a java_tools
& rules_java
release plus an update of rules_java
on the 7.1.0 branch.
Since https://github.com/bazelbuild/java_tools/issues/87#issuecomment-1904252894 got stuck anyway, retrying it should pick up this change.
cc @hvadehra
@cushon https://github.com/bazelbuild/bazel/commit/f697132ac1ad92cdae9d34962e24d099cceefc94 is the commit that needs to be cherry-picked, correct?
@fmeum noted, thanks!
Yep, that's the commit. I might be easier to just re-create it against 7.1.0 because of the lockfile changes, I created https://github.com/bazelbuild/bazel/pull/21161
Thanks! rules_java 7.1.0 update tracked here: https://github.com/bazelbuild/bazel/issues/21160
java_tools & rules_java releases are done.
Description of the bug:
https://github.com/bazelbuild/bazel/issues/15083 -like, looks like that isn't quite working with Bazel 7.0.0 ?
@cushon FYI
Which category does this issue belong to?
Java Rules
What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
Which operating system are you running Bazel on?
Linux
What is the output of
bazel info release
?release 7.0.0
If
bazel info release
returnsdevelopment version
or(@non-git)
, tell us how you built Bazel.N/A
What's the output of
git remote get-url origin; git rev-parse HEAD
?No response
Is this a regression? If yes, please try to identify the Bazel commit where the bug was introduced.
No response
Have you found anything relevant by searching the web?
No response
Any other information, logs, or outputs that you want to share?
No response