Becoming an official Kafka Contributor

While I was in the process of preparing our Confluent Platform installation for an upgrade to Confluent Platform 8.0, which included Apache Kafka 4.0, I discovered a small typo in the Log4j2 configuration file - the Kafka State Change Appender log was incorrectly being rotated from state-change.log to stage-change.log.YYYYMMDD-HH - "stage" instead of "state". Rather than just saying "hey, this is broken, someone should fix it", I decided to fix it myself.

Apache Kafka has a Developer Guide that includes instructions for contributing changes to the Kafka codebase. The explicit step-by-step instructions for updating code is on the Contributing Code Changes - Pull Requests page.

Following those steps, I created Pull Request #20269, changing the one character typo. I did this directly in GitHub's editor, which inadvertently resulted in a newline character being added to the end of the file. That took a couple additional commits to correct.

Because this change in log rotation behavior would affect anyone running Apache Kafka 4.0.0 or 4.1.0, I was asked to update the upgrade notes for those versions, adding this as a "Notable Change". My pull request also generated an official bug report, KAFKA-19576, and I had to set up an account on Apache's JIRA to take ownership of the bug.

I initially submitted the PR on July 30th, and my fix was merged on August 5th - only 5 days to fully merge a one-character change!

It was a neat experience to identify and correct a small change like this.

Before:

44# State Change appender
45- name: StateChangeAppender
46  fileName: "${sys:kafka.logs.dir}/state-change.log"
47  filePattern: "${sys:kafka.logs.dir}/stage-change.log.%d{yyyy-MM-dd-HH}"

After:

44# State Change appender
45- name: StateChangeAppender
46  fileName: "${sys:kafka.logs.dir}/state-change.log"
47  filePattern: "${sys:kafka.logs.dir}/state-change.log.%d{yyyy-MM-dd-HH}"