Merge pull request #1457 from apache/juerg/non-strict-cache-key
element.py: Compute cache key also for rdep without buildable callback
diff --git a/src/buildstream/element.py b/src/buildstream/element.py
index 584dc62..0cfa812 100644
--- a/src/buildstream/element.py
+++ b/src/buildstream/element.py
@@ -1264,10 +1264,12 @@
# (bool): Whether this element can currently be built
#
def _buildable(self):
- if self._fetch_needed():
+ # This check must be before `_fetch_needed()` as source cache status
+ # is not always available for non-build pipelines.
+ if not self.__assemble_scheduled:
return False
- if not self.__assemble_scheduled:
+ if self._fetch_needed():
return False
return self.__build_deps_uncached == 0
@@ -2410,10 +2412,12 @@
rdep.__build_deps_uncached -= 1
assert not rdep.__build_deps_uncached < 0
- if rdep.__buildable_callback is not None and rdep._buildable():
+ if rdep._buildable():
rdep.__update_cache_key_non_strict()
- rdep.__buildable_callback(rdep)
- rdep.__buildable_callback = None
+
+ if rdep.__buildable_callback is not None:
+ rdep.__buildable_callback(rdep)
+ rdep.__buildable_callback = None
# _walk_artifact_files()
#