Contributing to VoxaCommunications Registry¶
Thank you for your interest in contributing to the VoxaCommunications Registry project! This document provides guidelines and instructions for contributing to this security-critical component of the VoxaCommunications network.
Table of Contents¶
- Code of Conduct
- Security Considerations
- Getting Started
- Development Environment
- Coding Standards
- Testing Requirements
- Pull Request Process
- Code Review Process
- Documentation
Code of Conduct¶
All contributors are expected to adhere to our code of conduct. Please be respectful and professional.
Security Considerations¶
As the Registry is a critical security component of the VoxaCommunications network:
- NEVER commit secrets, private keys, or credentials
- Report security vulnerabilities according to our SECURITY.md process
- All security-related changes require additional review
- Consider security implications of all code changes
Getting Started¶
- Fork the repository
- Clone your fork to your local development environment
- Set up the development environment as described in SETUP.md
- Create a feature branch from the
devbranch
Development Environment¶
To set up your development environment:
# Clone your fork
git clone https://github.com/Voxa-Communications/VoxaCommunications-Registry.git
cd VoxaCommunications-Registry
# Set up the development container
./build.sh
# Install dependencies
pip install -r requirements.txt
Coding Standards¶
We enforce the following standards:
- Follow PEP 8 Python style guidelines
- Use type hints for all functions and methods
- Document all public API functions with docstrings
- Keep line length to a maximum of 100 characters
- Ensure all code passes flake8 and mypy checks
You can check your code with:
# Run flake8
flake8 src tests
# Run mypy type checking
mypy src tests
Testing Requirements¶
All contributions must include appropriate tests:
- New features must include unit tests
- Bug fixes must include regression tests
- Maintain or improve code coverage percentage
- All tests must pass before submitting a pull request
Run tests with:
# Run unit tests
pytest
# Check test coverage
pytest --cov=src
Pull Request Process¶
- Update the documentation to reflect any changes
- Add or update tests to cover your changes
- Ensure all tests pass and code quality checks succeed
- Rebase your branch on the latest
developbranch - Submit a pull request to the
developbranch
Pull request titles should follow the format:
[TYPE]: Brief description of change
Where TYPE is one of:
- FEATURE: New functionality
- FIX: Bug fixes
- DOCS: Documentation changes
- REFACTOR: Code improvements without functional changes
- TEST: Adding or improving tests
- SECURITY: Security-related improvements
Code Review Process¶
All submissions undergo a thorough review process:
- Automated CI checks for tests, linting, and type checking
- Initial review by at least one maintainer
- Security review for any security-impacting changes
- Changes may be requested before approval
- Once approved, a maintainer will merge the pull request
Documentation¶
Documentation is critical for this project:
- Update README.md if necessary
- Document all most added features, APIs, and configuration options
- Keep code comments clear and up-to-date
- Consider adding examples for complex features
Thank you for contributing to the VoxaCommunications Registry project!