Skip to content

ci: rework commit message template #4152

@thomaseizinger

Description

@thomaseizinger

Once mergify exposes co-authorship as a first-class attribute (see Mergifyio/mergify#5091), we should work on our commit message template again.

In particular, we have the following requirements:

  1. There must not be any empty lines between any of the trailers for git interpret-trailers to work correctly.
  2. Each trailer must be on a separate line.

This presents a bit of a challenge that I'd like to document here. For one, to save on characters in the commit message title, we want to link to the pull-request via a trailer, like so: Pull-request: #XYZ. This would be error-prone to do manually so this should done automatically in the template. As a result, we will always have at least one trailer!

To automatically close issues or link to related ones, we often use the Resolves: #XYZ or Related: #XYZ trailer. Here comes the tricky bit:

  • Trailers need to be separated with a newline from the main message body, otherwise they are not considered trailers but just regular lines of the commit message.
  • We do not always have a a Resolved or Related trailer.

Can we write a Jinja2 template that always correctly generates the trailers? I think we might have to create a separate section in our pull-request template for handwritten trailers. This section would be inserted without newlines in the commit message whereas the main ## Description section would be unconditionally separated with a newline from the trailers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions