mojaloop / design-authority-project

This is the Issue and Decision Log for tracking mojaloop and related Designs
1 stars 2 forks source link

proposal: enforce conventional commit titles for Pull request reviews #71

Closed lewisdaly closed 2 years ago

lewisdaly commented 3 years ago

One Line Summary:

In order to better automate our release lifecycle, we should adopt conventional commits in our GitHub pull request titles.

Request Details:

One of the goals of the versioning workstream in this PI is to adopt more automated release strategies for our repos. Automating releases reduces the operational burden on the community, makes it easier to write release notes, and can improve development workflows for others depending on our components.

conventional commits has emerged as the industry standard for writing commit messages that can be used to automatically version software releases. We have adopted this approach with great success in some PISP workstream repos:

These releases and release notes were automatically generated based on the pull request titles, since the titles are what ends up being the merge commit message when github merges a PR.

We could add a PR title check similar to this github action in CircleCI, which would perform the validation, and fail if the pull request title is not written correctly.

Artifacts:

Example github action

Dependencies:

Accountability:

Decision(s):

This was discussed on 9/12/20. The decision was made to adopt this proposal.

Details

Follow-up:

- [ ] PR for documentation updates: https://github.com/mojaloop/documentation/pull/297 - [ ] update ci/cd for all core repos
godfreykutumela commented 3 years ago

Noted @lewisdaly and this is scheduled for the first 10min of next week's session.

elnyry-sam-k commented 3 years ago

This looks good, @lewisdaly , thank you.. I think we should adopt this, now that we have adopted SemVer for about 1.5 PIs

lewisdaly commented 3 years ago

Here's an example implementation that works well with our CI/CD: https://github.com/mojaloop/ml-operator/blob/master/scripts/_pr_title.js

From here, I'll add it to our circleci orb to make it more manageable across many codebases.