If you are interested in contributing to Numba-CUDA, your contributions will fall into three categories:
- You want to report a bug, feature request, or documentation issue
- File an issue describing what you encountered or what you want to see changed.
- The Numba-CUDA team will evaluate the issues and triage them. If you believe the issue needs priority attention comment on the issue to notify the team.
- You want to propose a new Feature and implement it
- Post about your intended feature, and we shall discuss the design and implementation.
- Once we agree that the plan looks good, go ahead and implement it, using the code contributions guide below.
- You want to implement a feature or bug-fix for an outstanding issue
- Follow the code contributions guide below.
- If you need more context on a particular issue, please ask and we shall provide.
- Read the project's README.md to learn how to setup the development environment
- Find an issue to work on.
- Comment on the issue saying you are going to work on it
- Code! Make sure to update unit tests!
- When done, create your pull request
- Sign the CLA
- Verify that CI passes all status checks. Fix if needed
- Wait for other developers to review your code and update code as needed
- Once reviewed and approved, a Numba-CUDA developer will merge your pull request
Remember, if you are unsure about anything, don't hesitate to comment on issues and ask for clarifications!
There are some dependencies that are required for developing Numba-CUDA, but are not required for installation or distribution.
These dependencies are listed under the test-cu12 and test-cu13 optional dependency groups in our project configuration.
To install Numba-CUDA for development, run this in the root of the repository:
pip install -e ".[test-cu12]"or
pip install -e ".[test-cu13]"Numba-CUDA uses pre-commit to run a number of style
checks in CI. To ensure your contribution will pass the checks, you can also set
up pre-commit locally to run the checks prior to committing.
# This will run a small set of checks every time you commit.
pre-commit installTo run them manually without committing, run this in the root of the repository:
pre-commit run --all-filesThe release process for Numba-CUDA involves the following steps:
- Open a PR to update
numba_cuda/VERSIONto the desired version. - Generate a short changelog with
git log v<PREVIOUS_VERSION>..HEAD --oneline --pretty=format:"- %s" - Put the changelog in the version update PR description.
- Once
mainis updated, tag the release:
git checkout main && git pull
git tag -a v<VERSION>
- For the tag annotation, paste the same changelog as above, like this:
v<VERSION>
- ... (bullet points on release items)
- Push the tag:
git push git@github.com:NVIDIA/numba-cuda.git v<VERSION>
Portions adopted from https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md