Skip to content

Contributing

Arif Dogan edited this page Mar 4, 2025 · 1 revision

Contributing to LLMDog

Thank you for your interest in contributing to LLMDog! This guide will help you get started with contributing to the project.

Code of Conduct

We expect all contributors to adhere to a respectful and inclusive code of conduct. Please be kind and considerate to other contributors and users.

Ways to Contribute

There are many ways to contribute to LLMDog:

  1. Code Contributions: Adding features, fixing bugs, improving performance
  2. Documentation: Enhancing wiki pages, README, or code comments
  3. Testing: Testing the application on different platforms and reporting issues
  4. Ideas and Feedback: Suggesting new features or improvements
  5. Bug Reports: Reporting issues you encounter

Getting Started

Prerequisites

Setting Up Development Environment

  1. Fork the repository on GitHub

  2. Clone your forked repository:

    git clone https://github.com/YOUR_USERNAME/LLMDog.git
    cd LLMDog
  3. Add the original repository as a remote to keep up with changes:

    git remote add upstream https://github.com/doganarif/LLMDog.git
  4. Create a new branch for your work:

    git checkout -b my-feature-branch

Development Workflow

  1. Before starting work, sync your fork with the upstream repository:

    git fetch upstream
    git checkout main
    git merge upstream/main
    git checkout -b my-feature-branch
  2. Make your changes, following the project's code style and conventions (see the [Developer Guide](Developer-Guide))

  3. Write or update tests as necessary

  4. Run the application to verify your changes:

    go run ./cmd/llmdog/main.go
  5. Commit your changes with a clear, descriptive message:

    git add .
    git commit -m "Add feature: brief description of the feature"
  6. Push your changes to your fork:

    git push origin my-feature-branch
  7. Create a pull request on GitHub from your fork to the original repository

Pull Request Guidelines

When submitting a pull request, please:

  1. Describe your changes: Clearly explain what your PR does and why
  2. Link related issues: Reference any related GitHub issues
  3. Keep it focused: Each PR should contain a single feature or bug fix
  4. Update documentation: If your changes affect user-facing features, update the wiki or README
  5. Follow code style: Ensure your code follows the project's style and conventions
  6. Add tests: Include tests for new features or bug fixes
  7. Make it mergeable: Resolve any conflicts with the main branch before submitting

Issue Guidelines

When creating a new issue, please:

  1. Check existing issues to avoid duplicates
  2. Use a clear, descriptive title
  3. Include detailed steps to reproduce the issue
  4. Mention your environment (OS, terminal, Go version)
  5. If applicable, include error messages or screenshots
  6. Use issue templates if available

Feature Requests

We welcome feature requests! When proposing a new feature:

  1. Explain the problem your feature would solve
  2. Describe how users would use the feature
  3. Keep the scope reasonable
  4. Consider alternatives and why they wouldn't work
  5. If possible, outline how the feature might be implemented

Code Review Process

After you submit a pull request:

  1. Maintainers will review your code
  2. They may request changes or provide feedback
  3. Address any requested changes
  4. Once approved, a maintainer will merge your PR

Coding Standards

Go Style Guide

  • Follow the [Effective Go](https://golang.org/doc/effective_go) guidelines
  • Use gofmt or go fmt to format your code
  • Write comments for exported functions, types, and packages
  • Use meaningful variable and function names
  • Keep functions focused and not too long

Project-Specific Conventions

  • Keep UI-related code in the internal/ui package
  • Business logic belongs in the internal/model package
  • Follow existing patterns for file organization
  • Respect the clean architecture separation
  • Use descriptive commit messages

Testing

We value tests highly. When adding new features:

  1. Write unit tests for new functions
  2. Update existing tests if necessary
  3. Manually test your changes on different platforms if possible

Documentation

Good documentation is crucial. When contributing:

  1. Update code comments for any new or modified functions
  2. Update the README.md if your changes affect installation or basic usage
  3. Update or create wiki pages for new features or significant changes
  4. Include examples where appropriate

Licensing

By contributing to LLMDog, you agree that your contributions will be licensed under the project's MIT license.

Communication

For questions or discussions:

  1. Use GitHub Issues for bug reports and feature requests
  2. For more general discussions, you can:
    • Start a Discussion on the GitHub repository
    • Reach out to the maintainers directly

Recognition

All contributors will be recognized in the project! We maintain a list of contributors in the repository.

Thank You!

Your contributions help make LLMDog better for everyone. We appreciate your time and effort!

Clone this wiki locally