summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-03-28 12:44:02 +0900
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-03-28 12:44:02 +0900
commit6e2a342d058aed50b427b559344685f8de414b4b (patch)
tree3765df8e45beed054e791a9faf81a6fb1b536ba4
parentbb75d4a5df1886d4081f26a986e3bac3ed9cd283 (diff)
downloadbuildstream-6e2a342d058aed50b427b559344685f8de414b4b.tar.gz
_project.py: Move format version assertion before any validation
This fixes #314
-rw-r--r--buildstream/_project.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/buildstream/_project.py b/buildstream/_project.py
index 003418682..ce23452f1 100644
--- a/buildstream/_project.py
+++ b/buildstream/_project.py
@@ -166,6 +166,16 @@ class Project():
config.pop('elements', None)
config.pop('sources', None)
_yaml.node_final_assertions(config)
+
+ # Assert project's format version early, before validating toplevel keys
+ format_version = _yaml.node_get(config, int, 'format-version')
+ if BST_FORMAT_VERSION < format_version:
+ major, minor = utils.get_bst_version()
+ raise LoadError(
+ LoadErrorReason.UNSUPPORTED_PROJECT,
+ "Project requested format version {}, but BuildStream {}.{} only supports up until format version {}"
+ .format(format_version, major, minor, BST_FORMAT_VERSION))
+
_yaml.node_validate(config, [
'format-version',
'element-path', 'variables',
@@ -221,15 +231,6 @@ class Project():
# Workspace configurations
self._workspaces = Workspaces(self)
- # Assert project version
- format_version = _yaml.node_get(config, int, 'format-version')
- if BST_FORMAT_VERSION < format_version:
- major, minor = utils.get_bst_version()
- raise LoadError(
- LoadErrorReason.UNSUPPORTED_PROJECT,
- "Project requested format version {}, but BuildStream {}.{} only supports up until format version {}"
- .format(format_version, major, minor, BST_FORMAT_VERSION))
-
# Plugin origins and versions
origins = _yaml.node_get(config, list, 'plugins', default_value=[])
for origin in origins: