diff options
-rw-r--r-- | buildstream/_plugincontext.py | 6 | ||||
-rw-r--r-- | buildstream/_project.py | 7 | ||||
-rw-r--r-- | buildstream/utils.py | 3 |
3 files changed, 14 insertions, 2 deletions
diff --git a/buildstream/_plugincontext.py b/buildstream/_plugincontext.py index 0be3de1b1..c84af4f0a 100644 --- a/buildstream/_plugincontext.py +++ b/buildstream/_plugincontext.py @@ -21,7 +21,7 @@ import os import inspect -from ._exceptions import PluginError +from ._exceptions import AppError, PluginError from . import utils @@ -211,6 +211,10 @@ class PluginContext(): # Now assert BuildStream version bst_major, bst_minor = utils.get_bst_version() + if (bst_major, bst_minor) == (None, None): + raise AppError("Your git repository has no tags - BuildStream can't" + " determine its version. Please run `git fetch --tags`.") + if bst_major < plugin_type.BST_REQUIRED_VERSION_MAJOR or \ (bst_major == plugin_type.BST_REQUIRED_VERSION_MAJOR and bst_minor < plugin_type.BST_REQUIRED_VERSION_MINOR): diff --git a/buildstream/_project.py b/buildstream/_project.py index 9f42bf613..91e65fed8 100644 --- a/buildstream/_project.py +++ b/buildstream/_project.py @@ -27,7 +27,7 @@ from . import _cachekey from . import _site from . import _yaml from ._profile import Topics, profile_start, profile_end -from ._exceptions import LoadError, LoadErrorReason +from ._exceptions import AppError, LoadError, LoadErrorReason from ._options import OptionPool from ._artifactcache import ArtifactCache from ._elementfactory import ElementFactory @@ -237,6 +237,11 @@ class Project(): format_version = _yaml.node_get(config, int, 'format-version') if BST_FORMAT_VERSION < format_version: major, minor = utils.get_bst_version() + + if (major, minor) == (None, None): + raise AppError("Your git repository has no tags - BuildStream can't" + " determine its version. Please run `git fetch --tags`.") + raise LoadError( LoadErrorReason.UNSUPPORTED_PROJECT, "Project requested format version {}, but BuildStream {}.{} only supports up until format version {}" diff --git a/buildstream/utils.py b/buildstream/utils.py index 70759dc12..7f3fdbc51 100644 --- a/buildstream/utils.py +++ b/buildstream/utils.py @@ -472,6 +472,9 @@ def get_bst_version(): from . import __version__ versions = __version__.split('.')[:2] + if versions[0] == '0+untagged': + return (None, None) + return (int(versions[0]), int(versions[1])) |