)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"change_message_id":"88d52bfab86115003692473b2200e1e4f04a2851","unresolved":false,"context_lines":[{"line_number":13,"context_line":"those two stages."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Breaking change: any user expecting storage to be ensured after"},{"line_number":16,"context_line":"compilation will have to adjust there code to call prepare (after"},{"line_number":17,"context_line":"which they can continue to expect storage to be ready)."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ie97bc4a795266dda9d7ae8b395bcaadcd1ada737"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAAWH%2F98Fw%3D","line":16,"updated":"2014-04-01 04:15:25.000000000","message":"their?","commit_id":"39d903a995b8b76012f60508ffda601432247515"}],"taskflow/engines/action_engine/engine.py":[{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"f2d6d7065fecc65dd5a77454251893db5d7211ee","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if not self._storage_ensured:"},{"line_number":147,"context_line":"            self._ensure_storage_for(self.execution_graph)"},{"line_number":148,"context_line":"            self._storage_ensured \u003d True"},{"line_number":149,"context_line":"        # At this point we can now check to ensure all dependencies are either"},{"line_number":150,"context_line":"        # flow/task provided or storage provided, if there are still missing"},{"line_number":151,"context_line":"        # dependencies then this flow will fail at runtime (which we can avoid"},{"line_number":152,"context_line":"        # by failing at preparation time)."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BFQI%3D","line":149,"updated":"2014-03-30 21:45:50.000000000","message":"I think \u0027now\u0027 is redundant after \u0027at this point\u0027:\n\"At this point we can check ...\"","commit_id":"8fae7b0f09f59ee0d202098d1e43b8de6a91a0ee"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"3c54c301e4b24d4f5fb1f4accdbccb9ad6a54953","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    @lock_utils.locked"},{"line_number":163,"context_line":"    def compile(self):"},{"line_number":164,"context_line":"        if self._compiled:"},{"line_number":165,"context_line":"            return set(self._flow.requires)"},{"line_number":166,"context_line":"        execution_graph \u003d flow_utils.flatten(self._flow)"},{"line_number":167,"context_line":"        if execution_graph.number_of_nodes() \u003d\u003d 0:"},{"line_number":168,"context_line":"            raise exc.Empty(\"Flow %s is empty.\" % self._flow.name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2BCCs%3D","line":165,"updated":"2014-03-31 12:31:40.000000000","message":"Why does compile return flow requirements?","commit_id":"7e450a0183ffe2024799620eafbcf54cb9e8f85a"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"86ad864ed24990bbcc9b559eb9da9ce574aee411","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    @lock_utils.locked"},{"line_number":163,"context_line":"    def compile(self):"},{"line_number":164,"context_line":"        if self._compiled:"},{"line_number":165,"context_line":"            return set(self._flow.requires)"},{"line_number":166,"context_line":"        execution_graph \u003d flow_utils.flatten(self._flow)"},{"line_number":167,"context_line":"        if execution_graph.number_of_nodes() \u003d\u003d 0:"},{"line_number":168,"context_line":"            raise exc.Empty(\"Flow %s is empty.\" % self._flow.name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F9%2FKs%3D","line":165,"in_reply_to":"AAAAWH%2F%2BCCs%3D","updated":"2014-03-31 18:33:13.000000000","message":"It seems like a useful output to provide back, let me remove it though, since I guess its not really necessary and is just a nice to have.","commit_id":"7e450a0183ffe2024799620eafbcf54cb9e8f85a"}],"taskflow/engines/base.py":[{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"18eae431a1fdbd81bb4d4f55948f5ef0353a5e31","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        use to run or if this can not be done then an exception is thrown"},{"line_number":56,"context_line":"        indicating why this compilation could not be achieved."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        :returns: set the set of dependent inputs the engine requires to"},{"line_number":59,"context_line":"        execute (and which must be satisifed before prepare/run is called) by"},{"line_number":60,"context_line":"        prepopulating storage with those inputs."},{"line_number":61,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BGRs%3D","line":58,"updated":"2014-03-30 06:50:59.000000000","message":"\"set the set\", something is wrong..?","commit_id":"f9197cc8719f4e189d26d3b77c77ed4fa7af67a9"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b458720bb9f9d3a5de60d7fb605bd5418cbf97f8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        use to run or if this can not be done then an exception is thrown"},{"line_number":56,"context_line":"        indicating why this compilation could not be achieved."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        :returns: set the set of dependent inputs the engine requires to"},{"line_number":59,"context_line":"        execute (and which must be satisifed before prepare/run is called) by"},{"line_number":60,"context_line":"        prepopulating storage with those inputs."},{"line_number":61,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BFoI%3D","line":58,"in_reply_to":"AAAAWH%2F%2BGRs%3D","updated":"2014-03-30 16:06:12.000000000","message":"Done","commit_id":"f9197cc8719f4e189d26d3b77c77ed4fa7af67a9"},{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"18eae431a1fdbd81bb4d4f55948f5ef0353a5e31","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        indicating why this compilation could not be achieved."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        :returns: set the set of dependent inputs the engine requires to"},{"line_number":59,"context_line":"        execute (and which must be satisifed before prepare/run is called) by"},{"line_number":60,"context_line":"        prepopulating storage with those inputs."},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BGRw%3D","line":59,"updated":"2014-03-30 06:50:59.000000000","message":"satisifed -\u003e satisfied","commit_id":"f9197cc8719f4e189d26d3b77c77ed4fa7af67a9"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b458720bb9f9d3a5de60d7fb605bd5418cbf97f8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        indicating why this compilation could not be achieved."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        :returns: set the set of dependent inputs the engine requires to"},{"line_number":59,"context_line":"        execute (and which must be satisifed before prepare/run is called) by"},{"line_number":60,"context_line":"        prepopulating storage with those inputs."},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BFoM%3D","line":59,"in_reply_to":"AAAAWH%2F%2BGRw%3D","updated":"2014-03-30 16:06:12.000000000","message":"Done","commit_id":"f9197cc8719f4e189d26d3b77c77ed4fa7af67a9"},{"author":{"_account_id":8895,"name":"Stanislav Kudriashev","email":"stas.kudriashev@gmail.com","username":"skudriashev"},"change_message_id":"18eae431a1fdbd81bb4d4f55948f5ef0353a5e31","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    def prepare(self):"},{"line_number":65,"context_line":"        \"\"\"Performs any pre-run, but post-compliation actions."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        NOTE(harlowja): During preparation it is typical that the the"},{"line_number":68,"context_line":"        underlying storage will be initialized and all final dependencies"},{"line_number":69,"context_line":"        will be verified and the tasks will be reset and the engine will enter"},{"line_number":70,"context_line":"        the PENDING state."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BGRo%3D","line":67,"updated":"2014-03-30 06:50:59.000000000","message":"the the -\u003e the","commit_id":"f9197cc8719f4e189d26d3b77c77ed4fa7af67a9"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b458720bb9f9d3a5de60d7fb605bd5418cbf97f8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    def prepare(self):"},{"line_number":65,"context_line":"        \"\"\"Performs any pre-run, but post-compliation actions."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        NOTE(harlowja): During preparation it is typical that the the"},{"line_number":68,"context_line":"        underlying storage will be initialized and all final dependencies"},{"line_number":69,"context_line":"        will be verified and the tasks will be reset and the engine will enter"},{"line_number":70,"context_line":"        the PENDING state."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BFoE%3D","line":67,"in_reply_to":"AAAAWH%2F%2BGRo%3D","updated":"2014-03-30 16:06:12.000000000","message":"Done","commit_id":"f9197cc8719f4e189d26d3b77c77ed4fa7af67a9"},{"author":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"change_message_id":"88d52bfab86115003692473b2200e1e4f04a2851","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        use to run or if this can not be done then an exception is thrown"},{"line_number":56,"context_line":"        indicating why this compilation could not be achieved."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        :returns: set of dependent inputs the engine requires to execute"},{"line_number":59,"context_line":"        and which must be satisfied before prepare/run is called by"},{"line_number":60,"context_line":"        pre-populating storage with those inputs."},{"line_number":61,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAWH%2F98GA%3D","line":58,"updated":"2014-04-01 04:15:25.000000000","message":"Looks like you removed it in current patchset.","commit_id":"39d903a995b8b76012f60508ffda601432247515"}]}
