Re: [gwt-contrib] Required JDK version to build GWT?

2020-06-29 Thread 'Goktug Gokdogan' via GWT Contributors
I was clarifying what I was expecting the setup to look like wrt different
versions supported.
I agree that the granularity of the supported version doesn't need to be
lower than what is useful to us (which I think is driven by both LTS and
also by GWT releases).

On Mon, Jun 29, 2020 at 7:47 PM Colin Alworth 
wrote:

> Right - the excludes via ant are certainly an option ("use ant filters"),
> my main hope is to avoid adding another stanza of xml for the emulation for
> each release. Cutting out Java7 and adding a "java 11 or higher" to lump
> all the java 9, 10, 11 tests in would at least be a net equal in XML from
> what we have today (since compiling under Java 7 isn't an option), but
> still a bit messier than I'd like - especially if we agree that "run all
> internal tests in Java11" is reasonable (plus another few build steps to
> validate the build under other versions of Java).
>
> If that isn't deemed reasonably, we'll need a Java9 check (for the new
> of() methods), Java 10 check (new optional methods, collections copyOf),
> Java 11 check (string methods) to get caught up with the JDT we're using
> today, and 12, 13, 14 are out now, with 15 soon. Again, not impossible,
> just perhaps messy - and unwinding the "java8" flag (which really seems to
> mean "newer than java7") is less fun than I'd like.
>
> --
>   Colin Alworth
>   co...@colinalworth.com
>
>
>
> On Mon, Jun 29, 2020, at 9:21 PM, 'Goktug Gokdogan' via GWT Contributors
> wrote:
>
> wrt running tests:
> See https://gwt-review.googlesource.com/c/gwt/+/13861 for the pattern
> used in JRE earlier; and the CI was updated to run in both 7 and 8 at the
> same time.
>
> PS: Compiler tests ("jjs.test.Java8Test") was different because we really
> needed to run the compiler tests with new syntax inside Google which didn't
> have the Java8 VM at the time. It wasn't a deal breaker to be not able run
> Java8 JRE tests at the time so they are not super sourced.
>
> I recommend the same approach.
>
>
> On Mon, Jun 29, 2020 at 6:45 PM Colin Alworth  wrote:
>
> As of somewhere in the time leading up to the GWT 2.9.0 release, it is no
> longer possible to build GWT with Java7, and similarly the decision was
> made to no longer officially support running on Java7
> (jsinterop-annotations use of "TYPE_USE", newer jetty version too I
> believe).
>
> There is still some defunct wiring in the build to handle Java 7 vs Java 8
> though, mostly with regards to running tests - since we first javac our
> java classes, and then run gwtc on them, we need to make sure that the java
> version being use can correctly compile those tests.
>
> The issue https://github.com/gwtproject/gwt/issues/9683 is tracking some
> of the existing work on this: the main remaining piece is to decide how to
> handle javadoc. GWT has its own custom doclet to handle a few custom tags,
> "example", "gwt.include", and "tip". None of this compiles after Java 8,
> since Java 9 came with a new, incompatible API to build custom tags, so
> either we drop Java 8 support for building the toolkit, require _only_ Java
> 8 to build, support two parallel copies of the custom doc wiring, or drop
> the doc wiring entirely and remove these custom tags throughout the
> codebase.
>
> Since the release of GWT 2.9 and my own work on the above ticket, I've
> been picking back up some Java 9/10/11 JRE emulation work that I had
> previously paused, and I'm running into the issue described at the top - if
> you write a test that calls Map.of() and run it on Java8 as a GWTTestCase,
> you'll get a compile error.
>
> Two basic ways I can easily see to fix this: we can make two copies of
> each test, one as an empty "real" java type and one as supersource, or we
> can guard those tests behind java version args in the build glue like we
> did for Java7 vs Java8. The first option is clunky, and while I see this
> was done for `com.google.gwt.dev.jjs.test.Java8Test`, it clearly wasn't
> done for JRE emulation tests, and I assume there was a reason for that. The
> second option requires changing our CI to build+test on some new JRE...
>
> ...and given the constraints of the Java LTS system, and the java 8/9
> divide for custom doclet stuff, it seems like the clearest win is to move
> all the way to Java11, though continue to target java 8 releases, and test
> on all JREs up until current.
>
> So that's my pitch. For completeness, some other options that seem
> workable, keeping in mind that at present there are about 3 important JRE
> versions to support well: Java 8, Java 11, and the current stable release.
>  * Require Java8 for javadoc, supersource tests
>  * Allow any JRE 8+, use ant filters for tests for each version, maintain
> two javadoc builds
>  * Allow any JRE 8+, use ant filters, only actually produce javadoc on
> java9+ builds
>
> Other technical ways to deal with this, or have a missed an easier
> solution to one of these problems?
>
>
> --
> You received this message because you are subscribed to the Google

