diff options
author | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-03-28 12:44:02 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-03-28 12:44:02 +0900 |
commit | 6e2a342d058aed50b427b559344685f8de414b4b (patch) | |
tree | 3765df8e45beed054e791a9faf81a6fb1b536ba4 | |
parent | bb75d4a5df1886d4081f26a986e3bac3ed9cd283 (diff) | |
download | buildstream-6e2a342d058aed50b427b559344685f8de414b4b.tar.gz |
_project.py: Move format version assertion before any validation
This fixes #314
-rw-r--r-- | buildstream/_project.py | 19 |
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: |