summaryrefslogtreecommitdiff
path: root/buildstream/_stream.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream/_stream.py')
-rw-r--r--buildstream/_stream.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/buildstream/_stream.py b/buildstream/_stream.py
index 262b38852..87c2d172f 100644
--- a/buildstream/_stream.py
+++ b/buildstream/_stream.py
@@ -41,6 +41,9 @@ from .types import _KeyStrength
from . import utils, _yaml, _site
from . import Scope, Consistency
+import sys
+def debug(*args):
+ print("➤➤➤", *args, file=sys.stderr)
# Stream()
#
@@ -152,6 +155,7 @@ class Stream():
isolate=False,
command=None,
usebuildtree=None):
+ raise NotImplementedError()
# Assert we have everything we need built, unless the directory is specified
# in which case we just blindly trust the directory, using the element
@@ -258,8 +262,10 @@ class Stream():
if self._artifacts.has_fetch_remotes():
self._add_queue(PullQueue(self._scheduler))
- self._add_queue(FetchQueue(self._scheduler, skip_cached=True))
- self._add_queue(BuildQueue(self._scheduler))
+ build_queue = BuildQueue(self._scheduler)
+
+ self._add_queue(FetchQueue(self._scheduler, next_queue=build_queue, skip_cached=True))
+ self._add_queue(build_queue)
if self._artifacts.has_push_remotes():
self._add_queue(PushQueue(self._scheduler))
@@ -359,7 +365,6 @@ class Stream():
selection=PipelineSelection.NONE,
ignore_junction_targets=False,
remote=None):
-
use_config = True
if remote:
use_config = False
@@ -400,6 +405,7 @@ class Stream():
selection=PipelineSelection.NONE,
ignore_junction_targets=False,
remote=None):
+ raise NotImplementedError()
use_config = True
if remote:
@@ -1022,6 +1028,8 @@ class Stream():
rewritable=rewritable,
fetch_subprojects=fetch_subprojects)
+ debug("Elements order", [str(e) for e in elements])
+
# Obtain the ArtifactElement objects
artifacts = [self._project.create_artifact_element(ref) for ref in target_artifacts]
@@ -1093,6 +1101,8 @@ class Stream():
selected,
except_elements)
+ debug("SELECTED", [str(e) for e in selected])
+
# Set the "required" artifacts that should not be removed
# while this pipeline is active
#
@@ -1107,6 +1117,10 @@ class Stream():
itertools.chain.from_iterable(
[element.sources() for element in required_elements()]))
+ counter = itertools.count()
+ for element in selected:
+ element._pipeline_id = next(counter)
+ debug("Setting id to", element._pipeline_id, "for", element)
if selection == PipelineSelection.PLAN and dynamic_plan:
# We use a dynamic build plan, only request artifacts of top-level targets,
# others are requested dynamically as needed.
@@ -1153,7 +1167,10 @@ class Stream():
def _enqueue_plan(self, plan, *, queue=None):
queue = queue or self._first_non_track_queue
- queue.enqueue(plan)
+ debug("Plan is: ", [str(e) for e in plan])
+
+ for element in plan:
+ queue.push(element)
self.session_elements += plan
# _run()
@@ -1188,10 +1205,11 @@ class Stream():
# fetch_original (Bool): Whether to fetch original unstaged
#
def _fetch(self, elements, *, track_elements=None, fetch_original=False):
-
if track_elements is None:
track_elements = []
+ debug("FETCH", [str(e) for e in elements], [str(e) for e in track_elements])
+
# Subtract the track elements from the fetch elements, they will be added separately
fetch_plan = self._pipeline.subtract_elements(elements, track_elements)