Contributing¶
Thank you for your interest in contributing to kindplane!
Getting Started¶
- Fork the repository
-
Clone your fork:
-
Add the upstream remote:
Development Setup¶
Prerequisites¶
- Go 1.23 or later
- Docker
- Task (optional, but recommended)
Building¶
Running Tests¶
Linting¶
Pre-commit Hook¶
Install the pre-commit hook to automatically run checks before each commit:
The hook runs task check (fmt, lint, test) and will prevent commits if any checks fail. Fix any issues before committing.
Making Changes¶
Create a Feature Branch¶
Commit Messages¶
Use conventional commit format:
Types:
feat: New featurefix: Bug fixdocs: Documentationrefactor: Code refactoringtest: Adding testschore: Maintenance
Examples:
feat(provider): add GCP provider support
fix(helm): handle chart installation timeout
docs(readme): update installation instructions
Code Style¶
- Follow Go conventions
- Use
gofmtfor formatting - Run linter before committing
- Add tests for new functionality
Documentation¶
- Update docs for new features
- Add command examples
- Include configuration examples
Pull Requests¶
Before Submitting¶
-
Sync with upstream:
-
Run tests:
-
Run linter:
-
Build successfully:
Creating the PR¶
-
Push your branch:
-
Open a Pull Request on GitHub
-
Fill in the PR template:
- Describe the changes
- Link related issues
- Add screenshots if applicable
Review Process¶
- Maintainers will review your PR
- Address any feedback
- Once approved, your PR will be merged
Issue Reporting¶
Bug Reports¶
Include:
- kindplane version
- Go version
- Operating system
- Configuration file (redact secrets)
- Steps to reproduce
- Expected vs actual behaviour
- Error messages/logs
Feature Requests¶
Include:
- Use case description
- Proposed solution
- Alternatives considered
Code of Conduct¶
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
Questions?¶
- Open a GitHub Discussion
- Check existing issues
- Read the documentation
Thank you for contributing!