Thank you for your interest in contributing to HyperFleet! This guide covers the conventions and workflow shared across all HyperFleet repositories.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/<repo>.git cd <repo>
- Add the upstream remote:
git remote add upstream https://github.com/openshift-hyperfleet/<repo>.git
- Go (see
go.modin each repo for the required version) - Docker (for building images)
make(for running Makefile targets)- Helm 3 (for chart development)
All HyperFleet repositories share a standard set of Make targets:
| Target | Description |
|---|---|
make build |
Build the binary |
make test |
Run unit tests |
make test-all |
Run all tests (unit + integration + lint + helm) |
make lint |
Run golangci-lint |
make fmt |
Format code |
make tidy |
Run go mod tidy |
make test-helm |
Validate Helm chart templates |
Name branches after the Jira ticket:
HYPERFLEET-123
Follow this format:
HYPERFLEET-<ID> - <type>: <description>
Types:
feat— New featurefix— Bug fixchore— Maintenance, dependencies, CItest— Adding or updating testsdocs— Documentation changesrefactor— Code restructuring without behavior change
Examples:
HYPERFLEET-789 - feat: add OpenTelemetry span exporter to adapter
HYPERFLEET-630 - fix: consolidate duplicate resource operation logs
HYPERFLEET-786 - chore: align chart with Helm conventions standard
HYPERFLEET-733 - test: add precedence test for overlapping decision checks
-
Rebase on latest main before submitting:
git fetch upstream git rebase upstream/main
-
Run all checks:
make test-all
-
Push and create a PR:
git push origin HYPERFLEET-<ID>
-
PR requirements:
- Clear title matching commit convention:
HYPERFLEET-<ID> - <type>: <description> - Summary of changes and test plan in the description
- All CI checks passing
- At least one approval before merging
- Clear title matching commit convention:
For Helm chart or configuration changes, deploy to a development cluster and verify the changes work end-to-end. Use hyperfleet-infra to provision your own cluster.
For cross-component or major changes, run the E2E test suite from hyperfleet-e2e against your development cluster before submitting.
- Follow Effective Go guidelines
- Run
make fmtandmake lintbefore committing - Write table-driven tests when testing multiple scenarios
- Handle errors explicitly — don't ignore them
- Add comments for exported functions, types, and packages
HyperFleet uses Jira for issue tracking. GitHub Issues are available for external contributors, but team members should use Jira.
If you have questions or need help:
- Check existing issues and pull requests
- Open a new issue with the
questionlabel - Reach out to the HyperFleet team at openshift-hyperfleet@redhat.com or on Slack channel #hcm-hyperfleet-team (Red Hat workspace)