Thank you for your interest in contributing to cuda-oxide! This document explains the contribution process and requirements.
cuda-oxide is licensed under the Apache License, Version 2.0.
Join the project Discord for questions, design discussions, and announcements: discord.gg/Fua7DeKnm
If you are unsure whether something is worth a full issue or PR, the Discord
#contributors channel is a good place to ask first.
- Developer Certificate of Origin
- Signing Your Commits
- Contribution Process
- Code Requirements
- IP Review Process
cuda-oxide requires the Developer Certificate of Origin (DCO) process for all contributions. The DCO is a lightweight mechanism to certify that you wrote or otherwise have the right to submit the code you are contributing.
By making a contribution to this project, you agree to the following:
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.
Every commit in your pull request must include a Signed-off-by line.
This certifies that you agree to the DCO above.
To sign off on a commit, use the -s flag:
git commit -s -m "Description of change"This adds a line to your commit message:
Signed-off-by: Your Name <your.email@example.com>
If you have already made commits without sign-off, you can amend or rebase to add it:
# Amend the most recent commit
git commit --amend -s --no-edit
# Rebase and sign all commits in a branch
git rebase --signoff mainYour Signed-off-by name and email must match your Git configuration
(user.name and user.email).
- Open an issue describing the bug or feature you want to work on.
- Fork the repository and create a feature branch from
main. - Implement your changes following the code requirements below.
- Sign all commits using
git commit -s(see above). - Submit a pull request against the
mainbranch with a clear description of the changes and their motivation. - Respond to review feedback. All submissions require review before merging. Maintainers may request changes or ask questions.
Pull requests that do not meet the requirements below or lack proper DCO sign-off will not be merged.
cuda-oxide requires the Rust nightly toolchain with rustc_private support.
See the README for setup instructions.
The repository includes a flake.nix that provides a fully reproducible development
environment (CUDA 13, LLVM 22, Clang, pinned Rust nightly). If you have Nix with
flakes enabled, nix develop is the quickest way to get everything in place.
- Run
cargo fmtbefore submitting. All code must be formatted withrustfmt. - Run
cargo clippyand address any warnings where reasonable. - Follow existing code patterns and conventions in the crate you are modifying.
All new source files must include the NVIDIA copyright and SPDX header as the first two lines:
// Copyright (c) 2024-2026 NVIDIA CORPORATION. All rights reserved.
// SPDX-License-Identifier: Apache-2.0- Compiler pipeline changes should be validated against the existing examples
in
crates/rustc-codegen-cuda/examples/. - New GPU intrinsics should include a corresponding example demonstrating correct behavior.
- Dialect changes should include appropriate tests in the crate's
tests/directory.
- New dependencies must use permissive licenses (MIT, Apache-2.0, BSD, ISC, Zlib, or similar).
- No GPL, AGPL, SSPL, or other copyleft-licensed dependencies.
- If adding a new dependency, update
THIRD_PARTY_NOTICESaccordingly.
All contributions to cuda-oxide are subject to NVIDIA's IP review process. Maintainers will ensure that contributions are reviewed in accordance with NVIDIA's open source policies before merging.
For questions about the contribution process, please open an issue or contact the maintainers.