|
| 1 | +# Contributing to ChatWithSQL |
| 2 | + |
| 3 | +Thank you for considering contributing to **ChatWithSQL**! We welcome contributions that improve this project and help make it more powerful, secure, and useful for the community. By contributing, you are helping to enhance the security and usability of a revolutionary Text-to-SQL system with schema validation. |
| 4 | + |
| 5 | +## How You Can Contribute |
| 6 | + |
| 7 | +There are several ways you can contribute to **ChatWithSQL**: |
| 8 | + |
| 9 | +### 1. Reporting Issues |
| 10 | +If you encounter any bugs, issues, or unexpected behavior while using the project, please open an **Issue** on our GitHub repository. Be sure to include the following details: |
| 11 | +- Steps to reproduce the issue |
| 12 | +- Expected behavior |
| 13 | +- Any error messages or logs |
| 14 | +- System details (OS, Python version, LLM provider, etc.) |
| 15 | + |
| 16 | +### 2. Suggesting Features |
| 17 | +We are constantly looking for ways to improve **ChatWithSQL**. If you have any ideas for new features or enhancements, feel free to open an **Issue** and label it with "Feature Request". Be sure to describe the use case and why you think this feature would be valuable. |
| 18 | + |
| 19 | +### 3. Writing Code |
| 20 | +We welcome code contributions in the form of pull requests (PRs). To ensure consistency, we ask that you follow these steps: |
| 21 | +- **Fork** the repository to your own GitHub account. |
| 22 | +- **Clone** your fork to your local machine. |
| 23 | +- **Create a branch** for your feature or bug fix (`git checkout -b feature-name`). |
| 24 | +- Make your changes and **commit** them with clear, concise commit messages. |
| 25 | +- **Push** your changes to your fork (`git push origin feature-name`). |
| 26 | +- Open a **Pull Request** to the main repository. Be sure to include a detailed description of your changes, why they were made, and how they improve the project. |
| 27 | + |
| 28 | +### 4. Writing Tests |
| 29 | +To ensure the reliability of **ChatWithSQL**, contributions that include new functionality should also come with appropriate tests. We use standard Python testing frameworks such as `unittest` or `pytest`. Please make sure your tests are comprehensive and cover edge cases. |
| 30 | + |
| 31 | +### 5. Improving Documentation |
| 32 | +Clear and concise documentation is crucial for making the project more accessible to new users and contributors. Here’s how you can help: |
| 33 | +- Improve **existing documentation** by clarifying or expanding on unclear parts. |
| 34 | +- Add **examples** demonstrating common use cases. |
| 35 | +- Update the **README.md** or **CONTRIBUTING.md** to reflect changes or new features. |
| 36 | + |
| 37 | +## Code Style Guidelines |
| 38 | +- Follow **PEP 8** for Python code style. |
| 39 | +- Use **docstrings** for all public classes, functions, and methods to describe their purpose and usage. |
| 40 | +- Include **type hints** wherever possible for better code clarity. |
| 41 | + |
| 42 | +## Code of Conduct |
| 43 | +We expect all contributors to follow the [Code of Conduct](https://www.contributor-covenant.org/), which promotes a welcoming and inclusive environment. Please be respectful to others in your communications and interactions. |
| 44 | + |
| 45 | +## License |
| 46 | +By contributing to this project, you agree that your contributions will be licensed under the same license as the project. See the `LICENSE` file for more information. |
| 47 | + |
| 48 | +## Acknowledgments |
| 49 | +We thank all contributors for their efforts and ideas. Without the open-source community, this project wouldn't be possible. |
0 commit comments