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-tidyitself 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-buildpackaging 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.