You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
proxysql/CONTRIBUTING.md

103 lines
3.0 KiB

# Contributing to ProxySQL
Thank you for your interest in contributing to ProxySQL! We welcome contributions from the community.
## Code of Conduct
We expect all contributors to be respectful and constructive. Please help us maintain a welcoming environment for everyone.
## Before You Start
Discuss major changes: For significant features or architectural changes, please open an issue first to discuss.
Check existing issues: Someone might already be working on something similar.
Reference issues: When fixing bugs or implementing requested features, mention the issue number in your PR.
## Development Setup
ProxySQL provides Docker build images for development. The required packages for building are listed in the Dockerfiles at: https://github.com/ProxySQL/docker-images/tree/main/build-images
For example, to see packages needed for Ubuntu 24.04, check: https://github.com/ProxySQL/docker-images/blob/main/build-images/build-ubuntu24/Dockerfile
## Making Changes
- Fork the repository
- Create a feature branch: `git checkout -b feature/your-feature-name`
- Make your changes
- Ensure your code builds successfully
- Submit a Pull Request
## Coding Standards
Follow the existing code style and patterns in the codebase
Use clear, descriptive names for variables and functions
Add comments for complex logic
Keep functions focused and maintainable
### For C++ Code:
- Use C++11/14 features appropriately
- Follow RAII principles for resource management
- Consider performance implications (ProxySQL is performance-critical)
## Testing
All PRs will go through our automated testing suite. While the full testing framework isn't publicly available, we encourage you to test your changes as thoroughly as possible.
## Commit Messages
Recommendations (not strict requirements):
- Use descriptive messages that explain what changed and why
- Reference issue numbers when applicable (`#123`)
- Keep the first line under 72 characters
**Example:** `Fix memory leak in connection pooling (#456)`
## Pull Request Guidelines
- Use a clear title and description
- Explain what was changed and why
- Note any breaking changes or performance impacts
- Update documentation if functionality changes
## Reporting Bugs
Please include in bug reports:
- ProxySQL version
- Steps to reproduce
- Expected vs actual behavior
- Relevant configuration details
- Logs (with sensitive data redacted)
## Feature Requests
For new features, please:
- Describe the feature/problem clearly
- Explain the use case
- Consider performance implications
- Note any backward compatibility concerns
## Questions and Support
- **Mailing list**: Join the ProxySQL mailing list for discussions
- **GitHub issues**: Use GitHub issues for questions, bugs, and feature requests
- **Search existing issues** before creating new ones
## Recognition
Contributors will be credited in the release notes for their contributions.
## License
By contributing to ProxySQL, you agree that your contributions will be licensed under the project's GPLv3 license.
---
Thank you for helping make ProxySQL better!