Thank you for your interest in contributing to Ferret! This document provides guidelines and instructions for contributing.
Please read and follow our Code of Conduct.
- Go 1.23 or later
- Make (optional, for running Makefile commands)
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/ferret.git cd ferret - Add the upstream remote:
git remote add upstream https://github.com/MontFerret/ferret.git
go build ./...go test ./...Or using Make:
make test- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Your environment (OS, Go version, Ferret version)
- Open an issue describing the feature
- Explain the use case and benefits
- Be open to discussion about implementation approaches
-
Create a branch for your changes:
git checkout -b feature/your-feature-name
-
Make your changes following the coding guidelines below
-
Write or update tests as needed
-
Ensure all tests pass:
go test ./... -
Run the linter:
golangci-lint run
-
Commit your changes with a clear message:
git commit -m "Add feature X that does Y" -
Push to your fork and create a Pull Request
- Follow standard Go conventions and formatting (
gofmt) - Write clear, self-documenting code
- Add comments for complex logic
- Keep functions focused and small
- Write unit tests for new functionality
- Update documentation when changing behavior
By contributing to Ferret, you agree that your contributions will be licensed under the Apache 2.0 License.