Thank you for investing your time in contributing to this project! ✨
This project packages clang-include-cleaner for PyPI. Contributions
that improve the packaging, build pipeline, CI, or platform support are
welcome. For changes to the tool itself, see the
LLVM project.
- Bugs and feature requests — open an issue
- Questions — start a discussion or use issues
- Link the PR to its issue.
- Resolve merge conflicts before requesting review.
git clone git@github.com:cpp-linter/clang-include-cleaner.git
cd clang-include-cleaner
pip install -e ".[test]"pytest- Downloads the LLVM source tree from the official GitHub releases
- Compiles
clang-include-cleanerstatically via CMake - Strips the binary for size reduction
- Packages the binary and clang builtin headers into a Python wheel
The build is orchestrated by scikit-build-core and cibuildwheel.
The version is stored in clang-include-cleaner_version.txt.
The format is <LLVM_MAJOR>.<LLVM_MINOR>.<LLVM_PATCH>, optionally
followed by .<WHEEL_PACKAGING> for rebuilds of the same LLVM version.
-
Edit
clang-include-cleaner_version.txtto the desired version. -
Create a pull request with the version bump.
-
Once merged, push a matching git tag:
git tag v<major>.<minor>.<patch> git push origin v<major>.<minor>.<patch>
-
The release workflow builds wheels for all platforms, tests them, and publishes to PyPI. A GitHub Release is created automatically.
To rebuild the same LLVM version (e.g. to fix a packaging issue), use
.post<N> as the 4th version component, or trigger the workflow
manually via the Actions tab with these inputs:
| Input | Description | Default |
|---|---|---|
llvm_version |
Override the LLVM version | (from version file) |
wheel_version |
Version suffix for rebuilds | 0 |
deploy_to_testpypi |
Deploy to TestPyPI instead of PyPI | false |
use_qemu |
Build QEMU-emulated targets (armv7l, i686) | true |