โ† Back to Documentation

๐Ÿค Contributing Guide

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

  1. Fork the Repository: Create your own fork of WaddlePerf
  2. Clone Locally: git clone https://github.com/penguintechinc/WaddlePerf.git
  3. Set Up Development Environment: Follow the installation guide
  4. 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

  1. Create Clear Title: Describe the change concisely
  2. Write Description: Explain what, why, and how
  3. Link Issues: Reference related GitHub issues
  4. Add Tests: Include relevant test coverage
  5. 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.