[Notes] [Git][BuildStream/buildstream][bschubert/pipeline] fixup! fixup! WIP: notes



Title: GitLab

Benjamin Schubert pushed to branch bschubert/pipeline at BuildStream / buildstream

Commits:

3 changed files:

Changes:

  • buildstream/_scheduler/queues/buildqueue.py
    ... ... @@ -107,7 +107,7 @@ class BuildQueue(Queue):
    107 107
             element._assemble_done()
    
    108 108
     
    
    109 109
             # Update the state of all reverse dependencies
    
    110
    -        for reverse_dependency in element.reverse_build_dependencies:
    
    110
    +        for reverse_dependency in element.reverse_build_dependencies():
    
    111 111
                 reverse_dependency._update_state()
    
    112 112
     
    
    113 113
             # This has to be done after _assemble_done, such that the
    

  • buildstream/_scheduler/queues/trackqueue.py
    ... ... @@ -58,3 +58,6 @@ class TrackQueue(Queue):
    58 58
                 source._save_ref(new_ref)
    
    59 59
     
    
    60 60
             element._tracking_done()
    
    61
    +
    
    62
    +        for rdep in element.reverse_build_dependencies(recurse=True):
    
    63
    +            rdep._update_state()

  • buildstream/element.py
    ... ... @@ -197,7 +197,7 @@ class Element(Plugin):
    197 197
     
    
    198 198
             self.__runtime_dependencies = []        # Direct runtime dependency Elements
    
    199 199
             self.__build_dependencies = []          # Direct build dependency Elements
    
    200
    -        self.reverse_build_dependencies = []    # Direct reverse build dependency Elements
    
    200
    +        self.__reverse_build_dependencies = []    # Direct reverse build dependency Elements
    
    201 201
             self.__sources = []                     # List of Sources
    
    202 202
             self.__weak_cache_key = None            # Our cached weak cache key
    
    203 203
             self.__strict_cache_key = None          # Our cached cache key for strict builds
    
    ... ... @@ -440,6 +440,27 @@ class Element(Plugin):
    440 440
             if should_yield and (recurse or recursed) and scope != Scope.BUILD:
    
    441 441
                 yield self
    
    442 442
     
    
    443
    +    def reverse_build_dependencies(self, recurse=False):
    
    444
    +        if not recurse:
    
    445
    +            yield from self.__reverse_build_dependencies
    
    446
    +            return
    
    447
    +
    
    448
    +        visited = set()
    
    449
    +
    
    450
    +        def recurse_rdeps(element):
    
    451
    +            if element in visited:
    
    452
    +                return
    
    453
    +
    
    454
    +            visited.add(element)
    
    455
    +
    
    456
    +            yield element
    
    457
    +
    
    458
    +            for rdep in element.__reverse_build_dependencies:
    
    459
    +                yield from recurse_rdeps(rdep)
    
    460
    +
    
    461
    +        for rdep in self.__reverse_build_dependencies:
    
    462
    +            yield from recurse_rdeps(rdep)
    
    463
    +
    
    443 464
         def search(self, scope, name):
    
    444 465
             """Search for a dependency by name
    
    445 466
     
    
    ... ... @@ -931,7 +952,7 @@ class Element(Plugin):
    931 952
             for meta_dep in meta.build_dependencies:
    
    932 953
                 dependency = Element._new_from_meta(meta_dep)
    
    933 954
                 element.__build_dependencies.append(dependency)
    
    934
    -            dependency.reverse_build_dependencies.append(element)
    
    955
    +            dependency.__reverse_build_dependencies.append(element)
    
    935 956
     
    
    936 957
             return element
    
    937 958
     
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]