Contributing
Welcome to the Gonzo contributor guide! We're excited that you're interested in contributing to Gonzo. Whether you're fixing a bug, adding a feature, improving documentation, or just asking questions, your contributions are welcome and appreciated.
Why Contribute?
Contributing to Gonzo offers many benefits:
Learn Go and TUI development: Work with modern Go frameworks like Bubble Tea
Improve your skills: Practice coding, testing, and documentation
Make an impact: Help thousands of developers analyze logs better
Join a community: Connect with other contributors and users
Build your portfolio: Open source contributions look great on resumes
Give back: Support a tool you use and rely on
Ways to Contribute
You don't need to be a coding expert to contribute! Here are many ways to help:
🐛 Report Bugs
Found a bug? Report it! Include:
Clear description
Steps to reproduce
Expected vs actual behavior
Your environment details
💡 Suggest Features
Have an idea for improvement? We'd love to hear it! Describe:
The problem you're trying to solve
Your proposed solution
Why it would be useful
Any alternatives you've considered
📝 Improve Documentation
Documentation is crucial! You can:
Fix typos or unclear explanations
Add missing information
Create tutorials or guides
Improve examples
Translate documentation
🎨 Create Skins & Formats
Extend Gonzo's capabilities:
Design custom color schemes
Create parsers for new log formats
Share configurations
Build integrations
💬 Help Others
Be an active community member:
Answer questions in GitHub Discussions
Help troubleshoot issues
Review pull requests
Share your use cases
💻 Write Code
Contribute code improvements:
Fix bugs
Implement features
Add tests
Optimize performance
Refactor code
Getting Started
First Time Contributors
Never contributed to open source before? No problem!
Development Setup - Set up your development environment
Look for "good first issue" labels - These are beginner-friendly issues
Ask questions - Don't hesitate to ask for help
Start small - Begin with documentation or small fixes
Learn as you go - Every contributor was a beginner once
Experienced Contributors
Familiar with open source?
Contribution Guidelines - Review our process and standards
Architecture Overview - Understand the codebase
Pick an issue - Look for issues matching your skills
Discuss first - For large changes, open an issue to discuss before coding
Contribution Process
Our contribution workflow:
1. Fork & Clone
↓
2. Create Branch
↓
3. Make Changes
↓
4. Write Tests
↓
5. Update Docs
↓
6. Run Tests & Lint
↓
7. Commit & Push
↓
8. Create Pull Request
↓
9. Code Review
↓
10. Merge! 🎉
See Contribution Guidelines for detailed steps.
What We're Looking For
High Priority
These contributions are especially valuable:
🐛 Bug fixes: Stability improvements
📚 Documentation: Clarity and completeness
✅ Tests: Increasing code coverage
🎨 Custom formats: Parsers for popular log formats
🔌 Integrations: Connecting with other tools
Medium Priority
Also valuable contributions:
✨ New features: After discussion with maintainers
⚡ Performance: Optimization work
🎨 UI improvements: Better user experience
🌐 Localization: Translations
Always Welcome
These are always appreciated:
📖 Examples: Real-world use cases
🎨 Skins: Custom themes
💬 Discussions: Ideas and feedback
🤝 Community support: Helping others
Project Areas
Frontend (TUI)
What: Terminal user interface using Bubble Tea
Skills: Go, terminal UI design, user experience
Good for: Visual thinkers, UI/UX enthusiasts
Files: internal/tui/
Backend (Processing)
What: Log parsing, analysis, and pattern detection
Skills: Go, algorithms, data structures
Good for: Problem solvers, algorithm enthusiasts
Files: internal/analyzer/
, internal/memory/
Networking (OTLP)
What: OpenTelemetry protocol implementation
Skills: Go, networking, protocols, gRPC
Good for: Systems programmers, protocol enthusiasts
Files: internal/otlplog/
AI Integration
What: AI-powered log analysis features
Skills: Go, API integration, prompt engineering
Good for: AI/ML enthusiasts
Files: internal/ai/
Documentation
What: User guides, API docs, examples
Skills: Technical writing, clear communication
Good for: Writers, educators
Files: docs/
, README.md
, *.md
files
Testing
What: Unit tests, integration tests, benchmarks
Skills: Go testing, test design
Good for: Quality-focused developers
Files: *_test.go
Recognition
We value all contributions! Contributors receive:
✨ Credit in release notes
👥 Listed on GitHub contributors page
🏆 Recognition in the community
📣 Mentions on social media (with permission)
🎖️ Special badges for significant contributions
Code of Conduct
We are committed to providing a welcoming and inclusive environment. All participants must adhere to our Code of Conduct:
Be respectful: Treat everyone with respect and courtesy
Be inclusive: Welcome people of all backgrounds
Be collaborative: Work together constructively
Be professional: Keep discussions on topic
See Community for full Code of Conduct.
Questions?
Need help or have questions?
💬 GitHub Discussions: Start a discussion
🐛 GitHub Issues: Open an issue
📧 Email: [email protected]
We're here to help!
Resources
Essential Reading
Development Setup - Get your environment ready
Contribution Guidelines - Detailed process and standards
Community - Connect with other contributors
Technical Resources
Architecture Overview - How Gonzo works
OTLP Protocol - OpenTelemetry implementation
Extension Points - Ways to extend Gonzo
Helpful Links
GitHub Repository: https://github.com/control-theory/gonzo
Issue Tracker: https://github.com/control-theory/gonzo/issues
Discussions: https://github.com/control-theory/gonzo/discussions
Website: https://gonzo.controltheory.com
Quick Start
Ready to contribute? Follow these steps:
For code contributions:
# 1. Fork the repository on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR-USERNAME/gonzo.git
cd gonzo
# 3. Set up development environment
make deps
make build
# 4. Create a branch
git checkout -b feature/my-feature
# 5. Make changes and test
make dev
# 6. Push and create PR
git push origin feature/my-feature
For documentation contributions:
Edit Markdown files directly on GitHub, or
Follow the same process as code contributions
For issues and discussions:
Just go to GitHub and start engaging!
Thank You!
Your contributions, no matter how small, make Gonzo better for everyone. Thank you for taking the time to contribute!
We look forward to working with you! 🎉
Ready to start? Head over to Development Setup to get your environment configured, or browse good first issues to find your first contribution!
Last updated