Welcome Contributors!
We're excited that you're interested in contributing to WaddlePerf! This guide will help you get started with contributing to our open-source network performance testing platform.
๐ Getting Started
- Fork the Repository: Create your own fork of WaddlePerf
- Clone Locally:
git clone https://github.com/penguintechinc/WaddlePerf.git - Set Up Development Environment: Follow the installation guide
- Create Feature Branch:
git checkout -b feature/your-feature-name
๐ ๏ธ Development Environment
Prerequisites:
- Go 1.21+ for client development
- Python 3.8+ for server and testing tools
- Docker & Docker Compose for local testing
- Node.js 18+ for website development
Setup Commands:
# Server development cd server pip install -r requirements.txt # Go client development cd go-client go mod download # Website development cd website npm install
๐ Contribution Types
- Bug Fixes: Fix identified issues and improve stability
- Feature Development: Add new testing capabilities
- Documentation: Improve guides, examples, and API docs
- Performance Optimization: Enhance speed and resource usage
- Testing: Add unit tests, integration tests, and examples
๐ Code Standards
Go Code:
- Follow
gofmt formatting - Use meaningful variable and function names
- Include comprehensive error handling
- Write unit tests for new functions
Python Code:
- Follow PEP8 style guidelines
- Use type hints where appropriate
- Include docstrings for functions and classes
- Maintain async/threading patterns
๐งช Testing Requirements
- Unit Tests: Test individual functions and components
- Integration Tests: Test component interactions
- Performance Tests: Ensure no performance regression
- Documentation Tests: Verify examples work correctly
๐ค Pull Request Process
- Create Clear Title: Describe the change concisely
- Write Description: Explain what, why, and how
- Link Issues: Reference related GitHub issues
- Add Tests: Include relevant test coverage
- Update Documentation: Keep docs current with changes
๐ท๏ธ Issue Labels
- good-first-issue: Perfect for new contributors
- bug: Something isn't working correctly
- enhancement: New feature or improvement
- documentation: Improvements to documentation
- performance: Speed or efficiency improvements
๐ฌ Communication
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: General questions and ideas
- Pull Request Comments: Code review and feedback
- Email: dev@penguintech.io for private matters
๐ Recognition: All contributors are acknowledged in our README and release notes. Thank you for helping make WaddlePerf better!
๐ Code of Conduct
We are committed to providing a welcoming and inspiring community for all. Please review our Code of Conduct before contributing.
๐ Need Help?
Don't hesitate to ask questions! Create an issue with the "question" label or reach out via email. We're here to help you contribute successfully.