summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin David <valentin.david@gmail.com>2018-08-20 17:02:58 +0000
committerValentin David <valentin.david@gmail.com>2018-08-20 17:02:58 +0000
commitce6d5f8c76d3a320105160920ee5c30663c70531 (patch)
tree79fbe31d73a5230a76c2a668df44928019f9b77f
parentef103572d8394f2f22718a6c502fba97e9c7f88e (diff)
parentd25b7d77f4db739b04ac4224c9d8aa9db31aebea (diff)
downloadbuildstream-ce6d5f8c76d3a320105160920ee5c30663c70531.tar.gz
Merge branch 'valentindavid/fix-broken-indentation-after-track-1.2' into 'bst-1.2'
Fix broken indentation after track See merge request BuildStream/buildstream!687
-rw-r--r--buildstream/_includes.py11
-rw-r--r--buildstream/_loader/loader.py2
-rw-r--r--buildstream/_project.py2
-rw-r--r--buildstream/source.py2
4 files changed, 11 insertions, 6 deletions
diff --git a/buildstream/_includes.py b/buildstream/_includes.py
index e4afeaf82..e30003630 100644
--- a/buildstream/_includes.py
+++ b/buildstream/_includes.py
@@ -10,11 +10,15 @@ from ._exceptions import LoadError, LoadErrorReason
#
# Args:
# loader (Loader): The Loader object
+# copy_tree (bool): Whether to make a copy, of tree in
+# provenance. Should be true if intended to be
+# serialized.
class Includes:
- def __init__(self, loader):
+ def __init__(self, loader, *, copy_tree=False):
self._loader = loader
self._loaded = {}
+ self._copy_tree = copy_tree
# process()
#
@@ -96,10 +100,11 @@ class Includes:
directory = project.directory
file_path = os.path.join(directory, include)
key = (current_loader, file_path)
- if file_path not in self._loaded:
+ if key not in self._loaded:
self._loaded[key] = _yaml.load(os.path.join(directory, include),
shortname=shortname,
- project=project)
+ project=project,
+ copy_tree=self._copy_tree)
return self._loaded[key], file_path, current_loader
# _process_value()
diff --git a/buildstream/_loader/loader.py b/buildstream/_loader/loader.py
index 6e46197ab..c6bc87726 100644
--- a/buildstream/_loader/loader.py
+++ b/buildstream/_loader/loader.py
@@ -78,7 +78,7 @@ class Loader():
self._elements = {} # Dict of elements
self._loaders = {} # Dict of junction loaders
- self._includes = Includes(self)
+ self._includes = Includes(self, copy_tree=True)
# load():
#
diff --git a/buildstream/_project.py b/buildstream/_project.py
index 951662e2b..873f3387e 100644
--- a/buildstream/_project.py
+++ b/buildstream/_project.py
@@ -416,7 +416,7 @@ class Project():
parent=parent_loader,
tempdir=tempdir)
- self._project_includes = Includes(self.loader)
+ self._project_includes = Includes(self.loader, copy_tree=False)
project_conf_first_pass = _yaml.node_copy(self._project_conf)
self._project_includes.process(project_conf_first_pass, only_local=True)
diff --git a/buildstream/source.py b/buildstream/source.py
index f2694fd38..18a9c2e61 100644
--- a/buildstream/source.py
+++ b/buildstream/source.py
@@ -752,7 +752,7 @@ class Source(Plugin):
# Save the ref in the originating file
#
try:
- _yaml.dump(_yaml.node_sanitize(provenance.toplevel), provenance.filename.name)
+ _yaml.dump(provenance.toplevel, provenance.filename.name)
except OSError as e:
raise SourceError("{}: Error saving source reference to '{}': {}"
.format(self, provenance.filename.name, e),