This is the document with guidelines on how to contribute to Lince. It contains information on how to name commits and how to navigate the commands to run the project. Create an issue or discussion if you have any questions or suggestions.
To automatically generate new versions and releases, it is essential to follow a commit standard: Conventional Commits.
This project uses the Git Cliff crate together with the mask release command to automatically bump the version, creating tags and releases on GitHub and updating the CHANGELOG.md.
<type>(<optional scope>): <short message>
- type:
fix,feat,perf,security, etc. - scope: affected module or component (optional, but recommended).
- message: short description of what changed.
Examples:
git commit -m "fix(auth): fix login bug" git commit -m "feat(export): add PDF export" git commit -m "perf(db): optimize report query" git commit -m "security(auth): fix CSRF vulnerability" git commit -m "feat(api): new login route (BREAKING CHANGE)"
| Commit Prefix | Version Bump | Meaning |
|---|---|---|
fix |
Patch (*.*.X) |
Bug fix without changing existing functionality. |
perf |
Patch (*.*.X) |
Performance improvement without breaking compatibility. |
security |
Patch (*.*.X) |
Security vulnerability fix. |
feat |
Minor (*.X.*) |
New feature or compatible improvement. |
BREAKING CHANGE |
Major (X.*.*) |
Change that breaks compatibility with previous versions. |
⚠️ Commits with prefixes such aschore,build,ci,docs,style,test, orrefactordo not trigger a version bump, but still appear in the changelog.
The application can be run using mask, installed with:
cargo install maskThe main command is cargo run --release.
Check the mise.md for more information about the workflow.