From 4163f7d45e8b1be226748a3dfc2db8c143db7fb6 Mon Sep 17 00:00:00 2001 From: Chang Liu Date: Thu, 6 Apr 2023 12:21:02 -0400 Subject: [PATCH] Get version from CMakeLists for Python build --- scripts/pip-package/package_tar.sh | 1 + scripts/pip-package/setup.py | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/scripts/pip-package/package_tar.sh b/scripts/pip-package/package_tar.sh index d6ddb2eb07..43a48adf3e 100755 --- a/scripts/pip-package/package_tar.sh +++ b/scripts/pip-package/package_tar.sh @@ -25,6 +25,7 @@ tar -cf sdist.tar \ --exclude="./*.sh" . rm -rf sdist && mkdir sdist tar -xf sdist.tar -C ./sdist +(cd ./sdist; python3 setup.py egg_info) rm -rf sdist.tar # Create tar.gz for PyPI diff --git a/scripts/pip-package/setup.py b/scripts/pip-package/setup.py index 4da5393913..1a85303de1 100644 --- a/scripts/pip-package/setup.py +++ b/scripts/pip-package/setup.py @@ -15,6 +15,18 @@ requirements = f.read().splitlines() +def _get_kuzu_version(): + cmake_file = os.path.join(base_dir, 'kuzu-source', 'CMakeLists.txt') + with open(cmake_file) as f: + for line in f: + if line.startswith('project(Kuzu VERSION'): + return line.split(' ')[2].strip() + + +kuzu_version = os.environ['PYTHON_PACKAGE_VERSION'] if 'PYTHON_PACKAGE_VERSION' in os.environ else _get_kuzu_version() +print("The version of this build is %s" % kuzu_version) + + class CMakeExtension(Extension): def __init__(self, name: str, sourcedir: str = "") -> None: super().__init__(name, sources=[]) @@ -55,9 +67,8 @@ def build_extension(self, ext: CMakeExtension) -> None: deploy_target) env_vars['CMAKE_OSX_DEPLOYMENT_TARGET'] = deploy_target - build_dir = os.path.join(ext.sourcedir, 'kuzu-source') - + # Clean the build directory. subprocess.run(['make', 'clean'], check=True, cwd=build_dir) @@ -81,7 +92,7 @@ def run(self): setup(name='kuzu', - version=os.environ['PYTHON_PACKAGE_VERSION'] if 'PYTHON_PACKAGE_VERSION' in os.environ else '0.0.1', + version=kuzu_version, install_requires=[], ext_modules=[CMakeExtension( name="kuzu", sourcedir=base_dir)],