https://github.com/nightlark updated https://github.com/llvm/llvm-project/pull/125806
>From 6bb389392615b27c167a718b275bd497c1201f9c Mon Sep 17 00:00:00 2001 From: Ryan Mast <[email protected]> Date: Tue, 4 Feb 2025 21:59:28 -0800 Subject: [PATCH] [libclang/python] Enable packaging clang python bindings This adds a pyproject.toml file for creating sdist and wheel packages for the clang python bindings. It is required to move updates of the clang and libclang PyPI packages to the LLVM monorepo. Versioning information is derived from LLVM git tags, so no manual updates are needed to bump version numbers. The minimum python version required is set to 3.10 due to cindex.py using PEP 604 union type syntax (str | bytes | None). Signed-off-by: Ryan Mast <[email protected]> --- .gitattributes | 2 ++ clang/bindings/python/.git_archival.txt | 3 ++ clang/bindings/python/.gitignore | 21 ++++++++++++ clang/bindings/python/pyproject.toml | 43 +++++++++++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 clang/bindings/python/.git_archival.txt create mode 100644 clang/bindings/python/.gitignore create mode 100644 clang/bindings/python/pyproject.toml diff --git a/.gitattributes b/.gitattributes index 6b281f33f737d..142d6689f1088 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,5 @@ +clang/bindings/python/.git_archival.txt export-subst + libcxx/src/**/*.cpp merge=libcxx-reformat libcxx/include/**/*.h merge=libcxx-reformat diff --git a/clang/bindings/python/.git_archival.txt b/clang/bindings/python/.git_archival.txt new file mode 100644 index 0000000000000..7876d4af4c620 --- /dev/null +++ b/clang/bindings/python/.git_archival.txt @@ -0,0 +1,3 @@ +node: $Format:%H$ +node-date: $Format:%cI$ +describe-name: $Format:%(describe:tags=true,match=llvmorg-*[0-9]*)$ diff --git a/clang/bindings/python/.gitignore b/clang/bindings/python/.gitignore new file mode 100644 index 0000000000000..1641a745fb682 --- /dev/null +++ b/clang/bindings/python/.gitignore @@ -0,0 +1,21 @@ +# setuptools_scm auto-generated version file +_version.py + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Distribution / packaging +build/ +dist/ +*.egg-info/ + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ diff --git a/clang/bindings/python/pyproject.toml b/clang/bindings/python/pyproject.toml new file mode 100644 index 0000000000000..69fd628e8222a --- /dev/null +++ b/clang/bindings/python/pyproject.toml @@ -0,0 +1,43 @@ +[build-system] +requires = ["hatchling>=1.27", "hatch-vcs>=0.4"] +build-backend = "hatchling.build" + +[project] +name = "clang" +description = "clang python bindings" +readme = {file = "README.txt", content-type = "text/plain"} + +license = "Apache-2.0 WITH LLVM-exception" +authors = [ + { name = "LLVM" } +] +keywords = ["llvm", "clang", "libclang"] +classifiers = [ + "Intended Audience :: Developers", + "Development Status :: 5 - Production/Stable", + "Topic :: Software Development :: Compilers", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", +] +requires-python = ">=3.10" +dynamic = ["version"] + +[project.urls] +Homepage = "https://clang.llvm.org/" +Download = "https://llvm.org/releases/download.html" +Discussions = "https://discourse.llvm.org/" +"Issue Tracker" = "https://github.com/llvm/llvm-project/issues" +"Source Code" = "https://github.com/llvm/llvm-project/tree/main/clang/bindings/python" + +[tool.hatch.version] +source = "vcs" +version-scheme = "no-guess-dev" +# regex version capture group gets x.y.z with optional -rcN, -aN, -bN suffixes; -init is just consumed +tag-pattern = "^llvmorg-(?P<version>\\d+(?:\\.\\d+)*(?:-rc\\d+)?)" + +[tool.hatch.build.hooks.vcs] +version-file = "clang/_version.py" + +[tool.hatch.version.raw-options] +search_parent_directories = true +version_scheme = "no-guess-dev" _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
