We use Conventional Commits for commit messages. This allows us to automatically generate changelogs and determine semantic version bumps.
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
feat
: A new feature (correlates with MINOR in SemVer)fix
: A bug fix (correlates with PATCH in SemVer)docs
: Documentation only changesstyle
: Changes that do not affect the meaning of the coderefactor
: 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 toolsci
: Changes to CI configuration files and scripts
Add BREAKING CHANGE:
in the commit footer to trigger a major version bump:
feat: allow provided config object to extend other configs
BREAKING CHANGE: `extends` key in config file is now used for extending other config files
feat(cli): add provider install command
fix(state): handle concurrent state updates
docs(readme): update installation instructions
test(init): add test for project initialization
- Fork the repository
- Create a feature branch
- Make your changes
- Write/update tests
- Run tests locally:
cargo test
- Push changes
- Create Pull Request
# Run all tests
cargo test
# Run specific test
cargo test test_init_creates_project_structure
# Run with logging
RUST_LOG=debug cargo test