Re: [gwt-contrib] Required JDK version to build GWT?

2020-06-29 Thread Colin Alworth
Right - the excludes via ant are certainly an option ("use ant filters"), my 
main hope is to avoid adding another stanza of xml for the emulation for each 
release. Cutting out Java7 and adding a "java 11 or higher" to lump all the 
java 9, 10, 11 tests in would at least be a net equal in XML from what we have 
today (since compiling under Java 7 isn't an option), but still a bit messier 
than I'd like - especially if we agree that "run all internal tests in Java11" 
is reasonable (plus another few build steps to validate the build under other 
versions of Java). 

If that isn't deemed reasonably, we'll need a Java9 check (for the new of() 
methods), Java 10 check (new optional methods, collections copyOf), Java 11 
check (string methods) to get caught up with the JDT we're using today, and 12, 
13, 14 are out now, with 15 soon. Again, not impossible, just perhaps messy - 
and unwinding the "java8" flag (which really seems to mean "newer than java7") 
is less fun than I'd like.

-- 
 Colin Alworth
co...@colinalworth.com



On Mon, Jun 29, 2020, at 9:21 PM, 'Goktug Gokdogan' via GWT Contributors wrote:
> wrt running tests:
> See https://gwt-review.googlesource.com/c/gwt/+/13861 for the pattern used in 
> JRE earlier; and the CI was updated to run in both 7 and 8 at the same time.
> 
> PS: Compiler tests ("jjs.test.Java8Test") was different because we really 
> needed to run the compiler tests with new syntax inside Google which didn't 
> have the Java8 VM at the time. It wasn't a deal breaker to be not able run 
> Java8 JRE tests at the time so they are not super sourced.
> 
> I recommend the same approach.
> 
> 
> On Mon, Jun 29, 2020 at 6:45 PM Colin Alworth  wrote:
>> As of somewhere in the time leading up to the GWT 2.9.0 release, it is no 
>> longer possible to build GWT with Java7, and similarly the decision was made 
>> to no longer officially support running on Java7 (jsinterop-annotations use 
>> of "TYPE_USE", newer jetty version too I believe). 
>> 
>> There is still some defunct wiring in the build to handle Java 7 vs Java 8 
>> though, mostly with regards to running tests - since we first javac our java 
>> classes, and then run gwtc on them, we need to make sure that the java 
>> version being use can correctly compile those tests.
>> 
>> The issue https://github.com/gwtproject/gwt/issues/9683 is tracking some of 
>> the existing work on this: the main remaining piece is to decide how to 
>> handle javadoc. GWT has its own custom doclet to handle a few custom tags, 
>> "example", "gwt.include", and "tip". None of this compiles after Java 8, 
>> since Java 9 came with a new, incompatible API to build custom tags, so 
>> either we drop Java 8 support for building the toolkit, require _only_ Java 
>> 8 to build, support two parallel copies of the custom doc wiring, or drop 
>> the doc wiring entirely and remove these custom tags throughout the codebase.
>> 
>> Since the release of GWT 2.9 and my own work on the above ticket, I've been 
>> picking back up some Java 9/10/11 JRE emulation work that I had previously 
>> paused, and I'm running into the issue described at the top - if you write a 
>> test that calls Map.of() and run it on Java8 as a GWTTestCase, you'll get a 
>> compile error.
>> 
>> Two basic ways I can easily see to fix this: we can make two copies of each 
>> test, one as an empty "real" java type and one as supersource, or we can 
>> guard those tests behind java version args in the build glue like we did for 
>> Java7 vs Java8. The first option is clunky, and while I see this was done 
>> for `com.google.gwt.dev.jjs.test.Java8Test`, it clearly wasn't done for JRE 
>> emulation tests, and I assume there was a reason for that. The second option 
>> requires changing our CI to build+test on some new JRE...
>> 
>> ...and given the constraints of the Java LTS system, and the java 8/9 divide 
>> for custom doclet stuff, it seems like the clearest win is to move all the 
>> way to Java11, though continue to target java 8 releases, and test on all 
>> JREs up until current.
>> 
>> So that's my pitch. For completeness, some other options that seem workable, 
>> keeping in mind that at present there are about 3 important JRE versions to 
>> support well: Java 8, Java 11, and the current stable release.
>>  * Require Java8 for javadoc, supersource tests
>>  * Allow any JRE 8+, use ant filters for tests for each version, maintain 
>> two javadoc builds
>>  * Allow any JRE 8+, use ant filters, only actually produce javadoc on 
>> java9+ builds
>> 
>> Other technical ways to deal with this, or have a missed an easier solution 
>> to one of these problems?
>> 

>> --
>>  You received this message because you are subscribed to the Google Groups 
>> "GWT Contributors" group.
>>  To unsubscribe from this group and stop receiving emails from it, send an 
>> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
>>  To view this discussion on the web visit 
>> https://groups.google.

Re: [gwt-contrib] Required JDK version to build GWT?

2020-06-29 Thread Matt Davis
I agree with this statement: "it seems like the clearest win is to move all
the way to Java11, though continue to target java 8 releases, and test on
all JREs up until current."

On Mon, Jun 29, 2020 at 10:21 PM 'Goktug Gokdogan' via GWT Contributors <
google-web-toolkit-contributors@googlegroups.com> wrote:

> wrt running tests:
> See https://gwt-review.googlesource.com/c/gwt/+/13861 for the pattern
> used in JRE earlier; and the CI was updated to run in both 7 and 8 at the
> same time.
>
> PS: Compiler tests ("jjs.test.Java8Test") was different because we really
> needed to run the compiler tests with new syntax inside Google which didn't
> have the Java8 VM at the time. It wasn't a deal breaker to be not able run
> Java8 JRE tests at the time so they are not super sourced.
>
> I recommend the same approach.
>
>
> On Mon, Jun 29, 2020 at 6:45 PM Colin Alworth  wrote:
>
>> As of somewhere in the time leading up to the GWT 2.9.0 release, it is no
>> longer possible to build GWT with Java7, and similarly the decision was
>> made to no longer officially support running on Java7
>> (jsinterop-annotations use of "TYPE_USE", newer jetty version too I
>> believe).
>>
>> There is still some defunct wiring in the build to handle Java 7 vs Java
>> 8 though, mostly with regards to running tests - since we first javac our
>> java classes, and then run gwtc on them, we need to make sure that the java
>> version being use can correctly compile those tests.
>>
>> The issue https://github.com/gwtproject/gwt/issues/9683 is tracking some
>> of the existing work on this: the main remaining piece is to decide how to
>> handle javadoc. GWT has its own custom doclet to handle a few custom tags,
>> "example", "gwt.include", and "tip". None of this compiles after Java 8,
>> since Java 9 came with a new, incompatible API to build custom tags, so
>> either we drop Java 8 support for building the toolkit, require _only_ Java
>> 8 to build, support two parallel copies of the custom doc wiring, or drop
>> the doc wiring entirely and remove these custom tags throughout the
>> codebase.
>>
>> Since the release of GWT 2.9 and my own work on the above ticket, I've
>> been picking back up some Java 9/10/11 JRE emulation work that I had
>> previously paused, and I'm running into the issue described at the top - if
>> you write a test that calls Map.of() and run it on Java8 as a GWTTestCase,
>> you'll get a compile error.
>>
>> Two basic ways I can easily see to fix this: we can make two copies of
>> each test, one as an empty "real" java type and one as supersource, or we
>> can guard those tests behind java version args in the build glue like we
>> did for Java7 vs Java8. The first option is clunky, and while I see this
>> was done for `com.google.gwt.dev.jjs.test.Java8Test`, it clearly wasn't
>> done for JRE emulation tests, and I assume there was a reason for that. The
>> second option requires changing our CI to build+test on some new JRE...
>>
>> ...and given the constraints of the Java LTS system, and the java 8/9
>> divide for custom doclet stuff, it seems like the clearest win is to move
>> all the way to Java11, though continue to target java 8 releases, and test
>> on all JREs up until current.
>>
>> So that's my pitch. For completeness, some other options that seem
>> workable, keeping in mind that at present there are about 3 important JRE
>> versions to support well: Java 8, Java 11, and the current stable release.
>>  * Require Java8 for javadoc, supersource tests
>>  * Allow any JRE 8+, use ant filters for tests for each version, maintain
>> two javadoc builds
>>  * Allow any JRE 8+, use ant filters, only actually produce javadoc on
>> java9+ builds
>>
>> Other technical ways to deal with this, or have a missed an easier
>> solution to one of these problems?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "GWT Contributors" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/0aa0701b-4287-4e4c-bbef-23952898c64an%40googlegroups.com
>> 
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "GWT Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA1L4gAaaEkqgWnqL%3DiKDX_aUjX1L0WThdG4yuxUyHdQMQ%40mail.gmail.com
> 

Re: [gwt-contrib] Required JDK version to build GWT?

2020-06-29 Thread 'Goktug Gokdogan' via GWT Contributors
wrt running tests:
See https://gwt-review.googlesource.com/c/gwt/+/13861 for the pattern used
in JRE earlier; and the CI was updated to run in both 7 and 8 at the same
time.

PS: Compiler tests ("jjs.test.Java8Test") was different because we really
needed to run the compiler tests with new syntax inside Google which didn't
have the Java8 VM at the time. It wasn't a deal breaker to be not able run
Java8 JRE tests at the time so they are not super sourced.

I recommend the same approach.


On Mon, Jun 29, 2020 at 6:45 PM Colin Alworth  wrote:

> As of somewhere in the time leading up to the GWT 2.9.0 release, it is no
> longer possible to build GWT with Java7, and similarly the decision was
> made to no longer officially support running on Java7
> (jsinterop-annotations use of "TYPE_USE", newer jetty version too I
> believe).
>
> There is still some defunct wiring in the build to handle Java 7 vs Java 8
> though, mostly with regards to running tests - since we first javac our
> java classes, and then run gwtc on them, we need to make sure that the java
> version being use can correctly compile those tests.
>
> The issue https://github.com/gwtproject/gwt/issues/9683 is tracking some
> of the existing work on this: the main remaining piece is to decide how to
> handle javadoc. GWT has its own custom doclet to handle a few custom tags,
> "example", "gwt.include", and "tip". None of this compiles after Java 8,
> since Java 9 came with a new, incompatible API to build custom tags, so
> either we drop Java 8 support for building the toolkit, require _only_ Java
> 8 to build, support two parallel copies of the custom doc wiring, or drop
> the doc wiring entirely and remove these custom tags throughout the
> codebase.
>
> Since the release of GWT 2.9 and my own work on the above ticket, I've
> been picking back up some Java 9/10/11 JRE emulation work that I had
> previously paused, and I'm running into the issue described at the top - if
> you write a test that calls Map.of() and run it on Java8 as a GWTTestCase,
> you'll get a compile error.
>
> Two basic ways I can easily see to fix this: we can make two copies of
> each test, one as an empty "real" java type and one as supersource, or we
> can guard those tests behind java version args in the build glue like we
> did for Java7 vs Java8. The first option is clunky, and while I see this
> was done for `com.google.gwt.dev.jjs.test.Java8Test`, it clearly wasn't
> done for JRE emulation tests, and I assume there was a reason for that. The
> second option requires changing our CI to build+test on some new JRE...
>
> ...and given the constraints of the Java LTS system, and the java 8/9
> divide for custom doclet stuff, it seems like the clearest win is to move
> all the way to Java11, though continue to target java 8 releases, and test
> on all JREs up until current.
>
> So that's my pitch. For completeness, some other options that seem
> workable, keeping in mind that at present there are about 3 important JRE
> versions to support well: Java 8, Java 11, and the current stable release.
>  * Require Java8 for javadoc, supersource tests
>  * Allow any JRE 8+, use ant filters for tests for each version, maintain
> two javadoc builds
>  * Allow any JRE 8+, use ant filters, only actually produce javadoc on
> java9+ builds
>
> Other technical ways to deal with this, or have a missed an easier
> solution to one of these problems?
>
> --
> You received this message because you are subscribed to the Google Groups
> "GWT Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit-contributors/0aa0701b-4287-4e4c-bbef-23952898c64an%40googlegroups.com
> 
> .
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA1L4gAaaEkqgWnqL%3DiKDX_aUjX1L0WThdG4yuxUyHdQMQ%40mail.gmail.com.


[gwt-contrib] Required JDK version to build GWT?

2020-06-29 Thread Colin Alworth
As of somewhere in the time leading up to the GWT 2.9.0 release, it is no 
longer possible to build GWT with Java7, and similarly the decision was 
made to no longer officially support running on Java7 
(jsinterop-annotations use of "TYPE_USE", newer jetty version too I 
believe). 

There is still some defunct wiring in the build to handle Java 7 vs Java 8 
though, mostly with regards to running tests - since we first javac our 
java classes, and then run gwtc on them, we need to make sure that the java 
version being use can correctly compile those tests.

The issue https://github.com/gwtproject/gwt/issues/9683 is tracking some of 
the existing work on this: the main remaining piece is to decide how to 
handle javadoc. GWT has its own custom doclet to handle a few custom tags, 
"example", "gwt.include", and "tip". None of this compiles after Java 8, 
since Java 9 came with a new, incompatible API to build custom tags, so 
either we drop Java 8 support for building the toolkit, require _only_ Java 
8 to build, support two parallel copies of the custom doc wiring, or drop 
the doc wiring entirely and remove these custom tags throughout the 
codebase.

Since the release of GWT 2.9 and my own work on the above ticket, I've been 
picking back up some Java 9/10/11 JRE emulation work that I had previously 
paused, and I'm running into the issue described at the top - if you write 
a test that calls Map.of() and run it on Java8 as a GWTTestCase, you'll get 
a compile error.

Two basic ways I can easily see to fix this: we can make two copies of each 
test, one as an empty "real" java type and one as supersource, or we can 
guard those tests behind java version args in the build glue like we did 
for Java7 vs Java8. The first option is clunky, and while I see this was 
done for `com.google.gwt.dev.jjs.test.Java8Test`, it clearly wasn't done 
for JRE emulation tests, and I assume there was a reason for that. The 
second option requires changing our CI to build+test on some new JRE...

...and given the constraints of the Java LTS system, and the java 8/9 
divide for custom doclet stuff, it seems like the clearest win is to move 
all the way to Java11, though continue to target java 8 releases, and test 
on all JREs up until current.

So that's my pitch. For completeness, some other options that seem 
workable, keeping in mind that at present there are about 3 important JRE 
versions to support well: Java 8, Java 11, and the current stable release.
 * Require Java8 for javadoc, supersource tests
 * Allow any JRE 8+, use ant filters for tests for each version, maintain 
two javadoc builds
 * Allow any JRE 8+, use ant filters, only actually produce javadoc on 
java9+ builds

Other technical ways to deal with this, or have a missed an easier solution 
to one of these problems?

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/0aa0701b-4287-4e4c-bbef-23952898c64an%40googlegroups.com.