We follow the Conventional Commits specification for our commit messages. This helps us automatically generate changelogs and determine semantic version numbers.
<type>(<scope>): <description>
[optional body]
[optional footer]
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)refactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools and libraries such as documentation generation
The scope should be the name of the component or feature affected (as perceived by the person reading the changelog).
Examples:
feat(helper): New feature in the helper componentfix(api): Bug fix in the APIdocs(readme): Documentation changes in README
feat(helper): add new info panel component
fix(api): handle missing response data
docs(readme): update installation instructions
The release process is automated using GitHub Actions and semantic-release. When you push to the main branch:
- GitHub Actions workflow is triggered
- The workflow:
- Checks out the code
- Sets up Node.js
- Installs dependencies
- Builds the package
- Runs semantic-release
semantic-release will then:
- Analyze your commits
- Determine the next version number
- Generate a changelog
- Create a git tag
- Publish to npm
- Create a GitHub release
You don't need to manually update the version number or changelog - it's all handled automatically based on your commit messages.
The following secrets need to be configured in your GitHub repository:
NPM_TOKEN: An npm access token with publish permissionsGITHUB_TOKEN: Automatically provided by GitHub Actions
If you need to make changes to the release commit (like updating the changelog), you can skip the CI by including [skip ci] in your commit message.