Ways to Contribute
Report Bugs
Help identify and fix issues in Horse
Request Features
Suggest new features and improvements
Submit Code
Contribute bug fixes and new features
Improve Documentation
Help make Horse easier to learn and use
Getting Started
Fork and Clone
Start by forking the Horse repository to your GitHub account:Fork the repository
Visit github.com/HashLoad/horse and click the “Fork” button.
Development Environment
Horse can be developed using either Delphi or Lazarus:- Delphi
- Lazarus
Requirements:Open
- Delphi XE7 or later
- Boss package manager (recommended)
Horse.dproj in Delphi IDE and build the project.Reporting Issues
Good bug reports help maintainers understand and fix issues quickly.Before Creating an Issue
Search existing issues
Search existing issues
Check if someone has already reported the same issue:
- Visit Horse Issues
- Search for keywords related to your problem
- Check both open and closed issues
Verify the bug
Verify the bug
Make sure it’s actually a bug:
- Try with the latest version of Horse
- Test with a minimal example
- Check if it works in a fresh project
- Review the documentation to ensure you’re using it correctly
Gather information
Gather information
Collect relevant details:
- Horse version
- Delphi/Lazarus version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
Creating a Bug Report
Create New Issue
Open a new issue on GitHub
Additional Context
Error message or stack trace if available.Contributing Code
Coding Standards
Follow these conventions to maintain code consistency:- Style
- Documentation
- Structure
Naming Conventions:Indentation:
- Use 2 spaces for indentation
- No tabs
- Keep lines under 120 characters when practical
Testing
Test your changes before submitting:Horse aims for high test coverage. Current coverage:
- Console: 45%
- VCL: 43%
Submitting a Pull Request
Create pull request
- Go to your fork on GitHub
- Click “Pull Request”
- Select your branch
- Fill out the PR template
Pull Request Guidelines
Keep PRs focused
Keep PRs focused
- One feature or fix per PR
- Avoid mixing unrelated changes
- Split large changes into multiple PRs if needed
Update documentation
Update documentation
- Add XML doc comments for public APIs
- Update README if behavior changes
- Include code examples for new features
Maintain compatibility
Maintain compatibility
- Avoid breaking existing APIs unless absolutely necessary
- If breaking changes are needed, document them clearly
- Consider deprecation warnings before removal
Follow commit conventions
Follow commit conventions
Use clear commit message prefixes:
feat:for new featuresfix:for bug fixesdocs:for documentationrefactor:for code restructuringtest:for test additions/changeschore:for maintenance tasks
Creating Middlewares
Extend Horse functionality by creating middlewares:Middleware Structure
Publishing Your Middleware
Create repository
Host your middleware on GitHub with:
- Clear README with installation and usage
- License file (MIT recommended)
- Sample application
- Boss configuration if applicable
Add to community list
Submit a PR to add your middleware to the Horse README.
Announce it
Share your middleware in the Telegram channel.
Community Guidelines
Code of Conduct
Be respectful and professional:- Be welcoming and inclusive
- Respect differing viewpoints
- Accept constructive criticism gracefully
- Focus on what’s best for the community
- Show empathy towards other members
Getting Help
Telegram Community
Ask questions and get help from other developers
GitHub Discussions
Start discussions about features and ideas
Staying Updated
Watch the repository
Click “Watch” on GitHub to get notified of updates.
Join Telegram
Connect with the community on Telegram.
License
Horse is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the same terms. MIT License Summary:- Commercial use allowed
- Modification allowed
- Distribution allowed
- Private use allowed
- No warranty provided
View Full License
Read the complete MIT License text
Recognition
Contributors are recognized in several ways:- Listed in the GitHub contributors graph
- Mentioned in release notes for significant contributions
- Community acknowledgment on Telegram
- Profile linked in the README (for major contributors)
View Contributors
See all Horse contributors
Next Steps
Explore Examples
Learn from real-world Horse applications
Browse Ecosystem
Discover middlewares and tools
Thank you for contributing to Horse! Every contribution, no matter how small, helps make Horse better for everyone.
