Thank you for your interest in contributing to Simili! This document provides guidelines and instructions for contributing.
- Go 1.23 or later
- Docker (for testing the GitHub Action)
- A GitHub account
- Qdrant instance (local or cloud)
- Gemini API key
-
Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/gh-simili.git cd gh-simili -
Install dependencies:
go mod download
-
Create a
.envfile with your credentials:GEMINI_API_KEY=your_key QDRANT_URL=your_url QDRANT_API_KEY=your_key
-
Build the project:
go build -o gh-simili ./cmd/gh-simili
-
Run tests:
go test ./...
Use descriptive branch names:
feat/feature-name- New featuresfix/bug-description- Bug fixesdocs/what-changed- Documentation updatesrefactor/what-changed- Code refactoring
Write clear, concise commit messages:
- Use present tense ("Add feature" not "Added feature")
- Use imperative mood ("Move cursor to..." not "Moves cursor to...")
- Keep the first line under 72 characters
- Reference issues and PRs where appropriate
Example:
Add cross-repo similarity search
- Implement org-wide collection strategy
- Add filter for excluding self from results
- Update documentation
Closes #123
- Follow standard Go conventions
- Run
go fmtbefore committing - Run
go vetto catch common issues - Keep functions focused and small
- Add comments for complex logic
- Write tests for new features
- Ensure all existing tests pass
- Test with different configurations
- Test the Docker build locally:
docker build -t gh-simili .
- Create a new branch from
main - Make your changes with clear commits
- Update documentation if needed
- Ensure tests pass
- Push to your fork
- Open a Pull Request
Include in your PR description:
- What changes were made
- Why the changes were needed
- How to test the changes
- Screenshots if applicable
Include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Go version, OS, etc.)
- Relevant logs or error messages
Include:
- Clear description of the feature
- Use case / motivation
- Proposed implementation (if any)
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
Open an issue with the question label or start a discussion.
By contributing, you agree that your contributions will be licensed under the MIT License.