Conventional Commits
This project adheres to the Conventional Commits specification. Conventional Commits is a convention for writing commit messages that provide a set of rules for creating an explicit commit history, which makes it easier to write automated tools on top of.
Commit Message Format
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:
Types
feat: a commit of the type feat introduces a new feature.
- feat: Add conventional commits documentation
- feat: Remove deprecated APIs from tools
- feat: Change the default configuration structure for tools
- feat: Replace existing data storage method with a new one in tools
- feat: Update API endpoints, causing backward incompatibility in tools
- feat: Add support for multiple languages
- feat: Implement dark mode for the user interface
- feat: Introduce a new logging system in tools
fix: a commit of the type fix patches a bug.
- fix: Correct issue causing unexpected crashes on startup
- fix: Resolve memory leak in data processing module
- fix: Fix typo in user-facing error messages
- fix: Address race condition in multi-threaded operations
- fix: Rectify incorrect data format in API responses
BREAKING CHANGE: a commit with a footer BREAKING CHANGE: or appends a ! after the type/scope, introduces a breaking API change.
- BREAKING CHANGE: Update authentication mechanism, requiring all users to re-authenticate
- BREAKING CHANGE: Modify API response format, affecting all clients
- BREAKING CHANGE: Remove support for legacy browsers
build: changes that affect the build system or external dependencies.
- build: Update build tools to the latest version
- build: Configure webpack for code splitting
- build: Add support for TypeScript compilation
chore: changes to the build process or auxiliary tools and libraries such as documentation generation.
- chore: Clean up obsolete configuration files
- chore: Synchronize project dependencies with the latest versions
- chore: Organize and tidy up the project directory structure
- chore: Refresh environment setup scripts
- chore: Purge unused npm scripts from the project
ci: changes to our CI configuration files and scripts.
- ci: Implement GitHub Actions for automated testing
- ci: Set up Travis CI for continuous integration
- ci: Add CircleCI configuration for build and test pipelines
- ci: Configure Jenkins pipeline for continuous deployment
- ci: Enable automated Docker image builds in CI pipeline
docs: documentation only changes.
- docs: Add conventional commits documentation
- docs: Add user guide for setting up the conventional commits tool
- docs: Update API documentation with new endpoints
- docs: Create FAQ section in the project documentation
- docs: Document new features added to the conventional commits tool
- docs: Revise contribution guidelines for the project
style: changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc).
- style: Reformat code to adhere to the project's style guide
- style: Apply consistent indentation across all files
- style: Standardize comment style throughout the codebase
- style: Fix eslint warnings and errors
- style: Remove trailing whitespaces in the code
refactor: a code change that neither fixes a bug nor adds a feature.
- refactor: Modularize monolithic codebase for better maintainability
- refactor: Simplify complex function logic
- refactor: Rename variables for better clarity
- refactor: Update codebase to follow new coding standards
- refactor: Restructure project files for improved organization
perf: a code change that improves performance.
- perf: Optimize query performance in the database layer
- perf: Reduce application startup time
- perf: Enhance caching mechanism for better performance
- perf: Improve rendering speed of the user interface
- perf: Streamline data processing algorithms
test: adding missing tests or correcting existing tests.
- test: Add unit tests for the new authentication feature
- test: Implement integration tests for API endpoints
- test: Write end-to-end tests for user login flow
- test: Add mock tests for external API calls
- test: Create regression tests for recently fixed bugs
revert: reverts a previous commit.
- revert: Revert changes that caused unexpected behavior
- revert: Roll back to the previous version of the data storage module
- revert: Undo changes that introduced a breaking API change
- revert: Revert commit that caused performance degradation
- revert: Roll back to the last stable release
Keywords
- MUST
- MUST NOT
- REQUIRED
- SHALL
- SHALL NOT
- SHOULD
- SHOULD NOT
- RECOMMENDED
- MAY
- OPTIONAL
Appendix
Phrasing for Conventional Commits
| Action | Examples |
|---|---|
| Add | Add new functionality for ... |
| Introduce | Introduce a new feature in ... |
| Remove | Remove deprecated functions from ... |
| Change | Change default settings for ... |
| Implement | Implement new caching strategy for ... |
| Replace | Replace ... with a more efficient ... |
| Update | Update dependencies to the latest version |
| Setup | Setup continuous integration for ... |
| Correct | Correct issue causing application crash |
| Resolve | Resolve memory leak in ... |
| Fix | Fix typo in ... |
| Address | Address performance issue in ... |
| Rectify | Rectify incorrect data format in ... |
| Create | Create user guide for ... |
| Configure | Configure environment variables for ... |
| Document | Document new feature ... |
| Revise | Revise contribution guidelines for ... |
| Enable | Enable feature flag for ... |
| Clean up | Clean up unused code in ... |
| Synchronize | Synchronize project dependencies with the latest versions |
| Organize | Organize project directory structure |
| Purge | Purge unused dependencies from ... |
| Optimize | Optimize database queries in ... |
| Reduce | Reduce load times for ... |
| Enhance | Enhance caching mechanism for better performance |
| Improve | Improve the load speed of ... |
| Modularize | Modularize components for better maintainability |
| Simplify | Simplify logic in ... |
| Rename | Rename variables for clarity |
| Restructure | Restructure project files for better organization |
| Reformat | Reformat codebase for better consistency |
| Apply | Apply consistent indentation across the project |
| Standardize | Standardize logging format in ... |