This project packages the clang-tidy
utility as a Python package. It allows you to install clang-tidy
directly from PyPI:
python -m pip install clang-tidy
This projects intends to release a new PyPI package for each major and minor release of clang-tidy
.
You can use pipx
to run clang-tidy, as well. For example, pipx run clang-tidy <args>
will run clang-tidy without any previous install required on any machine with pipx (including all default GitHub Actions / Azure runners, avoiding requiring a pre-install step or even actions/setup-python
).
The clang-tidy-wheel repository provides the logic to build and publish binary wheels of the clang-tidy
utility.
In order to add a new release, the following steps are necessary:
- Edit the version file to reflect the new version.
- Make a GitHub release to trigger the GitHub Actions release workflow. Alternatively, the workflow can be triggered manually.
On manual triggers, the following input variables are available:
use_qemu
: Whether to build targets that require emulation (default:true
)llvm_version
: Override the LLVM version (default:""
)wheel_version
: Override the wheel packaging version (default"0"
)deploy_to_testpypi
: Whether to deploy to TestPyPI instead of PyPI (default:false
)
The repository with the precommit hook is automatically updated using a scheduled Github Actions workflow.
This repository extends the great work of several other projects:
clang-tidy
itself is provided by the LLVM project under the Apache 2.0 License with LLVM exceptions.- The build logic is based on scikit-build which greatly reduces the amount of low level code necessary to package
clang-tidy
. - The
scikit-build
packaging examples of CMake and Ninja were very helpful in packagingclang-tidy
. - The CI build process is controlled by cibuildwheel which makes building wheels across a number of platforms a pleasant experience (!)
We are grateful for the generous provisioning with CI resources that GitHub currently offers to Open Source projects.
To see which clang-tidy binary the package is using
you can set CLANG_TIDY_WHEEL_VERBOSE
to 1
in your environment.