Thank you for your interest in contributing! This document provides guidelines and information for contributors.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/device-attestation.git - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Run tests:
go test ./... - Run linter:
golangci-lint run - Commit your changes:
git commit -m "Add feature X" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
- Go 1.21 or later
- golangci-lint (for linting)
# Run all tests
go test ./...
# Run tests with race detection
go test -race ./...
# Run tests with coverage
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out# Install golangci-lint
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
# Run linter
golangci-lint run- Follow standard Go conventions and idioms
- Use
gofmtfor formatting - Use
goimportsfor import organization - Write meaningful commit messages
- Add tests for new functionality
- Update documentation as needed
- One feature per PR: Keep pull requests focused on a single change
- Write tests: New features should include tests
- Update docs: Update README.md and code comments as needed
- Describe changes: Write a clear PR description explaining the changes
- Keep it small: Smaller PRs are easier to review
When reporting issues, please include:
- Go version (
go version) - Operating system
- Steps to reproduce
- Expected behavior
- Actual behavior
- Relevant logs or error messages
Feature requests are welcome! Please open an issue describing:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you've considered
Be respectful and constructive in all interactions. We're all here to build something useful together.
By contributing, you agree that your contributions will be licensed under the MIT License.