First off, thank you for considering contributing to llmgo! It's people like you that make the open-source community such a fantastic place to learn, inspire, and create.
We welcome all contributions, from bug fixes and documentation improvements to new features (e.g., new Agent types, new VectorDB integrations).
-
Fork the repository on GitHub.
-
Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/llmgo.git cd llmgo -
Initialize your local environment (This automatically installs Git hooks to format your code before committing):
make setup
Create a new branch for your feature or bugfix. Use a descriptive name:
git checkout -b feature/redis-memory
# or
git checkout -b fix/router-nil-pointer
- Follow idiomatic Go standards.
- Write clear, concise commit messages.
- Ensure your code focuses on Concurrency Safety and Zero-GC Bloat.
Before submitting a Pull Request, you must ensure all tests pass and code quality is maintained. We use Makefile to simplify this:
# 1. Format your code
make fmt
# 2. Run the linter
make lint
# 3. Run tests with Race Detector (Mandatory for llmgo)
make test-race
# 4. Check Test Coverage
make test-coverage
_test.go files. The CI pipeline will automatically reject PRs that drop the overall coverage below 80%.
- Push your branch to your forked repository.
- Open a Pull Request against the
mainbranch of thellmgorepository. - Fill out the PR template, referencing any related issues.
- Wait for the CI Pipeline (GitHub Actions) to complete successfully.
- A maintainer will review your code shortly!
If you need help or have architectural questions, feel free to open a "Discussion" or an Issue with the question label.