Getting Started
Before you start contributing, please:- Set up your development environment - Follow the Local Development guide in the Honcho repository to get Honcho running locally.
- Join our community - Feel free to join us in our Discord to discuss your changes, get help, or ask questions.
- Review existing issues - Check the issues tab to see what’s already being worked on or to find something to contribute to.
Contribution Workflow
1. Fork and Clone
- Fork the repository on GitHub
- Clone your fork locally:
- Add the upstream repository as a remote:
2. Create a Branch
Create a new branch for your feature or bug fix:feature/description
- for new featuresfix/description
- for bug fixesdocs/description
- for documentation updatesrefactor/description
- for code refactoringtest/description
- for adding or updating tests
3. Make Your Changes
- Write clean, readable code that follows our coding standards (see below)
- Add tests for new functionality
- Update documentation as needed
- Make sure your changes don’t break existing functionality
4. Commit Your Changes
We follow conventional commit standards. Format your commit messages as:feat
: A new featurefix
: A bug fixdocs
: Documentation only changesstyle
: Changes that do not affect the meaning of the coderefactor
: A code change that neither fixes a bug nor adds a featuretest
: Adding missing tests or correcting existing testschore
: Changes to the build process or auxiliary tools
5. Submit a Pull Request
-
Push your branch to your fork:
-
Create a pull request on GitHub from your branch to the
main
branch -
Fill out the pull request template with:
- A clear description of what changes you’ve made
- The motivation for the changes
- Any relevant issue numbers (use “Closes #123” to auto-close issues)
- Screenshots or examples if applicable
Coding Standards
Python Code Style
- Follow PEP 8 style guidelines
- Use Black for code formatting (we may add this to CI in the future)
- Use type hints where possible
- Write docstrings for functions and classes using Google style docstrings
Code Organization
- Keep functions focused and single-purpose
- Use meaningful variable and function names
- Add comments for complex logic
- Follow existing patterns in the codebase
Testing
- Write unit tests for new functionality
- Ensure existing tests pass before submitting
- Use descriptive test names that explain what is being tested
- Mock external dependencies appropriately
Documentation
- Update relevant documentation for new features
- Include examples in docstrings where helpful
- Keep README and other docs up to date with changes
Review Process
- Automated checks - Your PR will run through automated checks including tests and linting
- Project maintainer review - A project maintainer will review your code for:
- Code quality and adherence to standards
- Functionality and correctness
- Test coverage
- Documentation completeness
- Discussion and iteration - You may be asked to make changes or clarifications
- Approval and merge - Once approved, your PR will be merged into
main
Types of Contributions
We welcome various types of contributions:- Bug fixes - Help us squash bugs and improve stability
- New features - Add functionality that benefits the community
- Documentation - Improve or expand our documentation
- Tests - Increase test coverage and reliability
- Performance improvements - Help make Honcho faster and more efficient
- Examples and tutorials - Help other developers use Honcho
Issue Reporting
When reporting bugs or requesting features:- Check if the issue already exists
- Use the appropriate issue template
- Provide clear reproduction steps for bugs
- Include relevant environment information
- Be specific about expected vs actual behavior
Questions and Support
- General questions - Join our Discord
- Bug reports - Use GitHub issues
- Feature requests - Use GitHub issues with the feature request template
- Security issues - Please email us privately rather than opening a public issue