+1 to all subjects addressed Joe.

I have been planning to improve developer advocacy around scripting
components. The groovy scripts have been one of my best tools to build
flows in NiFi (Rest API development , complex data structures
transformation, controlled flows scheduling…..). I’ll take this opportunity
to ask Mat Burges whether I can contribute some of my work to
http://funnifi.blogspot.com/?m=1.

Mathew

On Sat, 15 Jun 2024 at 21:03, Joe Witt <joew...@apache.org> wrote:

> Team,
>
> We are seeing an increase in the unique contributors on a monthly basis to
> NiFi and a clear and steady increase in the overall contribution rate over
> the past 1-2 years in particular.  This is awesome but we do have important
> problems to cover and we need to make it easier to help newer contributors
> know where to jump in and add the most value.
>
> For sure people will contribute various things just because they have a
> particular interest such as some new extension, etc..  But from a community
> direction perspective there are things we need to continue to improve upon
> and we want to help make the path to committership and PMC membership more
> clear as a function of adding value to the community.
>
> So not necessarily ordered, here are some key things I've observed that
> need more attention and are among the most valuable things for the health
> of the nifi system and community.
>
> Dependency Management
>
> This is a hugely important area as we have a massive amount of dependencies
> and this work is just plain not that fun.  But if we want to present a
> beautiful landscape we need to pull weeds.  We need to reduce dependencies
> and keep things recent.  This is largely accomplished today by a very small
> group of people.  We have to increase the contribution level here or
> perhaps the automation level.  We have tooling that is helping now but
> still needs more attention.
>
> Vulnerability Management particular as it relates to dependencies
>
> Related to dependency management but broader.  This one at times requires
> us to do more than simply maintain dependencies.  It sometimes forces us to
> change libraries and sometimes even makes maintaining
> compatibility/configuration complicated.  These are among the most critical
> and most difficult tasks to take on.  This is largely done today by an
> extremely small group of people.
>
> Maintenance of extensions
>
> We have a ton of components in NiFi.  Obviously not all of them really do
> require active maintenance but there is often a contribute and forget model
> involved.  For us to keep these broad range of components under community
> care they need active maintenance.  I already mentioned the dependency
> factor above but the broader point here is that APIs/versions of systems
> evolve.  We need to be staying up to date.  There are systems like Kafka,
> Elastic, Mongo, Relational Databases, etc.. that we should always be
> supporting the latest on.  These are among the most wildly popular sources
> and destinations.  We do tend to fall behind here and this is powerfully
> useful for people to contribute to.  These are the things our users
> actually use NiFi for!
>
> Maintenance of things other than core nifi
>
> If you look at components ancillary to NiFi they receive far less attention
> and effort trending toward them going away.  The NiFi registry is a great
> example of this as NiFi MiNiFi Java for instance.  These are things which
> are useful and indeed there is a decent user base in both cases.  But they
> require more active maintenance than they get.  We need to evolve when it
> comes to security methods offered for authn/authz and that takes focus.
>
> Performance analysis and improvements targeted as a result
>
> This is done very rarely as far as I can tell outside a couple of people
> who I'm sure we could all name in a few seconds.  The codebase is large and
> Java and other parts evolve.  Continually emphasizing faster and more
> efficient operations is vital to NiFi's continued growth in the
> community at large.  People who spend time running NiFi in a measured
> manner with realistic flows and doing things like profiling for CPU,
> memory, etc.. and finding bottlenecks and offering solutions - absolutely
> can be high impact and valuable.  Even if not at a point where a confident
> contribution can be made, the very act of doing this level of evaluation
> and flagging concerns is valuable.
>
> Improvements related to tests both unit and integration - but also for
> users of NiFi
>
> As part of our push to NiFi 2.0 we have been running these tests far more
> often and more complete than ever before.  Github Actions now pretty much
> does run all the things.  We've deleted a wild amount of junk tests that
> would always fail or were spurious or required some complex local
> access/setup and therefore nobody ever ran them.  We need to always improve
> coverage but we want to make tests faster/more efficient and more
> leveraging of things like test containers would be highly valuable.
> Importantly though here I also mean to highlight we need to do a lot more
> for users of NiFi that want to create automated tests for their flows.  We
> should make it easy for them to provide a flow definition or perhaps a DSL
> for their flow and write tests which would leverage actual nifi to validate
> a given input results in an expected output.  This is something that would
> add a ton of value for our user base but also lead into some really
> powerful testing we can do against our own framework.
>
> Development of blogs/videos/conference presentations/social media posts
>
> Building great software by itself doesn't grow the community nearly as much
> as if you build a strong developer advocacy game.  People that create these
> various forms of blogs/videos and conference talks about NiFi, how it
> works, and how to make it better are extremely valuable.  That is often
> just as valuable or even more so than a PR review, code contribution, etc..
>
> Engagement in the Slack/Mailing lists
>
> Our community needs help.  They ask a lot of questions about how to use
> NiFi, bugs they are hitting, etc.. Responding to these questions in a
> timely and meaningful manner is hugely valuable to them and is also pretty
> fun for the person who helps out.
>
> Meaningful engagement acting as a pull request reviewer
>
> This one is last but certainly not least!  We have a review-then-commit
> model which means we need at least one committer or PMC member to review a
> contribution before it gets merged.  Even if you're not a committer or PMC
> member, a review is still super helpful and can save time and also puts you
> on a great path to earning merit.  Reviews are a critical part of the code
> and overall quality of NiFi.  'LGTM' is generally not that helpful and
> while warranted for some trivial things we even see it on larger more
> meaningful commits.  Not every review needs to be a back and forth affair
> of code style inputs either.  There is a middle ground and you'll find it
> as you engage in more reviews!    Code reviews are in far more short supply
> than code contributions.  I encourage everyone to please do at least one
> true pull request review for every contribution.  In general the goal
> should be to contribute to more pull request reviews than new pull requests
> created.  If you do so this by definition means the community is growing
> and you're directly helping make that happen!
>
> Would love to see additional inputs/missing categories/other thoughts.
> Perhaps this turns into a wiki page that helps give more context to people
> that want to find ways to add value and be on a path to committer and PMC
> membership as well.
>
> Thanks
> Joe
>

Reply via email to