Thanks for contributing to mfp.
- run
cargo fmt - run
cargo clippy - run
cargo test --release - keep changes focused and backward compatible where possible
On Linux, CI also requires libasound2-dev.
This repository uses Conventional Commit style PR titles because release automation relies on them.
Examples:
feat: add interactive volume controlfix: handle Ctrl+C during playbackdocs: update README playback controlsrefactor: simplify playback timing logictest: add duration parsing coverage
Recommended types:
featfixdocstestrefactorperfbuildcichoredepsrevert
If a PR title is not in the expected format, maintainers may edit it before merge.
Conventional Commit style commit messages are welcome, but they are not required.
Release automation relies primarily on the pull request title, so contributors do not need to rewrite individual commits just to match the release format.
Versioning notes:
feat-> minor releasefix-> patch release!orBREAKING CHANGE-> major release
If merge commits are used, keep the final merge commit title aligned with the PR title so release automation can infer the release correctly from git history.
Releases are automated:
release-pleaseopens a release PR and updatesCHANGELOG.md- merging the release PR creates the tag and GitHub release
- GitHub Actions builds release binaries and uploads them to the release
- GitHub Actions publishes the crate to crates.io
Please do not manually edit CHANGELOG.md for normal releases unless a
maintainer is intentionally correcting release notes.