# HG changeset patch # User Goffi # Date 1523026060 -7200 # Node ID cb7bf936d8e83f4426ce7cec269238aea7d3e642 # Parent 824ef7f6428659df87919582cc24799b3a9522f6 setup, tools(utils): fixed versioning in setup and getRepositoryData diff -r 824ef7f64286 -r cb7bf936d8e8 sat/tools/utils.py --- a/sat/tools/utils.py Fri Apr 06 15:41:26 2018 +0200 +++ b/sat/tools/utils.py Fri Apr 06 16:47:40 2018 +0200 @@ -204,18 +204,23 @@ try: import pkg_resources pkg_version = pkg_resources.get_distribution(C.APP_NAME_FILE).version - version, hg_node, hg_distance = pkg_version.split('-') + version, local_id = pkg_version.split('+', 1) except ImportError: log.warning("pkg_resources not available, can't get package data") except pkg_resources.DistributionNotFound: log.warning("can't retrieve package data") except ValueError: - log.warning(u"package version doesn't fit: {pkg_version}".format(pkg_version=pkg_version)) + log.info(u"no local version id in package: {pkg_version}".format(pkg_version=pkg_version)) else: + version = version.replace('.dev0', 'D') if version != C.APP_VERSION: - log.error("Incompatible version ({version}) and pkg_version ({pkg_version})".format( + log.warning("Incompatible version ({version}) and pkg_version ({pkg_version})".format( version=C.APP_VERSION, pkg_version=pkg_version)) else: + try: + hg_node, hg_distance = local_id.split('.') + except ValueError: + log.warning("Version doesn't specify repository data") hg_data = {'node_short': hg_node, 'distance': hg_distance} repos_cache_dict = hg_data diff -r 824ef7f64286 -r cb7bf936d8e8 setup.py --- a/setup.py Fri Apr 06 15:41:26 2018 +0200 +++ b/setup.py Fri Apr 06 16:47:40 2018 +0200 @@ -62,13 +62,10 @@ def sat_dev_version(): """Use mercurial data to compute version""" def version_scheme(version): - return VERSION + return VERSION.replace('D', '.dev0') def local_scheme(version): - # XXX: setuptools_scm seems buggy and the '+' and the '_' are replaced by '-' - # breaking the local version identifier scheme - # cf. https://github.com/pypa/setuptools_scm/issues/237 - return "+{rev}_{distance}".format( + return "+{rev}.{distance}".format( rev=version.node[1:], distance=version.distance)