Contributing Guide๏
Thank you for your interest in contributing to iapetus! ๐
We welcome all contributionsโcode, documentation, tests, bug reports, feature requests, and ideas.
Development Environment Setup๏
Clone the repository
git clone https://github.com/yindia/iapetus.git cd iapetusInstall Go ([instructions](https://golang.org/dl/))
(Optional) Use [pixi](https://pixi.sh/)
pixi shell
Install dependencies
go mod tidy
Testing & Linting๏
Run all tests:
go test ./...Run linter:
golangci-lint run ./...
(With pixi):
pixi run go test ./... pixi run golangci-lint run ./...
Code Style & Guidelines๏
Follow idiomatic Go style (gofmt, golangci-lint)
Write clear, descriptive commit messages (conventional commits preferred)
Add/maintain unit tests for all features and bugfixes
Document public APIs with GoDoc comments
Keep PRs focused and small when possible
Be kind and constructive in code reviews and discussions
Submitting Issues & Feature Requests๏
Bugs: Please include steps to reproduce, expected vs actual behavior, and environment info.
Features: Describe the problem, your proposed solution, and alternatives considered.
Use the GitHub issue templates when possible.
Submitting Pull Requests๏
Fork the repo and create your branch from main.
Add your changes and tests.
Run tests and linter locally.
Open a pull request with a clear description of your changes.
Reference any related issues in your PR description.
Documentation๏
Update or add documentation for any new features or changes.
Keep the README, USAGE.md, and REFERENCE.md up to date as needed.
Add code comments for exported functions, types, and complex logic.
Community & Conduct๏
Be respectful and welcoming to all contributors.
Follow the Contributor Covenant Code of Conduct.
Join GitHub Discussions for questions, ideas, or to connect with the community.
Thank you for helping make iapetus better! ๐