Thank you for your interest in contributing to the Streamline Go SDK! This guide will help you get started.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Run tests and linting
- Commit your changes (
git commit -m "Add my feature") - Push to your fork (
git push origin feature/my-feature) - Open a Pull Request
- Go 1.21 or later
# Clone your fork
git clone https://github.com/<your-username>/streamline-go-sdk.git
cd streamline-go-sdk
# Download dependencies
go mod download
# Build
go build ./...
# Run tests
go test ./...# Run all tests
go test ./...
# Run with verbose output
go test -v ./...
# Run a specific package's tests
go test -v ./client/...
# Run with race detection
go test -race ./...
# Run with coverage
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.outIntegration tests require a running Streamline server:
# Start the server
docker compose -f docker-compose.test.yml up -d
# Run integration tests
go test -v -tags=integration ./...
# Stop the server
docker compose -f docker-compose.test.yml down# Format code
go fmt ./...
# Vet code
go vet ./...
# Run staticcheck (if installed)
staticcheck ./...- Follow standard Go conventions and Effective Go
- Use
gofmtfor formatting - Add GoDoc comments for all exported types and functions
- Keep functions focused and short
- Handle errors explicitly — do not ignore them
- Write clear commit messages
- Add tests for new functionality
- Update documentation if needed
- Ensure
go vet ./...andgo test ./...pass before submitting
- Use the Bug Report or Feature Request issue templates
- Search existing issues before creating a new one
- Include reproduction steps for bugs
All contributors are expected to follow our Code of Conduct.
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.