Konstantin, 

Just a nitpicky thought, if we move this branch to Java-8 on Jenkins, but still 
hope to release code that can run on Java 7, how will we detect
Java 8 only changes? I am asking because till now whenever I checked in Java 8 
features in branch-2 Jenkins would catch that issue.

With this approach, we might not find it out the issues till the release time 
when the release manager decides to compile with Java 7.
It might be more pragmatic to say that your Java 7 mileage may vary once this 
goes in, since we will have no visibility to Java 7 compatibility until it is 
too late.

Another approach could be that we create a read-only 2.x branch, then we know 
that code will work with Java 7 since the last snapshot was known to work with 
Java 7.


Thanks
Anu



On 2/1/19, 5:04 PM, "Konstantin Shvachko" <shv.had...@gmail.com> wrote:

    Just to make sure we are on the same page, as the subject of this thread is
    too generic and confusing.
    *The proposal is to move branch-2 Jenkins builds such as precommit to run
    tests on openJDK-8.*
    We do not want to break Java 7 source compatibility. The sources and
    releases will still depend on Java 7.
    We don't see test failures discussed in HADOOP-15711 when we run them
    locally with Oracle Java 7.
    
    Thanks,
    --Konst
    
    On Fri, Feb 1, 2019 at 12:44 PM Jonathan Hung <jyhung2...@gmail.com> wrote:
    
    > Thanks Vinod and Steve, agreed about java7 compile compatibility. At least
    > for now, we should be able to maintain java7 source compatibility and run
    > tests on java8. There's a test run here:
    > https://builds.apache.org/job/hadoop-qbt-branch2-java7-linux-x86-jhung/46/
    > which calls a java8 specific API, installs both openjdk7/openjdk8 in the
    > dockerfile, compiles on both versions, and tests on just java8 (via
    >
    > 
--multijdkdirs=/usr/lib/jvm/java-7-openjdk-amd64,/usr/lib/jvm/java-8-openjdk-amd64
    > and --multijdktests=compile). If we eventually decide it's too much of a
    > pain to maintain java7 source compatibility we can do that at a later
    > point.
    >
    > Also based on discussion with others in the community at the contributors
    > meetup this past Wednesday, seems we are generally in favor of testing
    > against java8. I'll start a vote soon.
    >
    > Jonathan Hung
    >
    >
    > On Tue, Jan 29, 2019 at 4:11 AM Steve Loughran <ste...@hortonworks.com>
    > wrote:
    >
    > > branch-2 is the JDK 7 branch, but for a long time I (and presumably
    > > others) have relied on jenkins to keep us honest by doing that build and
    > > test
    > >
    > > right now, we can't do that any more, due to jdk7 bugs which will never
    > be
    > > fixed by oracle, or at least, not in a public release.
    > >
    > > If we can still do the compile in java 7 language and link to java 7 
JDK,
    > > then that bit of the release is good -then java 8 can be used for that
    > test
    > >
    > > Ultimately, we're going to be forced onto java 8 just because all our
    > > dependencies have moved onto it, and some CVE will force us to move.
    > >
    > > At which point, I think its time to declare branch-2 dead. It's had a
    > > great life, but trying to keep java 7 support alive isn't sustainable.
    > Not
    > > just in this testing, but
    > > cherrypicking patches back gets more and more difficult -branch-3 has
    > > moved on in both use of java 8 language, and in the codebase in general.
    > >
    > > > On 28 Jan 2019, at 20:18, Vinod Kumar Vavilapalli <vino...@apache.org>
    > > wrote:
    > > >
    > > > The community made a decision long time ago that we'd like to keep the
    > > compatibility & so tie branch-2 to Java 7, but do Java 8+ only work on
    > 3.x.
    > > >
    > > > I always assumed that most (all?) downstream users build branch-2 on
    > JDK
    > > 7 only, can anyone confirm? If so, there may be an easier way to address
    > > these test issues.
    > > >
    > > > +Vinod
    > > >
    > > >> On Jan 28, 2019, at 11:24 AM, Jonathan Hung <jyhung2...@gmail.com>
    > > wrote:
    > > >>
    > > >> Hi folks,
    > > >>
    > > >> Forking a discussion based on HADOOP-15711. To summarize, there are
    > > issues
    > > >> with branch-2 tests running on java 7 (openjdk) which don't exist on
    > > java
    > > >> 8. From our testing, the build can pass with openjdk 8.
    > > >>
    > > >> For branch-3, the work to move the build to use java 8 was done in
    > > >> HADOOP-14816 as part of the Dockerfile OS version change. 
HADOOP-16053
    > > was
    > > >> filed to backport this OS version change to branch-2 (but without the
    > > java
    > > >> 7 -> java 8 change). So my proposal is to also make the java 7 ->
    > java 8
    > > >> version change in branch-2.
    > > >>
    > > >> As mentioned in HADOOP-15711, the main issue is around source and
    > binary
    > > >> compatibility. I don't currently have a great answer, but one initial
    > > >> thought is to build source/binary against java 7 to ensure
    > compatibility
    > > >> and run the rest of the build as java 8.
    > > >>
    > > >> Thoughts?
    > > >>
    > > >> Jonathan Hung
    > > >
    > > >
    > > > ---------------------------------------------------------------------
    > > > To unsubscribe, e-mail: yarn-dev-unsubscr...@hadoop.apache.org
    > > > For additional commands, e-mail: yarn-dev-h...@hadoop.apache.org
    > > >
    > >
    > >
    >
    

Reply via email to