First off, thank you for considering contributing to videocall.rs! It's people like you that make this project such a great tool. This document provides guidelines and steps for contributing.
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
This section guides you through submitting a bug report. Following these guidelines helps maintainers understand your report, reproduce the behavior, and find related reports.
- Check the GitHub issues to see if the problem has already been reported. If it has and the issue is still open, add a comment to the existing issue instead of opening a new one.
- Collect information about the bug:
- Stack trace (if applicable)
- OS and version
- Browser version (if applicable)
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
Bugs are tracked as GitHub issues. Create an issue and provide the following information:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the bug
- 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 screenshots or animated GIFs if possible
This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality.
- Check the GitHub issues to see if the enhancement has already been suggested.
- Determine which repository the enhancement should be suggested in (is it related to the backend, frontend, or a specific component?).
Enhancement suggestions are tracked as GitHub issues. Create an issue and provide the following information:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful to most users
- Include any relevant mockups or diagrams
- List specific examples of how this enhancement would be used
- Fork the repository
- Clone your fork locally:
git clone https://github.com/your-username/videocall-rs.git cd videocall-rs
- Add the original repository as a remote:
git remote add upstream https://github.com/security-union/videocall-rs.git
- Follow the setup instructions in the README.md to configure your development environment.
- Create a new branch from the latest
main
:git checkout main git pull upstream main git checkout -b feature/your-feature-name
- Make your changes
- Follow the coding standards and run tests:
cargo fmt cargo clippy -- -D warnings cargo test
- Commit your changes with a descriptive commit message following the Conventional Commits specification:
git commit -m "feat: add new feature"
- Push to your fork:
git push origin feature/your-feature-name
- Create a pull request from your fork to the main repository
- Update documentation for significant changes
- Add tests for new functionality
- Maintain the existing code style
- Keep pull requests focused on a single concern
- Link related issues in the pull request description
- Be prepared to address feedback and make changes if requested
For significant changes that require broader discussion, we use a Request for Comments (RFC) process:
- Check the rfc directory for existing RFCs related to your proposal
- Create a new markdown file in the RFC directory following the naming convention:
rfc-XX-your-proposal-name.md
- Use the template format from existing RFCs
- Submit a PR with your RFC
- The RFC will be discussed with the community and core team
- Once approved, the implementation can begin
- Follow the Rust API Guidelines
- Use meaningful variable and function names
- Keep functions focused on a single responsibility
- Comment complex logic or non-obvious decisions
- Use
cargo fmt
andcargo clippy
before committing
- Write unit tests for new functionality
- Ensure all tests pass before submitting a PR
- Include integration tests for API changes
- Test browser compatibility for frontend changes
- Update API documentation for public interfaces
- Add JSDoc or equivalent comments for JavaScript/TypeScript
- Update README and other docs for user-facing changes
- Document new features with examples
Join our Discord server to discuss development, ask questions, and get help.
Contributors will be acknowledged in the project README.
Thank you for your contributions!