Thanks for your interest in contributing to devgrep! This project is built with Go and maintained using GitHub workflows, so we strive for clear issues, clean pull requests, and reliable tests.
- Fork the repository.
- Clone your fork:
git clone https://github.com/<your-username>/devgrep.git cd devgrep
- Create a feature branch:
git checkout -b feature/your-topic
- Install dependencies and tools:
go mod download
- Go version:
go1.24 - Build with:
make build - Test with:
make test - Format code with:
gofmt -w . - Vet code with:
go vet ./... - Optional linting with:
make lint - Release checks are run through GitHub Actions and
goreleaser check.
- Bug reports and reproduction steps
- Feature requests and enhancements
- Fixes for regressions, crashes, and edge cases
- Improvements to documentation, examples, and UX
- Tests for untested functionality
Before opening an issue:
- Search existing issues and pull requests to avoid duplicates.
- Verify the behavior with the latest
mainbranch.
A good issue should include:
- A clear summary of the problem or request
- Expected behavior vs actual behavior
- Repro steps or commands
- The platform/OS and Go version
- Any relevant output, logs, or error messages
- Fork and branch from
main. - Make your changes and keep them focused.
- Run formatting and tests locally:
gofmt -w . go vet ./... go test -race ./...
- If your change affects documentation, update
README.md,docs/, or examples. - Push your branch and open a pull request against
main.
- Keep the PR title descriptive and scoped.
- Provide a summary of your change and why it is needed.
- Include test coverage for bug fixes and new features.
- Rebase or squash as needed to keep history clear.
- Link related issues when applicable.
The repository uses GitHub Actions in .github/workflows/ci.yml to verify contributions.
Key checks include:
gofmt -l .go vet ./...go test -race -coverprofile=coverage.out ./...make build
For release-related changes, the release-check job also runs goreleaser check.
If your contribution changes behavior, configuration, or CLI usage, please update:
README.mddocs/files- examples in
examples/ - any relevant help text in the
cmd/package
- Follow Go idioms and naming conventions.
- Keep functions small and focused.
- Prefer clear variable names and readable control flow.
- Avoid committing generated or temporary files.
Contributions are what make devgrep better. Whether you send a bug fix, a doc improvement, or a new idea, your help is appreciated.