Mathew, certainly! I've been meaning to update the blog too. Email me at mattyb...@apache.org and we'll get 'em up there :)
Thanks, Matt On Sat, Jun 15, 2024 at 2:46 PM Mathew Kiprop <mathewkipro...@gmail.com> wrote: > +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 > > >