Contributing to llvmlite
llvmlite originated to fulfill the needs of the Numba project. It is maintained mostly by the Numba team. We tend to prioritize the needs and constraints of Numba over other conflicting desires.
We do welcome any contributions in the form of bug reports or pull requests.
Communication methods
Forum
llvmlite uses the Numba Discourse as a forum for longer running threads such as design discussions and roadmap planning. There are various categories available and it can be reached at: numba.discourse.group. It also has a llvmlite topic.
Bug reports
We use the Github issue tracker to track both bug reports and feature requests. If you report an issue, please include:
What you are trying to do.
Your operating system.
What version of llvmlite you are running.
A description of the problem—for example, the full error traceback or the unexpected results you are getting.
As far as possible, a code snippet that allows full reproduction of your problem.
Pull requests
To contribute code:
Fork our Github repository.
Create a branch representing your work.
When your work is ready, submit it as a pull request from the Github interface.
Development rules
Coding conventions
All Python code should follow PEP 8.
All C++ code is formatted using
clang-format-13
from theclang-format-13
package available in theconda-forge
conda channel.Code and documentation should generally fit within 80 columns, for maximum readability with all existing tools, such as code review user interfaces.
Optionally, you may wish to setup pre-commit hooks
to automatically run clang-format
when you make a git commit. This can be
done by installing pre-commit
:
pip install pre-commit
and then running:
pre-commit install
from the root of the Numba repository. Now clang-format
will be run each time
you commit changes. You can skip this check with git commit --no-verify
.
Platform support
Llvmlite will be kept compatible with Python 3.10 and later under at least Windows, macOS and Linux.
We do not expect contributors to test their code on all platforms. Pull requests are automatically built and tested using Azure Pipelines for Winows, OSX and Linux.
Documentation
This llvmlite documentation is built using Sphinx and maintained
in the docs
directory inside the
llvmlite repository.
Edit the source files under
docs/source/
.Build the documentation:
make html
Check the documentation:
open _build/html/index.html