Welcome, and thank you for your interest in contributing to the HAMi amd-dra-driver. This guide explains how to propose changes.
This project follows the HAMi community Code of Conduct. By participating you are expected to uphold it.
-
Read the README for what the driver does, how HAMi-DRA installs it, and what was verified on a real GPU.
-
The driver is written in Go and uses cgo against the AMD SMI library vendored in
third_party/amd_smi. Clone with theamd-hami-coresubmodule, which builds the memory hook. The supported build is the container image:git clone --recurse-submodules https://github.com/Project-HAMi/amd-dra-driver.git docker build -f deployments/container/Dockerfile \ -t amd-dra-driver:dev .For a local Go build on Linux, as a non-root user:
LD_LIBRARY_PATH=$PWD/third_party/amd_smi/lib go test ./cmd/... ./pkg/...
-
The code is based on ROCm/k8s-gpu-dra-driver. Fixes that are not specific to HAMi are welcome upstream too.
- Browse the open issues.
- Issues labeled
good first issueare a good starting point. - If you plan to work on something, comment on the issue so others know.
Open a new issue and include: what you expected, what happened, the GPU model and ROCm version, and steps to reproduce. For security problems, do not open a public issue; follow SECURITY.md.
-
Fork the repository and create a topic branch from
main. -
Make your change. Keep pull requests focused and small where possible.
-
Add or update tests. Run
go vet ./cmd/... ./pkg/...andgo test ./cmd/... ./pkg/.... -
Sign off every commit to certify the DCO:
git commit -s -m "your message" -
Use the pull request template and add a
/kindlabel (/kind bug,/kind feature,/kind documentation). -
Open the pull request against
mainand describe what changed and why. Link the issue it fixes withFixes #<issue>.
- Maintainers review pull requests and may request changes.
- Automated checks (CI, DCO, CodeQL) must pass.
- Once a reviewer is satisfied they add
/lgtm, and an approver adds/approve; the bot then merges the pull request.
Thank you for helping improve the project.