Ways to Contribute
There are many ways to contribute to Queryly:Report Bugs
Open an issue with details and reproduction steps
Suggest Features
Share your ideas for new functionality
Submit Pull Requests
Fix bugs or add features
Improve Documentation
Help make the docs clearer
Getting Started
Prerequisites
Before you begin, ensure you have the following installed:- .NET 8.0 SDK or later - Download
- Git - Download
- A code editor - Visual Studio, VS Code, or Rider recommended
Development Setup
Visit github.com/Ayine-nongre/queryly and click the “Fork” button.
Development Workflow
1. Create a Feature Branch
Always create a new branch for your work:feature/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoring
2. Make Your Changes
Edit the code, following our coding standards.3. Test Your Changes
Run tests frequently during development:4. Commit Your Changes
Write clear, concise commit messages:Add support for table indexes in schema viewFix connection leak in PostgreSQL providerUpdate documentation for connection strings
Fixed stuffWIPUpdate
5. Keep Your Branch Updated
Regularly sync with the upstream repository:6. Push Your Branch
7. Create a Pull Request
Go to your fork on GitHub and click “New Pull Request”. Pull Request Guidelines:- Provide a clear title and description
- Reference any related issues (e.g., “Fixes #123”)
- Include screenshots for UI changes
- Ensure all tests pass
- Wait for code review feedback
Coding Standards
C# Style Guide
We follow standard C# conventions:Naming Conventions
File Organization
Async/Await
Always use async/await for I/O operations:Error Handling
Provide meaningful error messages:Resource Management
Always dispose of resources:Code Documentation
Document public APIs with XML comments:Testing Guidelines
Writing Tests
We use xUnit for testing. Place tests intests/Queryly.Tests/.
Test Structure
Test Naming Convention
Use the pattern:MethodName_Scenario_ExpectedResult
Examples:
GetTablesAsync_WithEmptyDatabase_ReturnsEmptyListTestConnectionAsync_WithInvalidHost_ReturnsFalseGetColumnsAsync_WithValidTable_ReturnsColumnList
Running Specific Tests
Project Structure
Understand the codebase organization:Finding Issues to Work On
Good First Issues
Look for issues labeledgood-first-issue on GitHub:
View Good First Issues
Help Wanted
Issues labeledhelp-wanted are ready for contributions:
View Help Wanted Issues
Suggesting New Features
Before suggesting a feature:- Check existing issues to avoid duplicates
- Clearly describe the use case
- Explain why it benefits Queryly users
Pull Request Process
Build Commands Reference
Essential Commands
Publishing
Getting Help
If you need help or have questions:GitHub Discussions
Ask questions in GitHub DiscussionsGitHub Issues
Report bugs or request features at GitHub IssuesContact the Maintainer
- GitHub: @Ayine-nongre
- LinkedIn: Eugene Atinbire
Code of Conduct
Be Respectful
Treat all contributors with respect and kindness.Be Collaborative
Work together to improve Queryly.Be Constructive
Provide helpful feedback in code reviews.License
By contributing to Queryly, you agree that your contributions will be licensed under the MIT License.Recognition
All contributors are recognized in:- GitHub contributor list
- Release notes
- Project documentation