|
| 1 | +# Contributing to Fezcodex |
| 2 | + |
| 3 | +We follow the **Conventional Commits** specification to keep our history clean and meaningful. This also helps in generating changelogs and understanding the scope of changes at a glance. |
| 4 | + |
| 5 | +## Commit Message Format |
| 6 | + |
| 7 | +Each commit message consists of a **header**, a **body**, and a **footer**. The header has a special format that includes a **type**, a **scope**, and a **subject**: |
| 8 | + |
| 9 | +``` |
| 10 | +<type>(<scope>): <subject> |
| 11 | +<BLANK LINE> |
| 12 | +<body> |
| 13 | +<BLANK LINE> |
| 14 | +<footer> |
| 15 | +``` |
| 16 | + |
| 17 | +### Types |
| 18 | + |
| 19 | +Must be one of the following: |
| 20 | + |
| 21 | +- **feat**: A new feature (e.g., `feat: add new achievements system`) |
| 22 | +- **fix**: A bug fix (e.g., `fix: correct layout on mobile`) |
| 23 | +- **docs**: Documentation only changes (e.g., `docs: update readme`) |
| 24 | +- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.) |
| 25 | +- **refactor**: A code change that neither fixes a bug nor adds a feature |
| 26 | +- **perf**: A code change that improves performance |
| 27 | +- **test**: Adding missing tests or correcting existing tests |
| 28 | +- **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation |
| 29 | +- **content**: **(Project Specific)** Adding or updating content such as: |
| 30 | + - Blog posts (`content(blog): add new post about react`) |
| 31 | + - Logs (`content(log): add review for new movie`) |
| 32 | + - Projects (`content(project): add details for new app`) |
| 33 | + - Music/Sounds (`content(audio): add new ambient track`) |
| 34 | + - Assets (`content(assets): update avatar image`) |
| 35 | + |
| 36 | +### Scope (Optional) |
| 37 | + |
| 38 | +The scope provides additional context to the type. For `content` types, the scope is highly recommended (e.g., `blog`, `log`, `project`). |
| 39 | + |
| 40 | +### Subject |
| 41 | + |
| 42 | +The subject contains a succinct description of the change: |
| 43 | +- Use the imperative, present tense: "change" not "changed" nor "changes" |
| 44 | +- Don't capitalize the first letter |
| 45 | +- No dot (.) at the end |
| 46 | + |
| 47 | +### Body (Optional) |
| 48 | + |
| 49 | +Just as in the **subject**, use the imperative, present tense. The body should include the motivation for the change and contrast this with previous behavior. |
| 50 | + |
| 51 | +### Footer (Optional) |
| 52 | + |
| 53 | +The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit closes. |
| 54 | + |
| 55 | +## Example |
| 56 | + |
| 57 | +``` |
| 58 | +content(log): add corrupted blood incident rant |
| 59 | +
|
| 60 | +- Added new text file for the post |
| 61 | +- Updated posts.json with metadata |
| 62 | +- Added unique category color for 'rant' |
| 63 | +``` |
0 commit comments