Standards for Merge Requests#
For MRs submitted to this project, please use titles that adhere to the following standards, inspired by the Conventional Commit standard. This allows us to keep a clean history and auto-generate Changelogs and release notes(planned).
Note
This project uses squash merging for all merge requests. The final commit message for each merge is taken from the merge request (MR) title, not from individual commit messages. Therefore, the Conventional Commit standard described here applies only to MR titles.
Why Use Conventional Commits for MR Titles?#
Automated changelogs: MR titles are parsed to generate changelogs and release notes.
Consistent history: Makes it easy to understand the purpose of each merged change.
Tooling support: Many CI/CD tools and code review systems support this format.
MR Title Format#
Each MR title must follow this pattern:
type(scope)!: description
type: The kind of change (see allowed types below)scope(optional): The part of the codebase affected, in parentheses!(optional): Indicates a breaking changedescription: Short summary of the change
Allowed Types#
feat: A new featurefix: A bug fixchore: Routine task, build, or maintenancedocs: Documentation only changesstyle: Formatting, missing semi colons, etc; no code changerefactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding or correcting testsci: Adding or updating the pipelines
Examples#
feat(task manager): add task manager service and dashboard componentfix(client): handle empty columns in database querydocs: update README with setup instructionsrefactor(core)!: remove deprecated method
Breaking Changes#
To indicate a breaking change, add ! after the type or scope:
feat!: drop support for Python 3.7fix(core)!: change API response format