First off, thank you for considering contributing to this project! It's people like you who make this project better.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps which reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include any error messages
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- A clear and descriptive title
- A detailed description of the proposed functionality
- Any possible implementation details
- Why this enhancement would be useful
Before starting, try to first open an issue, before starting your work on a PR. If an issue exists, make sure a PR isn't already opened for it.
- Fork the repository
- Clone your fork:
git clone https://github.com/solarliner/interflow - Create a new branch:
git checkout -b your-branch-name. Branch name should begin withfeature/,feat/,fix/orbugfix/in order to create folders and organize the branches, and for this reason, they should be in lowercase (so that we don't end up withfixandFixfolder on Linux machines!) - Make sure to have the prerequisites below
- Make your changes
- Run tests:
cargo test - Submit a PR: the title should be descriptive of the changes in one sentence, and should have the
closes \#NNNmessage that tells GitHub to automatically close the related issue, if there is one (there should, see above).
Open your PR early! You can mark your PR as a draft to signal that it isn't yet ready for review. Having PRs opened early shows what is being worked on and reduces the duplication of effort.
- Rust 1.85.0 or later
- Any supported audio API (or the one you want to add) to be able to run the tests.
pre-commitinstalled into the repository
- Fill in the required template
- Do not include issue numbers in the PR title
- Include screenshots and animated GIFs in your pull request whenever possible
- Follow the Rust style guidelines
- Include tests when adding new features
- Update documentation when changing core functionality
- Create a new branch from
main - Make your changes
- Write or update tests as needed
- Update documentation as needed
- Run
cargo fmtto format code - Run
cargo clippyto check for common mistakes - Run
cargo testfor unit tests, and run the examples to make sure they still work - Commit your changes using clear commit messages (see Git Commit Message).
- Push to your fork
- Open a Pull Request
While not enforced, the Conventional Commits is preferred.
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or fewer
- Reference issues and pull requests liberally after the first line
- Follow the Rust Style Guide
- Run
cargo fmtbefore committing - Use
cargo clippyto catch common mistakes - Write documentation for public APIs
- Include unit tests for new code
- Include tests for new features
- Update tests for bug fixes
- CI will ensure tests pass, however it is good practice to ensure all tests pass locally before pushing. Make sure to also check out the examples to make sure they work correctly.
- Write both unit tests and integration tests when applicable
- Keep API documentation in code up to date
- Add examples for new features
Feel free to open an issue with your question or contact the maintainers directly.
Thank you for contributing to this project! Your time and effort help make this project better for everyone.