# clangd Python distribution
[![PyPI Release](https://img.shields.io/pypi/v/clangd.svg)](https://pypi.org/project/clangd)
This project packages the `clangd` utility as a Python package. It allows you to install `clangd` directly from PyPI:
```
python -m pip install clangd
```
This projects intends to release a new PyPI package for each major and minor release of `clangd`.
## Use with pipx
You can use `pipx` to run clangd, as well. For example, `pipx run clangd <args>` will run clangd 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`).
## Building new releases
The [clangd-wheel repository](https://github.com/jmpfar/clangd-wheel) provides the logic to build and publish binary wheels of the `clangd` utility.
In order to add a new release, the following steps are necessary:
* Edit the [version file](https://github.com/jmpfar/clangd-wheel/blob/main/clangd_version.cmake) to reflect the new version.
* Make a GitHub release to trigger the [GitHub Actions release workflow](https://github.com/jmpfar/clangd-wheel/actions/workflows/release.yml). Alternatively, the workflow can be triggered manually.
On manual triggers, the following input variables are available:
* `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.
## Acknowledgments
This repository extends the great work of several other projects:
* This is a fork of the [clang-tidy-wheel](https://github.com/ssciwr/clang-tidy-wheel) project,
and their original work was used to create a wheel for clangd.
* `clangd` itself is [provided by the LLVM project](https://github.com/llvm/llvm-project) under the Apache 2.0 License with LLVM exceptions.
* The build logic is based on [scikit-build](https://github.com/scikit-build/scikit-build) which greatly reduces the amount of low level code necessary to package `clangd`.
* The `scikit-build` packaging examples of [CMake](https://github.com/scikit-build/cmake-python-distributions) and [Ninja](https://github.com/scikit-build/ninja-python-distributions) were very helpful in packaging `clangd`.
* The CI build process is controlled by [cibuildwheel](https://github.com/pypa/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.
## Troubleshooting
To see which clangd binary the package is using
you can set `CLANGD_WHEEL_VERBOSE` to `1` in your environment.
Raw data
{
"_id": null,
"home_page": null,
"name": "clangd",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "clangd, lsp, language-server, llvm, clang, static-analysis",
"author": "Dan Ilan",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/e4/47/9c4e9c24a471b32e3228e1bbc961862fd4635806c4c9cd58de4f1ec84300/clangd-19.1.7.tar.gz",
"platform": null,
"description": "# clangd Python distribution\n\n[![PyPI Release](https://img.shields.io/pypi/v/clangd.svg)](https://pypi.org/project/clangd)\n\nThis project packages the `clangd` utility as a Python package. It allows you to install `clangd` directly from PyPI:\n\n```\npython -m pip install clangd\n```\n\nThis projects intends to release a new PyPI package for each major and minor release of `clangd`.\n\n## Use with pipx\n\nYou can use `pipx` to run clangd, as well. For example, `pipx run clangd <args>` will run clangd 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`).\n\n## Building new releases\n\nThe [clangd-wheel repository](https://github.com/jmpfar/clangd-wheel) provides the logic to build and publish binary wheels of the `clangd` utility.\n\nIn order to add a new release, the following steps are necessary:\n\n* Edit the [version file](https://github.com/jmpfar/clangd-wheel/blob/main/clangd_version.cmake) to reflect the new version.\n* Make a GitHub release to trigger the [GitHub Actions release workflow](https://github.com/jmpfar/clangd-wheel/actions/workflows/release.yml). Alternatively, the workflow can be triggered manually.\n\nOn manual triggers, the following input variables are available:\n* `llvm_version`: Override the LLVM version (default: `\"\"`)\n* `wheel_version`: Override the wheel packaging version (default `\"0\"`)\n* `deploy_to_testpypi`: Whether to deploy to TestPyPI instead of PyPI (default: `false`)\n\nThe repository with the precommit hook is automatically updated using a scheduled Github Actions workflow.\n\n## Acknowledgments\n\nThis repository extends the great work of several other projects:\n\n* This is a fork of the [clang-tidy-wheel](https://github.com/ssciwr/clang-tidy-wheel) project, \n and their original work was used to create a wheel for clangd.\n* `clangd` itself is [provided by the LLVM project](https://github.com/llvm/llvm-project) under the Apache 2.0 License with LLVM exceptions.\n* The build logic is based on [scikit-build](https://github.com/scikit-build/scikit-build) which greatly reduces the amount of low level code necessary to package `clangd`.\n* The `scikit-build` packaging examples of [CMake](https://github.com/scikit-build/cmake-python-distributions) and [Ninja](https://github.com/scikit-build/ninja-python-distributions) were very helpful in packaging `clangd`.\n* The CI build process is controlled by [cibuildwheel](https://github.com/pypa/cibuildwheel) which makes building wheels across a number of platforms a pleasant experience (!)\n\nWe are grateful for the generous provisioning with CI resources that GitHub currently offers to Open Source projects.\n\n## Troubleshooting\n\nTo see which clangd binary the package is using\nyou can set `CLANGD_WHEEL_VERBOSE` to `1` in your environment.\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "binaries for clangd, a clang-based C++ language server (LSP)",
"version": "19.1.7",
"project_urls": {
"Documentation": "https://clangd.llvm.org/",
"Source": "https://github.com/jmpfar/clangd-wheel"
},
"split_keywords": [
"clangd",
" lsp",
" language-server",
" llvm",
" clang",
" static-analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c4bdfb757fa3f0452c6a331f8ac033a5c6bed3e1c4d7a15bc7d4946f6edd7863",
"md5": "6a19f104ef666005dec5eb1d324df7a4",
"sha256": "e65ae0499cb029300d91395d0f3c2924124bbb8a8ab5b22273f9d50f1870570d"
},
"downloads": -1,
"filename": "clangd-19.1.7-py2.py3-none-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "6a19f104ef666005dec5eb1d324df7a4",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 41617975,
"upload_time": "2025-01-16T22:41:22",
"upload_time_iso_8601": "2025-01-16T22:41:22.329536Z",
"url": "https://files.pythonhosted.org/packages/c4/bd/fb757fa3f0452c6a331f8ac033a5c6bed3e1c4d7a15bc7d4946f6edd7863/clangd-19.1.7-py2.py3-none-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "59588a9586088cfa2d3ada98390321c5375e39f9549042332fc43dc47bff0b77",
"md5": "dd11a8662ae37715a6382a31071804ff",
"sha256": "e90766eaf298b7c0983ee4a85cfdb59a75e423f2c75f50a68fabe18d8a33835f"
},
"downloads": -1,
"filename": "clangd-19.1.7-py2.py3-none-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "dd11a8662ae37715a6382a31071804ff",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 39362644,
"upload_time": "2025-01-16T22:41:28",
"upload_time_iso_8601": "2025-01-16T22:41:28.526367Z",
"url": "https://files.pythonhosted.org/packages/59/58/8a9586088cfa2d3ada98390321c5375e39f9549042332fc43dc47bff0b77/clangd-19.1.7-py2.py3-none-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f0c7825a7e7f9578062aae179d8f9b011b2aa7645683a45731ec724694645537",
"md5": "64164b51467cd2b06842e1d37ae89907",
"sha256": "61e11ce80715b5fbce3a473411d834252da46324462c21d0eaf6d41936b98a36"
},
"downloads": -1,
"filename": "clangd-19.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "64164b51467cd2b06842e1d37ae89907",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 51947941,
"upload_time": "2025-01-16T22:41:35",
"upload_time_iso_8601": "2025-01-16T22:41:35.784325Z",
"url": "https://files.pythonhosted.org/packages/f0/c7/825a7e7f9578062aae179d8f9b011b2aa7645683a45731ec724694645537/clangd-19.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f8374c5b43d0f821ced911f7035ff35c185a9ac23fa0428f60ee53c484981f9e",
"md5": "608b6397205803622f9c0419b4722200",
"sha256": "ac592a9199317f531bb57b5e74113d254c68d526ebcb2aee1a5b6e43db1d8706"
},
"downloads": -1,
"filename": "clangd-19.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "608b6397205803622f9c0419b4722200",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 53353401,
"upload_time": "2025-01-16T22:41:46",
"upload_time_iso_8601": "2025-01-16T22:41:46.282097Z",
"url": "https://files.pythonhosted.org/packages/f8/37/4c5b43d0f821ced911f7035ff35c185a9ac23fa0428f60ee53c484981f9e/clangd-19.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c53b863a706f1191164df49f11c4079045a229b03841b9d43f2ed0e4e62ea68a",
"md5": "edc3817bb53e4a90b44dfc4003a63f96",
"sha256": "136fd20bf63d1f48f21cca02c98dc12021dcb6a10655d8e787b0d2fe2c133862"
},
"downloads": -1,
"filename": "clangd-19.1.7-py2.py3-none-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "edc3817bb53e4a90b44dfc4003a63f96",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 54882563,
"upload_time": "2025-01-16T22:41:55",
"upload_time_iso_8601": "2025-01-16T22:41:55.592843Z",
"url": "https://files.pythonhosted.org/packages/c5/3b/863a706f1191164df49f11c4079045a229b03841b9d43f2ed0e4e62ea68a/clangd-19.1.7-py2.py3-none-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f81abb5636076a81c6ef6bd5700d245de6a084054b8bffa53d841cd8173ba08",
"md5": "fc61d1e18db8f8a3f0fb3dffdee2812c",
"sha256": "1cd18b7c903013ec0f3e0da3a3ab7ee4f65ea1ecc33d82fbb44444a458753ff7"
},
"downloads": -1,
"filename": "clangd-19.1.7-py2.py3-none-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "fc61d1e18db8f8a3f0fb3dffdee2812c",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 57141834,
"upload_time": "2025-01-16T22:42:04",
"upload_time_iso_8601": "2025-01-16T22:42:04.763258Z",
"url": "https://files.pythonhosted.org/packages/3f/81/abb5636076a81c6ef6bd5700d245de6a084054b8bffa53d841cd8173ba08/clangd-19.1.7-py2.py3-none-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bca926ee19e9e854de66ad97b4776d4c6b47d79acdbcb30cf239958d30c87d31",
"md5": "f72ebd1d3f03eff7dc5b58060d48e332",
"sha256": "b10fdff9d1d02ac71e0d560d8d9f984ec1716b40ee2ba8df62d332d4e33de2d7"
},
"downloads": -1,
"filename": "clangd-19.1.7-py2.py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "f72ebd1d3f03eff7dc5b58060d48e332",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 41437285,
"upload_time": "2025-01-16T22:42:11",
"upload_time_iso_8601": "2025-01-16T22:42:11.898264Z",
"url": "https://files.pythonhosted.org/packages/bc/a9/26ee19e9e854de66ad97b4776d4c6b47d79acdbcb30cf239958d30c87d31/clangd-19.1.7-py2.py3-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e4479c4e9c24a471b32e3228e1bbc961862fd4635806c4c9cd58de4f1ec84300",
"md5": "a76fa47185d9b1076c32fd3e8f0bb975",
"sha256": "11fd6d13d6f7b68989f27392e38aaca4d0a433a002a54e4327c99fe5352c4d25"
},
"downloads": -1,
"filename": "clangd-19.1.7.tar.gz",
"has_sig": false,
"md5_digest": "a76fa47185d9b1076c32fd3e8f0bb975",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9413,
"upload_time": "2025-01-16T22:42:15",
"upload_time_iso_8601": "2025-01-16T22:42:15.620814Z",
"url": "https://files.pythonhosted.org/packages/e4/47/9c4e9c24a471b32e3228e1bbc961862fd4635806c4c9cd58de4f1ec84300/clangd-19.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-16 22:42:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jmpfar",
"github_project": "clangd-wheel",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "clangd"
}