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.
There are several ways you can contribute to ChatWithSQL:
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:
- Steps to reproduce the issue
- Expected behavior
- Any error messages or logs
- System details (OS, Python version, LLM provider, etc.)
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.
We welcome code contributions in the form of pull requests (PRs). To ensure consistency, we ask that you follow these steps:
- Fork the repository to your own GitHub account.
- Clone your fork to your local machine.
- Create a branch for your feature or bug fix (
git checkout -b feature-name
). - Make your changes and commit them with clear, concise commit messages.
- Push your changes to your fork (
git push origin feature-name
). - 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.
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.
Clear and concise documentation is crucial for making the project more accessible to new users and contributors. Here’s how you can help:
- Improve existing documentation by clarifying or expanding on unclear parts.
- Add examples demonstrating common use cases.
- Update the README.md or CONTRIBUTING.md to reflect changes or new features.
- Follow PEP 8 for Python code style.
- Use docstrings for all public classes, functions, and methods to describe their purpose and usage.
- Include type hints wherever possible for better code clarity.
We expect all contributors to follow the Code of Conduct, which promotes a welcoming and inclusive environment. Please be respectful to others in your communications and interactions.
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.
We thank all contributors for their efforts and ideas. Without the open-source community, this project wouldn't be possible.