mirror of https://github.com/sysown/proxysql
- Comprehensive contribution guidelines for ProxySQL - Includes development setup, coding standards, and PR guidelines - Provides clear instructions for bug reports and feature requestspull/5245/head
parent
b73160ef5f
commit
689bece9ab
@ -0,0 +1,103 @@
|
|||||||
|
# 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!
|
||||||
Loading…
Reference in new issue