-
Notifications
You must be signed in to change notification settings - Fork 6
Contributing
Thank you for your interest in contributing to LLMDog! This guide will help you get started with contributing to the project.
We expect all contributors to adhere to a respectful and inclusive code of conduct. Please be kind and considerate to other contributors and users.
There are many ways to contribute to LLMDog:
- Code Contributions: Adding features, fixing bugs, improving performance
- Documentation: Enhancing wiki pages, README, or code comments
- Testing: Testing the application on different platforms and reporting issues
- Ideas and Feedback: Suggesting new features or improvements
- Bug Reports: Reporting issues you encounter
- [Go](https://golang.org/) version 1.16 or higher
- [Git](https://git-scm.com/)
- A GitHub account
- Familiarity with Go programming and terminal applications
-
Fork the repository on GitHub
-
Clone your forked repository:
git clone https://github.com/YOUR_USERNAME/LLMDog.git cd LLMDog -
Add the original repository as a remote to keep up with changes:
git remote add upstream https://github.com/doganarif/LLMDog.git
-
Create a new branch for your work:
git checkout -b my-feature-branch
-
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
-
Make your changes, following the project's code style and conventions (see the [Developer Guide](Developer-Guide))
-
Write or update tests as necessary
-
Run the application to verify your changes:
go run ./cmd/llmdog/main.go
-
Commit your changes with a clear, descriptive message:
git add . git commit -m "Add feature: brief description of the feature"
-
Push your changes to your fork:
git push origin my-feature-branch
-
Create a pull request on GitHub from your fork to the original repository
When submitting a pull request, please:
- Describe your changes: Clearly explain what your PR does and why
- Link related issues: Reference any related GitHub issues
- Keep it focused: Each PR should contain a single feature or bug fix
- Update documentation: If your changes affect user-facing features, update the wiki or README
- Follow code style: Ensure your code follows the project's style and conventions
- Add tests: Include tests for new features or bug fixes
- Make it mergeable: Resolve any conflicts with the main branch before submitting
When creating a new issue, please:
- Check existing issues to avoid duplicates
- Use a clear, descriptive title
- Include detailed steps to reproduce the issue
- Mention your environment (OS, terminal, Go version)
- If applicable, include error messages or screenshots
- Use issue templates if available
We welcome feature requests! When proposing a new feature:
- Explain the problem your feature would solve
- Describe how users would use the feature
- Keep the scope reasonable
- Consider alternatives and why they wouldn't work
- If possible, outline how the feature might be implemented
After you submit a pull request:
- Maintainers will review your code
- They may request changes or provide feedback
- Address any requested changes
- Once approved, a maintainer will merge your PR
- Follow the [Effective Go](https://golang.org/doc/effective_go) guidelines
- Use
gofmtorgo fmtto format your code - Write comments for exported functions, types, and packages
- Use meaningful variable and function names
- Keep functions focused and not too long
- Keep UI-related code in the
internal/uipackage - Business logic belongs in the
internal/modelpackage - Follow existing patterns for file organization
- Respect the clean architecture separation
- Use descriptive commit messages
We value tests highly. When adding new features:
- Write unit tests for new functions
- Update existing tests if necessary
- Manually test your changes on different platforms if possible
Good documentation is crucial. When contributing:
- Update code comments for any new or modified functions
- Update the README.md if your changes affect installation or basic usage
- Update or create wiki pages for new features or significant changes
- Include examples where appropriate
By contributing to LLMDog, you agree that your contributions will be licensed under the project's MIT license.
For questions or discussions:
- Use GitHub Issues for bug reports and feature requests
- For more general discussions, you can:
- Start a Discussion on the GitHub repository
- Reach out to the maintainers directly
All contributors will be recognized in the project! We maintain a list of contributors in the repository.
Your contributions help make LLMDog better for everyone. We appreciate your time and effort!