This project follows the Conventional Commits specification for commit messages to automate version management and package releases.
Each commit message consists of a header, a body, and a footer:
<type>(<scope>): <subject>
<body>
<footer>
The header is mandatory and must conform to the following format:
- type: The type of change being made (e.g., feat, fix, docs)
- scope (optional): The scope of the change (e.g., component or file name)
- subject: A short description of the change
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code (white-space, formatting, etc)
- refactor: A code change that neither fixes a bug nor adds a feature
- perf: A code change that improves performance
- test: Adding missing tests or correcting existing tests
- build: Changes that affect the build system or external dependencies
- ci: Changes to our CI configuration files and scripts
- chore: Other changes that don't modify src or test files
A commit that introduces a breaking API change should:
- Have a footer starting with
BREAKING CHANGE:followed by a space or two newlines and a description - Include a
!after the type/scope to highlight that it contains breaking changes
Example:
feat!: remove support for Node 10
BREAKING CHANGE: Node 10 is no longer supported.
feat: add user authentication
fix(api): handle error responses properly
docs: update README with new API endpoints
style(button): improve button component styling
refactor: reorganize utility functions
perf(rendering): optimize rendering performance
test(auth): add tests for authentication service
build(deps): update dependencies
ci: configure GitHub Actions workflow
chore: update .gitignore
This project uses automatic versioning based on conventional commits:
fix:commits trigger a PATCH release (e.g., 1.0.0 → 1.0.1)feat:commits trigger a MINOR release (e.g., 1.0.0 → 1.1.0)- Any commit with
BREAKING CHANGE:in the footer or with!after type/scope triggers a MAJOR release (e.g., 1.0.0 → 2.0.0)
- Push your changes to the main branch using conventional commits
- The CI/CD pipeline will automatically:
- Analyze commits since the last release
- Determine the next version number
- Create a release pull request
- Generate a changelog
- Review and merge the release PR
- Upon merging, the system will:
- Create a GitHub release with release notes
- Publish the Go package
- Publish the NPM packages for the frontend components