Commit
Remember that you must add all the files related to your solution in only one
commit. We invite you to get familiar with the commit
concept by reading
the Gitlab
documentation.
#
1.1 SyntaxValid commit messages have the structure:
[variable] are required variables that must be replaced in a final commit message ([] symbols must be removed)
{variable} are optional variables that must be replaced or removed in a final commit message ({} symbols must be removed)
// Comment are comments that must be removed in a final commit message
#
1.2 RulesThe following rules must be met for a commit message to be valid, the product rule only required for the integrates repository:
[product] variable has to be one of the following:
[type] variable has to be one of the following:
[scope] variable has to be one of the following:
A Commit title must exist.
A Commit title must not contain the ':' character.
Commit title must have 60 characters or less.
Commit title must be lower case.
Commit title must not finish with a dot '.'.
Commit title must reference an issue.
Commit title must be meaningful. Avoid using things like
feat(build)[integrates]: #5.1 feature
.If commit title has sol type, it must reference issue #0.
A commit body mustn't exist.
Lines in commit body must have 72 characters or less.
#
1.3 Possible combinationsBelow is a table explaining all the possible combinations between types and scopes for a commit message (Types are columns, scopes are rows):
rever | feat | perf | fix | refac | test | style | |
---|---|---|---|---|---|---|---|
front | Revert front-end to a previous version | Add new feature to front-end | Improve perf in front-end | Fix something in front-end | Change something in front-end | Add tests for front-end | Change front-end code style |
back | Revert back-end to a previous version | Add new feature to back-end | Improve perf in back-end | Fix something in back-end | Change something in back-end | Add tests for back-end | Change back-end code style |
infra | Revert infra to a previous version | Add new feature to infra | Improve perf in infra | Fix something in infra | Change something in infra | Add tests for infra | Change infra code style |
conf | Revert config files to a previous version | Add new feature to config files | NA | Fix something in config files | Change something in config files | NA | Change config files code style |
build | Revert building tools to a previous version | Add new feature to building tools or add a new building tool | Improve building perf | Fix something in building tools | Change something in building tools | Add tests for building tools | Change building tools code style |
job | Revert jobs to a previous version | Add new feature to jobs or add a new job | Improve jobs perf | Fix something in jobs | Change something in jobs | Add tests for jobs | Change jobs code style |
cross | Revert several scopes to a previous version | Add new feature for several scopes | Improve perf in several system parts | Fix something in several system parts | Change something in several system parts | Add tests for several system parts | Change code style in several system parts |
doc | Revert doc to a previous version | Add new doc | NA | Fix something in doc | Change something in doc | NA | Change doc style |
Where:
perf is performance.
infra is infrastructure.
config is configuration.
doc is documentation.
NA is not applicable.
#
1.4 RecommendationsTry to itemize your commit body:
Do not use the word 'part' for splitting commits or MRs for a single issue. Use #[issue-number]{.issue-part} instead as shown in Example
#
1.5 ExampleHere is an example of a compliant commit message (Notice how the issue has a '.1' right after, meaning that such commit is the part 1 for solving the issue):
for challenges we have a hacking-ctf and code template and a hacking VbD template and this is an example for code: