Jeff

This seems very reasonable and thorough to me.

The only short term implication that we'd have to buy into then is that PRs
going forward need to be able to build on both Java 8 and 11 which seems a
very fair way to bridge toward moving to Java 11 as the base requirement in
the next major release of NiFi (2.x).

Thanks
Joe

On Wed, Apr 3, 2019 at 2:19 PM Jeff <jsto...@apache.org> wrote:

> I'm reaching out to the community today to propose a plan for moving
> forward with NiFi on Java 11.
>
> There are currently two PRs that deal with Java 11 compatibility.  The
> first PR allows NiFi built on Java 8 to be run on Java 11 [1].  The second
> PR allows NiFi to be built on Java 11 and run on Java 11 [2].  There are a
> lot of changes in the second PR, and it will require a lot of testing due
> to the breadth of changes from dependency upgrades.  Please take a look at
> both of these PRs.  The earlier we can get feedback, the sooner we can get
> Java 11 compatibility in an Apache NiFi release.
>
> I would to discuss with the community the following plan for upcoming NiFi
> releases as they pertain to Java 11:
>
> For the 1.x release line, from either 1.10 or 1.11 (depending on when these
> two PRs are merged to master) and onward, NiFi will be compatible with both
> Java 8 and 11 for building and running NiFi:
>
>    - Build on Java 8, run on Java 8
>    - Build on Java 8, run on Java 11
>    - Build on Java 11, run on Java 11
>
> The 1.x release line will contain convenience builds for Java 8, and will
> NOT contain convenience builds created from Java 11.  Users that want to
> run NiFi 1.1x.y on Java 11 with Java 11 bytecode will have to build from
> the released source code.
>
> Once the Java 11 compatibility features [1] [2] are merged to master, PR
> reviews will require building and testing with Java 8 and Java 11 before
> the PR is merged to master. We will add a new build to our Travis CI
> instance to cover building on Java 11, which should help with the PR
> process, since build status from Appveyor and Travis are shown on the PR.
> This will allow an easier transition to the NiFi 2.x release line.
>
> For the 2.x release line, the minimum Java version would be Java 11, at
> which point developers would be able to start using Java 11 language
> features.  Java 12 is not designated to be an LTS release, with its support
> ending in September 2019.  I would not recommend making our minimum Java
> version a non-LTS Java release unless we are prepared to do NiFi releases
> to update the minimum Java version before the support for that version of
> Java ends.
>
> Taking this approach means we can reasonably allow users to run on Java 11
> in the 1.x release line, ensure that we do not add commits which are not
> Java 11 compatible, and make it easier to transition into the 2.x line for
> NiFi.
>
> - Jeff
>
> [1] https://github.com/apache/nifi/pull/3174
> [2] https://github.com/apache/nifi/pull/3404
>

Reply via email to