Contributing to Orb¶
Thank you for your interest in contributing to Orb!
Getting Started¶
- Fork the repository
- Clone your fork
- Create a feature branch
- Make your changes
- Submit a pull request
Development Setup¶
Code Guidelines¶
Style¶
- Follow Go conventions
- Use
gofmt - Run
go vet - Pass
golangci-lint
Testing¶
- Write unit tests
- Maintain >80% coverage
- Test edge cases
- Include examples
Documentation¶
- Comment exported functions
- Update README if needed
- Add examples
- Document breaking changes
Pull Request Process¶
-
Create Issue First
-
Describe the problem
- Propose solution
-
Get feedback
-
Write Code
-
Follow style guide
- Add tests
-
Update docs
-
Submit PR
-
Clear description
- Link to issue
-
Pass CI checks
-
Code Review
-
Address feedback
- Make requested changes
-
Maintain civility
-
Merge
- Squash commits
- Update changelog
- Close issue
Testing¶
# Run all tests
make test
# With coverage
go test -cover ./...
# Specific package
go test ./internal/crypto
Commit Messages¶
Types:
- feat: New feature
- fix: Bug fix
- docs: Documentation
- test: Tests
- refactor: Refactoring
- chore: Maintenance
Example:
feat(crypto): add support for XChaCha20
Implement XChaCha20-Poly1305 for extended nonce space.
Closes #123
Code Review Checklist¶
- Tests pass
- Code formatted
- Documentation updated
- No breaking changes (or documented)
- Security implications considered
- Performance impact assessed
Areas for Contribution¶
High Priority¶
- Security audits
- Performance optimization
- Documentation improvements
- Test coverage
- Bug fixes
Features¶
- Post-quantum cryptography
- Resume capability
- Progress bars
- Bulk operations
- GUI client
Infrastructure¶
- CI/CD improvements
- Docker images
- Package managers
- Benchmarks
- Fuzzing
Community¶
- GitHub Issues: Bug reports
- GitHub Discussions: Questions
- Pull Requests: Contributions
- Security: security@orb.example.com
Code of Conduct¶
Be respectful, inclusive, and professional.
License¶
By contributing, you agree your code is licensed under MIT.