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

Open a bug report →

💡 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

Suggest a feature →

📝 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!

  1. Development Setup - Set up your development environment

  2. Look for "good first issue" labels - These are beginner-friendly issues

  3. Ask questions - Don't hesitate to ask for help

  4. Start small - Begin with documentation or small fixes

  5. Learn as you go - Every contributor was a beginner once

Experienced Contributors

Familiar with open source?

  1. Contribution Guidelines - Review our process and standards

  2. Architecture Overview - Understand the codebase

  3. Pick an issue - Look for issues matching your skills

  4. 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?

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

  • 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! 🎉


New to open source? Check out First Contributions for a gentle introduction to contributing to open source projects.

Last updated