Thanks for the feedback! A few common answers first: I think "Approved-by" should be the only required trailer. Since approving a PR implies a review, I think we can keep the mandatory trailers just to a single one.
"Co-authored-by" is added automatically by GitHub if a PR has commits from another author. I don't think we can modify this. "Signed-off-by" is added automatically by GitHub if a PR has commits which were cryptographically signed (e.g. "git commit -S"). Again, we can't control this. For the two trailers automatically added by GitHub, if we include them explicitly in the PR body they will not be added a second time by GH. For an example, see https://github.com/apache/kafka-merge-queue-sandbox/pull/68 and the resulting commit https://github.com/apache/kafka-merge-queue-sandbox/commit/a100107be3cb7bd2256acc9552f3697a597b86e9. The reason we want to add them explicitly is that if we don't, GitHub will add them automatically below a blank line which will break other trailers. --- Ismael, 1) Yes, I would love to see this 2) GitHub arguably uses Signed-off-by incorrectly, but it's out of our control. José, I would like to reserve "Approved-by" for the binding committer approval of the PR. As Ismael suggested offline, we could use the following: Commented-by: left any comment on the PR (any contributor) Reviewed-by: did a full review on the PR (any contributor) Approved-by: committer(s) who approved the PR Chia, I personally don't find the Jira ticket in the commit subject to be very useful, but this is probably a contentious opinion :) Moving it to a trailer lets us reference multiple tickets or other resources so we can still search by ticket number. We can leave the KAFKA-12345 in the commit subject. Kirk, I'd like to automate this as much as possible. I think we can eventually have all of the important trailers automatically populated. -David On Wed, Mar 26, 2025 at 3:00 PM Kirk True <k...@kirktrue.pro> wrote: > Hi David, > > In general, I'm in favor of adding information where reasonably possible. > > How are these header values populated by the merging committer? Magic or > manual? > > I agree with others that adding so many additional "*-by" headers could be > confusing, leading to inconsistent usage. Is the equivalent of the > "Signed-off-by" header already captured by git/GitHub on merge? > > Thanks, > Kirk > > On Tue, Mar 25, 2025, at 5:06 PM, David Arthur wrote: > > Hello Kafka community! > > > > I wanted to start a discussion around our Git commits and the metadata we > > keep in them. > > > > We have historically used the "Reviewers" Git trailer [1] to indicate who > > had reviewed a commit. Originally, it seems we used this field to > indicate > > the committer who approved the change (per our By-Laws). But over time, > its > > usage has expanded to include anyone (committer or not) who left a > comment > > on the PR. > > > > I think acknowledging reviews is very important for our community, and I > > want to continue doing this. > > > > I also think it is important to record the committer who approved a given > > PR. > > > > Besides improving the quality of our Git log, I'm raising this issue > > because of a limitation/quirk I've discovered in GitHub. While > researching > > https://github.com/apache/kafka/pull/19242 I found that GitHub will > > automatically re-wrap the text of the PR body to fit 72 characters. This > > will blindly break long "Reviewers" lines (which we regularly exceed). > This > > will make it difficult to easily find reviewers of PRs using the Git log. > > > > I would like to propose that we start using the following Git trailers in > > our PRs: > > > > * Reviewed-by: anyone who left feedback on the PR > > - * Approved-by: committers who approved the PR > > - * Helped-by: shout-outs for inspiration or significant help > > - * Signed-off-by: commit signatory > > - * Fixes: KAFKA-12345 < > https://issues.apache.org/jira/browse/KAFKA-12345> > > - * References: KIP-123, KAFKA-23456, apache/flink#1234, etc > > > > Each "-by" trailer should include only a single individual using the > > standard "First Last <email>" format. Multiple instances of the same > > trailer are allowed. Before merging, we would use a GitHub Action to > verify > > that at least one "Approved-by" is present. > > > > This accomplishes a few things: > > > > * Works around the GitHub 72 character limit > > * Keeps a cleaner record of reviewers vs approvers > > * Allows us to move metadata out of the commit subject, if desired (e.g., > > KAFKA-12345) > > > > Structuring the metadata in this way allows us to use standard git > commands > > to parse the commits. This helps us move towards a fully automated > process > > where we populate these fields from the GitHub Pull Request data. > > > > Let me know what you think! > > > > David Arthur > > > > [1] https://git-scm.com/docs/git-interpret-trailers > > > -- David Arthur