Thank you for your interest in contributing to Soteric! We welcome contributions from the community, whether it's bug reports, feature requests, documentation improvements, or code changes.
- Rust 1.70 or later
- Cargo (comes with Rust)
- For macOS features: Xcode development tools
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/Soteric.git cd Soteric - Add the upstream repository:
git remote add upstream https://github.com/harsh-seth/Soteric.git
- Build the project:
cargo build
- Run tests:
cargo test
- Check existing issues and pull requests to avoid duplicate work
- For new features, open an issue to discuss your approach before implementing
- Keep commits focused and atomic
- Follow Rust conventions enforced by
rustfmt:cargo fmt
- Lint your code with
clippy:cargo clippy -- -D warnings
- Write descriptive commit messages explaining the "why" behind changes
- Add tests for new functionality
- Ensure all tests pass locally:
cargo test - Test on macOS if your changes touch biometric authentication
- See TESTING.md for detailed testing documentation
- Create a feature branch from
main:git checkout -b feature/your-feature-name
- Make your changes and commit them with clear messages
- Format and lint your code:
cargo fmt cargo clippy
- Push to your fork:
git push origin feature/your-feature-name
- Open a pull request against the main repository with:
- A clear title describing your change
- A description of what changed and why
- Reference to any related issues (e.g., "Fixes #123")
- Evidence that tests pass locally
- Keep PRs focused on a single feature or fix
- Keep changes minimal and easy to review
- Respond to feedback promptly
- Rebase and force-push to resolve conflicts (don't merge main into your branch)
Include:
- Expected behavior
- Actual behavior
- Steps to reproduce
- OS and Rust version (
rustc --version) - Relevant code snippets or configuration
Include:
- Use case and motivation
- Proposed API or behavior
- Alternative approaches considered
- Be respectful and inclusive
- Welcome diverse perspectives
- Report unacceptable behavior to the maintainers
By contributing to Soteric, you agree that your contributions will be licensed under the same license as the project (check LICENSE file for details).
Feel free to open a discussion issue or reach out to the maintainers directly. We're here to help!
Thank you for making Soteric better!