Welcome Contributors
Contributions to check-image are welcome! This guide will help you get started with contributing to the project.Code of Conduct
Be respectful and constructive in all interactions. This project aims to be welcoming to contributors from all backgrounds.How to Contribute
Reporting Issues
If you find a bug or have a feature request:- Check existing issues to avoid duplicates
- Create a new issue with a clear title and description
- Include reproduction steps for bugs
- For features, explain the use case and benefits
Pull Request Process
-
Fork and clone the repository:
-
Create a feature branch:
- Make your changes following the project guidelines
-
Install pre-commit hooks:
-
Run tests and checks:
-
Commit using Conventional Commits:
-
Push and create a pull request:
PR Requirements
- PR title must follow Conventional Commits format
- Title must start with uppercase letter after the prefix
- All CI checks must pass (tests, linting, build)
- Code must include tests with good coverage
- Documentation must be updated (README.md and CLAUDE.md)
Commit Message Format
This project uses Conventional Commits:feat: New feature (triggers minor version bump)fix: Bug fix (triggers patch version bump)docs: Documentation changes (no release)refactor: Code refactoring (triggers patch version bump)test: Test updates (no release)chore: Maintenance tasks (no release)perf: Performance improvements (triggers patch version bump)ci: CI/CD changes (no release)build: Build system changes (no release)revert: Revert previous commit
Commit messages and PR titles must start with an uppercase letter after the type prefix. Wrap code, commands, flags, and file paths in backticks.
Development Workflow
GitHub CLI
Use the GitHub CLI (gh) for all GitHub interactions:
Branch Strategy
- Never commit directly to
main - Always create a feature branch
- Use descriptive branch names:
feat/platform-validation,fix/auth-error - Delete branches after merging
What Gets Checked
When you runpre-commit or commit changes, the following checks run automatically:
Mandatory checks (block commits):
- Trailing whitespace, EOF newlines, line endings
- YAML and JSON syntax validation
gofmtformattinggo mod tidygo vetanalysisgolangci-lint(see.golangci.ymlfor rules)go testwith race detection- Commit message format validation
gosecsecurity scanning (doesn’t block commits)
Documentation Requirements
Every new feature must update documentation:CLAUDE.md
Update architectural information for developers:- Design decisions and trade-offs
- Implementation details
- Flag names, struct definitions
- Integration points
README.md
Update user-facing documentation:- Command usage and examples
- Flag descriptions
- Configuration file formats
- Expected behavior
Getting Help
If you need assistance:- Check existing documentation and issues
- Ask questions in your PR or issue
- Review CLAUDE.md for architectural guidance
- Look at similar existing features for patterns
Next Steps
Building
Learn how to build check-image from source
Testing
Run tests and validate your changes
Architecture
Understand the project structure
CI/CD
Learn about automated workflows