Enhancing Github Pull Request Checks in OpenJ9 Projects

When people push commits to GitHub, they should take responsibility for their changes in the form of a commit sign-off. This sign-off asserts that the developer has authored the change and has the legal right to contribute it. This sign-off is required by any OpenJ9 project repository including the Extensions repos. Eclipse already provides this in the “ip-validation” check [1] but we previously did not have this functionality for the Extensions repos. We have recently added an additional check to help ensure that contributors have followed the commit guidelines [2].

SignedOffByCheck is a Jenkins (groovy) file created to check the format of commits. When a contributor is creating a commit, they should use either the ‘-s’ option on the command line or use the check-box in the Eclipse IDE to automatically generate the ‘Signed-off-by’ line in their commit footer . The ‘Signed-off-by’ line contains the name and email of the person who creates the commit (e.g. Signed-off-by: John Doe <John.Doe@ibm.com>).

Each commit usually has three parts: title, body and footer. The ‘Signed-off-by’ line should always be included in the footer. No matter how many lines are in the footer, as long as one of them is the ‘Signed-off-by’ line and it is in the correct format mentioned above, then the check should pass.

The following paragraph shows a correct instance of commit:

Update and expand the commit guidelines

Elaborate on the style guidelines for commit messages. These new
style guidelines reflect the conversation found in #124.

The guidelines are changed to:
- Provide guidance on how to write a good first line.
- Elaborate on formatting requirements.
- Relax the advice on using issues for nontrivial commits.
- Move issue references from the first line to the message footer.
- Encourage contributors to put more information into the commit

Issue: #124
Signed-off-by: John Doe <John.Doe@ibm.com>

Here is also an example of bad commit, just to give some sense about what kind of commit would be detected and labelled as wrong:

commit 04f81b4bafcb748609ec0b3dbaec94170a7a4ea1
Author: John Doe <John.Doe@ibm.com>
Date:   Fri May 18 11:27:35 2018 -0400

        Change 2 testing with no "-s"

        * missing user email address    
        Signed-off-by: John Doe
        does not have a proper sign-off

Consequently, now with the SignOffByCheck,  committers and contributors would be assisted to commit in a standardized format, which would help solving issues with bad commit and offer a clean and tidy environment for the Extension repos.

Leave a Reply