From 5cdae1d394c14d39a88aa43fedc47c3628236c43 Mon Sep 17 00:00:00 2001 From: Luiz Irber Date: Tue, 26 Nov 2019 14:56:51 +0000 Subject: [PATCH] use setuptools_scm for python version management (#627) * use setuptools_scm for python version management * add git dep for python wheel building * if no tag is defined, default to dev * any untagged version default to 0.0.1 --- .github/actions/binary-compatible-builds/main.js | 1 + crates/misc/py/setup.py | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/actions/binary-compatible-builds/main.js b/.github/actions/binary-compatible-builds/main.js index 7b53e1733b..05fc93f8ab 100755 --- a/.github/actions/binary-compatible-builds/main.js +++ b/.github/actions/binary-compatible-builds/main.js @@ -60,6 +60,7 @@ const exec = s => { exec('yum install -y centos-release-scl cmake xz epel-release'); exec('yum install -y rh-python36 patchelf unzip'); exec('yum install -y devtoolset-8-gcc devtoolset-8-binutils devtoolset-8-gcc-c++'); +exec('yum install -y git'); // Delete `libstdc++.so` to force gcc to link against `libstdc++.a` instead. // This is a hack and not the right way to do this, but it ends up doing the diff --git a/crates/misc/py/setup.py b/crates/misc/py/setup.py index 3737e89d11..9ad1e3f075 100644 --- a/crates/misc/py/setup.py +++ b/crates/misc/py/setup.py @@ -1,8 +1,14 @@ from setuptools import setup from setuptools_rust import Binding, RustExtension + +def no_tag_default_to_dev(version): + if version.exact: + return version.format_with("{tag}") + return "0.0.1" + + setup(name='wasmtime', - version="0.0.1", classifiers=[ "Development Status :: 1 - Planning", "Intended Audience :: Developers", @@ -14,5 +20,12 @@ setup(name='wasmtime', ], packages=['wasmtime'], package_dir={'wasmtime': 'python/wasmtime'}, + use_scm_version = { + "root": "../../..", + "relative_to": __file__, + "version_scheme": no_tag_default_to_dev, + "local_scheme": lambda _: "", + }, + setup_requires=['setuptools_scm'], rust_extensions=[RustExtension('wasmtime.lib_wasmtime', 'Cargo.toml', binding=Binding.PyO3)], zip_safe=False)