|
| 1 | +# Contributing to CSQLY |
| 2 | + |
| 3 | +Thank you for considering contributing to CSQLY! This document outlines the guidelines for contributing to the project. |
| 4 | + |
| 5 | +## Code of Conduct |
| 6 | + |
| 7 | +This project adheres to a Code of Conduct. By participating, you are expected to uphold this code. |
| 8 | + |
| 9 | +## How Can I Contribute? |
| 10 | + |
| 11 | +### Reporting Bugs |
| 12 | + |
| 13 | +- Check if the bug is already reported in the [Issues](https://github.com/Standard-Query-Language/CSQLY/issues) |
| 14 | +- If not, create a new issue with details: |
| 15 | + - A clear title |
| 16 | + - A detailed description |
| 17 | + - Steps to reproduce |
| 18 | + - Expected behavior vs. actual behavior |
| 19 | + - Environment details (OS, .NET version, etc.) |
| 20 | + |
| 21 | +### Suggesting Enhancements |
| 22 | + |
| 23 | +- Check if the enhancement is already suggested in the [Issues](https://github.com/Standard-Query-Language/CSQLY/issues) |
| 24 | +- If not, create a new issue with details: |
| 25 | + - A clear title |
| 26 | + - A detailed description explaining the enhancement and its benefits |
| 27 | + - Any design considerations or implementation details |
| 28 | + |
| 29 | +### Pull Requests |
| 30 | + |
| 31 | +1. Fork the repository |
| 32 | +2. Create a feature branch (`git checkout -b feature/amazing-feature`) |
| 33 | +3. Make your changes |
| 34 | +4. Run tests and ensure they pass (`./run_tests.sh` or `run_tests.bat`) |
| 35 | +5. Update documentation if necessary |
| 36 | +6. Commit your changes following our [commit message guidelines](#commit-messages) |
| 37 | +7. Push to your branch (`git push origin feature/amazing-feature`) |
| 38 | +8. Open a Pull Request with a clear description of the changes |
| 39 | + |
| 40 | +## Development Setup |
| 41 | + |
| 42 | +1. Install .NET SDK 9.0 or later |
| 43 | +2. Clone the repository |
| 44 | +3. Run `dotnet restore` to restore dependencies |
| 45 | +4. Run `dotnet build` to build the solution |
| 46 | +5. Run `./run_tests.sh` or `run_tests.bat` to run tests |
| 47 | + |
| 48 | +## Project Structure |
| 49 | + |
| 50 | +- `/CSQLY` - Core library |
| 51 | +- `/CSQLY.Tests` - Unit tests |
| 52 | +- `/CSQLY.CLI` - Command-line interface |
| 53 | +- `/docs` - Documentation |
| 54 | + |
| 55 | +## Coding Guidelines |
| 56 | + |
| 57 | +- Follow C# coding conventions |
| 58 | +- Write unit tests for new features |
| 59 | +- Document public APIs with XML comments |
| 60 | +- Keep code maintainable and readable |
| 61 | + |
| 62 | +## Commit Messages |
| 63 | + |
| 64 | +Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification: |
| 65 | + |
| 66 | +```bash |
| 67 | +<type>(<scope>): <description> |
| 68 | + |
| 69 | +[optional body] |
| 70 | + |
| 71 | +[optional footer] |
| 72 | +``` |
| 73 | + |
| 74 | +Examples: |
| 75 | + |
| 76 | +- `feat(sqlite): add support for BLOB data` |
| 77 | +- `fix(parser): correct handling of null values` |
| 78 | +- `docs(readme): update installation instructions` |
| 79 | + |
| 80 | +## Review Process |
| 81 | + |
| 82 | +Pull requests will be reviewed by maintainers. The review process includes: |
| 83 | + |
| 84 | +- Code review for quality, maintainability, and adherence to project standards |
| 85 | +- Verification that tests pass and coverage is maintained |
| 86 | +- Documentation review if applicable |
| 87 | +- Ensuring the PR addresses a specific issue or enhancement |
| 88 | + |
| 89 | +## License |
| 90 | + |
| 91 | +By contributing to this project, you agree that your contributions will be licensed under the project's MIT License. |
0 commit comments