# ๐Ÿ“‹ Commit Guidelines This section is meant for maintainers. Contributors do not need to worry about commit messages as PRs are squash-merged before being integrated into the project. --- ## โœ๏ธ Commit Format We follow **Conventional Commits** to standardize commit messages, making it easier to understand the purpose of each change. Commit messages should include an **emoji** to indicate the type of change and follow the format below: ```html [()]: ``` For breaking changes, add a `!` after the type or scope. --- ## ๐Ÿ—‚๏ธ Commit Types :::{list-table} * - `โœจ feat` - Adds a new feature or significant functionality * - `๐Ÿ› fix` - Corrects a bug or malfunction * - `โšก๏ธ perf` - Optimizes code to improve performance * - `โ™ป๏ธ refactor` - Restructures existing code without changing its behavior * - `๐ŸŽจ style` - Updates code style without affecting behavior (e.g., formatting, spacing) * - `๐Ÿ“ docs` - Changes or improves project documentation * - `๐Ÿงช test` - Adds new tests or updates existing ones * - `๐Ÿ”จ build` - Updates to scripts responsible for building project parts * - `โš™๏ธ ci` - Changes to continuous integration workflows or scripts * - `๐Ÿ› ๏ธ chore` - Routine tasks like version bumps, metadata updates, or asset maintenance ::: --- ## ๐ŸŽฏ Using Scopes Commit messages can include a **scope** to specify which part of the project is affected. Example: ``` ๐Ÿ“ docs(bs.block): update get_block output ``` --- ## โš ๏ธ Breaking Changes If a change introduces a **breaking change**, add a `!` after the type or scope. Example: ``` โœจ feat(bs.block)!: add a new macro argument to the replace_type function ``` This helps ensure that users are aware of any changes that might affect compatibility.