Added contributing docs and Makefile for doing checks
This commit is contained in:
83
CONTRIBUTING.md
Normal file
83
CONTRIBUTING.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# Contributing
|
||||
|
||||
Thank you for your interest in contributing! This document outlines the process and requirements for contributing to this Go project.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
||||
3. Make your changes
|
||||
4. Ensure code meets quality standards (see below)
|
||||
5. Submit a pull request
|
||||
|
||||
## Code Quality Requirements
|
||||
|
||||
### Go version
|
||||
|
||||
We support Go version 1.25 and onwards.
|
||||
|
||||
### Formatting with `goimports`
|
||||
|
||||
All Go code **must** be formatted using `goimports`:
|
||||
|
||||
```bash
|
||||
# Format all Go files
|
||||
goimports -local git.maze.io/go/dpi -l -w .
|
||||
|
||||
# Install goimports if not available
|
||||
go install golang.org/x/tools/cmd/goimports@latest
|
||||
```
|
||||
|
||||
### Linting with `golangci-lint`
|
||||
|
||||
All code must pass [golangci-lint](https://golangci-lint.run/) checks:
|
||||
|
||||
```bash
|
||||
# Run linter
|
||||
golangci-lint run
|
||||
```
|
||||
|
||||
### Checking your code
|
||||
|
||||
For convenience, all of the code checks can be run with a single command:
|
||||
|
||||
```bash
|
||||
# Run all required code checks
|
||||
make check
|
||||
```
|
||||
|
||||
#### Install golangci-lint if not available
|
||||
|
||||
Please refer to the [official documentation](https://golangci-lint.run/docs/welcome/install/) for help on installong `golangci-lint`.
|
||||
|
||||
## Development Workflow
|
||||
|
||||
### Pre-commit Checklist
|
||||
|
||||
* Code formatted with `goimports`
|
||||
* All `golangci-lint` checks pass
|
||||
* Tests are updated/passing
|
||||
* Documentation updated (if applicable)
|
||||
|
||||
### Testing
|
||||
|
||||
Run the test suite before submitting:
|
||||
|
||||
```bash
|
||||
go test ./...
|
||||
```
|
||||
|
||||
## Pull Request Guidelines
|
||||
|
||||
* Keep changes focused and atomic
|
||||
* Update documentation for new features
|
||||
* Ensure CI checks pass
|
||||
* Respond to review feedback promptly
|
||||
|
||||
## Getting Help
|
||||
|
||||
* Open an issue for bug reports or questions
|
||||
* Use discussions for general questions
|
||||
* Contact maintainers for sensitive issues
|
||||
|
||||
Thank you for contributing!
|
Reference in New Issue
Block a user