Thank you for your interest in contributing to NVIDIA Bare Metal Manager!
We welcome contributions of all sizes — from fixing a typo in the docs to adding a new API endpoint. Whether you're a first-time contributor or a seasoned open source developer, there's a place for you here.
Project Status: NVIDIA Bare Metal Manager is currently in experimental. This means:
- APIs, configurations, and features may change without notice between releases.
- Review timelines may vary as the team focuses on stabilizing the core platform.
- Not all contributions will be accepted — we prioritize changes that align with the current roadmap.
We appreciate your patience and contributions as we work toward a stable release.
NVIDIA Bare Metal Manager requires the Developer Certificate of Origin (DCO) process to be followed for all contributions.
The DCO is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing. The full text of the DCO can be found at developercertificate.org:
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
To sign off on a commit, you must add a Signed-off-by line to your commit message. This is done by using the -s or --signoff flag when committing:
git commit -s -m "Your commit message"Tip: You can create a Git alias to always sign off:
git config --global alias.ci 'commit -s'
# Now use: git ci -m "Your commit message"This will automatically add a line like this to your commit message:
Signed-off-by: Your Name <your.email@example.com>
Make sure your user.name and user.email are set correctly in your Git configuration:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"If you have multiple commits that need to be signed off, you can use interactive rebase:
git rebase HEAD~<number_of_commits> --signoffOr to sign off all commits in a branch:
git rebase --signoff origin/mainAll pull requests are automatically checked for DCO complianc via DCO bot. Pull requests with unsigned commits cannot be merged until all commits are properly signed off.
Developers must first fork the upstream NVIDIA Bare Metal Manager repository.
- Navigate to the NVIDIA Bare Metal Manager repository on GitHub.
- Click the Fork button in the upper right corner.
- Select your GitHub account as the destination.
git clone https://github.com/<your-username>/metal-manager.git
cd metal-managerAdd the original repository as an upstream remote to keep your fork in sync:
git remote add upstream https://github.com/NVIDIA/metal-manager.git
git remote -v # Verify remotesBefore starting new work, sync your fork with upstream:
# Fetch upstream changes
git fetch upstream
# Switch to main branch
git checkout main
# Merge upstream changes
git merge upstream/main
# Push to your fork
git push origin mainAlways create a new branch for your changes:
git checkout -b feature/your-feature-nameUse descriptive branch names like:
feature/add-new-apifix/resolve-dhcp-issuedocs/update-readme
- Fork the repository and create your branch from
main. - Make your changes following our coding guidelines.
- Sign off all your commits using
git commit -s. - Submit a pull request with a clear description of your changes.
- Provide a clear description of the problem and solution.
- Reference any related issues.
- Keep pull requests focused on a single change.
- Be responsive to feedback and code review comments.
- Ensure all CI checks pass before requesting review.
If you have questions about contributing, please open an issue for discussion.