diff --git a/sat/tools/utils.py b/sat/tools/utils.py index 48e24afc..f4928feb 100644 --- a/sat/tools/utils.py +++ b/sat/tools/utils.py @@ -204,18 +204,23 @@ def getRepositoryData(module, as_string=True, is_path=False): 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 --git a/setup.py b/setup.py index 25e58f90..c9f0d434 100644 --- a/setup.py +++ b/setup.py @@ -62,13 +62,10 @@ is_dev_version = VERSION.endswith('D') 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)