Thank you for your interest in contributing to gohan! This document explains how to get involved.
- Code of Conduct
- Reporting Bugs
- Requesting Features
- Development Setup
- Submitting a Pull Request
- Coding Guidelines
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Use the Bug Report issue template. Please include:
- gohan version, OS, and Go version
- Steps to reproduce
- Expected vs. actual behavior
- Relevant config and log output
Use the Feature Request issue template. Please describe the motivation and your proposed solution.
Prerequisites: Go 1.22 or later, Git
# Clone the repository
git clone https://github.com/bmf-san/gohan.git
cd gohan
# Download dependencies
go mod download
# Run tests
go test ./...
# Run linter
golangci-lint run- Fork the repository and create a branch from
main:git checkout -b your-feature-name
- Make your changes and add tests where appropriate.
- Ensure all tests and linting pass:
go test ./... golangci-lint run - Commit using a descriptive message following Conventional Commits:
feat: add support for custom output paths fix: correct archive page date grouping docs: update CLI reference - Push your branch and open a pull request against
main. - Fill in the pull request template and link any related issues.
- Follow standard Go conventions (
gofmt,go vet) - Write godoc comments for all exported identifiers
- Keep functions small and focused; prefer clear naming over comments
- Add or update tests for every change to core logic
- Maintain test coverage at 80% or higher overall, 90%+ for parser/renderer