All,

In a previous thread there was a plan discussed to restructure some of
the repositories in order to address several different issues, such as
build time, reusability of code, and eventually separating how the
framework and extensions are released [1][2].

The overall plan requires many steps to get there, so I'd like to
propose starting with a small actionable step - the creation of a new
sub-project called NiFi Standard Libraries (formerly referred to as
nifi-commons).

Project Name: Apache NiFi Standard Libraries
Git Repository: nifi-standard-libraries
JIRA: NIFILIBS

Description:

A collection of standard implementations used across the NiFi ecosystem.

Candidate Libraries:

In general, each library may consist of multiple Maven modules, and
should be independent from the rest of the ecosystem, and from other
libraries within NiFi Standard Libraries.

In addition, each library may make it's own decision about whether it
is considered a public facing extension point/API, or an internal
library that may be changed at any time. This should be documented in
a README at the root of each library, such as
nifi-standard-libraries/nifi-xyz/README.

An initial library that has been discussed was referred to as
'nifi-security' and would centralize much of the security related code
shared by NiFi and NiFi Registry, such as shared security APIs, and
implementations for various providers, such as LDAP/Kerberos/etc.

A second candidate library would be an optimistic-locking library
based on NiFi's revision concept. Currently this has been created
inside nifi-registry for now [3], but could be moved as soon as
nifi-standard-libraries exists.

(This list does not have to be final in order to decide if we are
creating NiFi Standard Libraries or not)

Integration & Usage:

Once NiFi Standard Libraries is created, the community can start
creating and/or moving code there and perform releases as necessary. A
release will consist of the standard Apache source release, plus
artifacts released to Maven central. The community can then decide
when it is appropriate to integrate these released libraries into one
of our downstream projects.

For example, if we create a nifi-security library in
nifi-standard-libraries, we can release that whenever we decide, but
we may not integrate it into NiFi or NiFi Registry until it makes
sense for a given release of those projects.

This vote will be open for 48 hours, please vote:

[ ] +1 Create NiFi Standard Libraries
[ ] +0 no opinion
[ ] -1 Do not create NiFi Standard Libraries because...

[1] 
http://apache-nifi.1125220.n5.nabble.com/discuss-Splitting-NiFi-framework-and-extension-repos-and-releases-td27499.html
[2] 
https://cwiki.apache.org/confluence/display/NIFIREG/NiFi+Project+and+Repository+Restructuring
[3] 
https://github.com/apache/nifi-registry/tree/master/nifi-registry-core/nifi-registry-revision

Reply via email to