Pull requests are accepted. If you wish to add a nontrivial feature, please create an issue first so we can discuss the implementation before creating a pull request. Bugfix pull requests are welcome anytime. If adding a new feature, please add test coverage as well.
We provide git hooks to enforce some lint rules. If you have
cargo make installed, you can run
cargo make install-hooks
or manually copy the hooks from .githooks
to
.git/hooks
.
We use conventional commits for creating changelogs. These are checked using committed. If you install the git hooks, these are checked before commit.
You don't have to use the conventional style for your commits if you don't want
to, but please make your PR title use it. We squash merge PRs so the PR title
will be the commit message going into main
.
We use some nightly-only features with rustfmt. If you're using rust analyzer,
you can enable running rustfmt
with nightly. See
here. If you're using
the command line, you can run cargo +nightly fmt
. If you install the git
hooks, these are checked before commit.
Tests have a transient dependency on the alsa-sys
crate. That crate needs the
libasound2-dev
package installed on Debian based systems.