)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d9634a908ecea69a1739b41d988aafa96a698e52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1670b2b4_acdc027c","updated":"2021-10-29 18:41:27.000000000","message":"recheck docker build timed out","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"}],"zuul/model.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ebfe1f0927804cc1e329d428cc74cb577d2de129","unresolved":false,"context_lines":[{"line_number":3105,"context_line":"            \"url\": self.url,"},{"line_number":3106,"context_line":"            \"result\": self.result,"},{"line_number":3107,"context_line":"            # TODO: Shard this?"},{"line_number":3108,"context_line":"            \"result_data\": self.result_data,"},{"line_number":3109,"context_line":"            \"error_detail\": self.error_detail,"},{"line_number":3110,"context_line":"            \"execute_time\": self.execute_time,"},{"line_number":3111,"context_line":"            \"start_time\": self.start_time,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7db8ff56_a75b9e7d","line":3108,"updated":"2021-10-22 21:52:37.000000000","message":"Actually -- maybe we should go ahead and make it a separate object always, so that we can set ourselves up later for the executor more easily just dumping the result data right into this.  I think it will be simpler too.\n\nAlso, need secret_result_data.","commit_id":"e8eaac5472aad5e30b0dee6457f33b01caddb191"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"7a8ffd14420faec87c5066ead0110e7c84a37bdb","unresolved":false,"context_lines":[{"line_number":3105,"context_line":"            \"url\": self.url,"},{"line_number":3106,"context_line":"            \"result\": self.result,"},{"line_number":3107,"context_line":"            # TODO: Shard this?"},{"line_number":3108,"context_line":"            \"result_data\": self.result_data,"},{"line_number":3109,"context_line":"            \"error_detail\": self.error_detail,"},{"line_number":3110,"context_line":"            \"execute_time\": self.execute_time,"},{"line_number":3111,"context_line":"            \"start_time\": self.start_time,"}],"source_content_type":"text/x-python","patch_set":3,"id":"6d5273c1_cbeb6962","line":3108,"updated":"2021-10-22 21:25:57.000000000","message":"This looks like a good candidate for the JobData trick where we allow up to 10k to stay on this object, otherwise shard.","commit_id":"e8eaac5472aad5e30b0dee6457f33b01caddb191"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"7a8ffd14420faec87c5066ead0110e7c84a37bdb","unresolved":false,"context_lines":[{"line_number":3116,"context_line":"            \"retry\": self.retry,"},{"line_number":3117,"context_line":"            \"held\": self.held,"},{"line_number":3118,"context_line":"            # TODO: Shard this?"},{"line_number":3119,"context_line":"            \"parameters\": self.parameters,"},{"line_number":3120,"context_line":"            \"zuul_event_id\": self.zuul_event_id,"},{"line_number":3121,"context_line":"            \"build_request_ref\": self.build_request_ref,"},{"line_number":3122,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"5cd447e1_2535bd10","line":3119,"updated":"2021-10-22 21:25:57.000000000","message":"It looks like nothing actually uses this right now (all the params go into the build request), so I think we can remove it.","commit_id":"e8eaac5472aad5e30b0dee6457f33b01caddb191"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"1f7ca38bae97af637fdbbc972664de936b040cef","unresolved":false,"context_lines":[{"line_number":3076,"context_line":"        self._set(data\u003d{})"},{"line_number":3077,"context_line":""},{"line_number":3078,"context_line":"    def getPath(self):"},{"line_number":3079,"context_line":"        return self._path"},{"line_number":3080,"context_line":""},{"line_number":3081,"context_line":"    def serialize(self):"},{"line_number":3082,"context_line":"        data \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"464c07f1_a5e7f243","line":3079,"updated":"2021-10-29 15:42:44.000000000","message":"I think we should rework zkobject to basically just do this for all objects, and then we won\u0027t actually need to supply it with updateAttributes; it would just be included in the constructors.  I think I used the underscore here to remind us that it isn\u0027t actually stored as a real attribute.","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6c90b855358ca97fced1fee1bc6a2b6595b56f5b","unresolved":true,"context_lines":[{"line_number":3076,"context_line":"        self._set(data\u003d{})"},{"line_number":3077,"context_line":""},{"line_number":3078,"context_line":"    def getPath(self):"},{"line_number":3079,"context_line":"        return self._path"},{"line_number":3080,"context_line":""},{"line_number":3081,"context_line":"    def serialize(self):"},{"line_number":3082,"context_line":"        data \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"dcc5f26c_3d36c05a","line":3079,"updated":"2021-10-29 15:36:28.000000000","message":"Since this path attribute is set externally we should probably make it a public attribute. I think we may have done this in at least one other place (ExtraRepoState?), but it might be good to clean this up to make it more clear when reading.","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6c90b855358ca97fced1fee1bc6a2b6595b56f5b","unresolved":true,"context_lines":[{"line_number":3180,"context_line":"        self._result_data \u003d ResultData.new("},{"line_number":3181,"context_line":"            self._active_context,"},{"line_number":3182,"context_line":"            data\u003dresult_data,"},{"line_number":3183,"context_line":"            _path\u003dself.getPath() + \u0027/result_data\u0027)"},{"line_number":3184,"context_line":"        self._secret_result_data \u003d ResultData.new("},{"line_number":3185,"context_line":"            self._active_context,"},{"line_number":3186,"context_line":"            data\u003dsecret_result_data,"}],"source_content_type":"text/x-python","patch_set":15,"id":"a6b10674_31e996d0","line":3183,"updated":"2021-10-29 15:36:28.000000000","message":"See above comment.","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6c90b855358ca97fced1fee1bc6a2b6595b56f5b","unresolved":true,"context_lines":[{"line_number":3184,"context_line":"        self._secret_result_data \u003d ResultData.new("},{"line_number":3185,"context_line":"            self._active_context,"},{"line_number":3186,"context_line":"            data\u003dsecret_result_data,"},{"line_number":3187,"context_line":"            _path\u003dself.getPath() + \u0027/secret_result_data\u0027)"},{"line_number":3188,"context_line":""},{"line_number":3189,"context_line":"    @property"},{"line_number":3190,"context_line":"    def failed(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"46e375c7_ad777114","line":3187,"updated":"2021-10-29 15:36:28.000000000","message":"See above comment.","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"1f7ca38bae97af637fdbbc972664de936b040cef","unresolved":false,"context_lines":[{"line_number":3583,"context_line":"        self.builds[build.job.name] \u003d build"},{"line_number":3584,"context_line":"        if build.job.name not in self.tries:"},{"line_number":3585,"context_line":"            self.tries[build.job.name] \u003d 1"},{"line_number":3586,"context_line":"        self._save(self.item.pipeline.manager.current_context)"},{"line_number":3587,"context_line":""},{"line_number":3588,"context_line":"    def addRetryBuild(self, build):"},{"line_number":3589,"context_line":"        self.retry_builds.setdefault(build.job.name, []).append(build)"}],"source_content_type":"text/x-python","patch_set":15,"id":"d89f23a1_09a7482d","line":3586,"updated":"2021-10-29 15:42:44.000000000","message":"Hrm, I can\u0027t think of a reason.  I\u0027ll make a followup.","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6c90b855358ca97fced1fee1bc6a2b6595b56f5b","unresolved":true,"context_lines":[{"line_number":3583,"context_line":"        self.builds[build.job.name] \u003d build"},{"line_number":3584,"context_line":"        if build.job.name not in self.tries:"},{"line_number":3585,"context_line":"            self.tries[build.job.name] \u003d 1"},{"line_number":3586,"context_line":"        self._save(self.item.pipeline.manager.current_context)"},{"line_number":3587,"context_line":""},{"line_number":3588,"context_line":"    def addRetryBuild(self, build):"},{"line_number":3589,"context_line":"        self.retry_builds.setdefault(build.job.name, []).append(build)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9840dfdc_23ff5e9c","line":3586,"updated":"2021-10-29 15:36:28.000000000","message":"Why not use the activeContext context manager here?","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6c90b855358ca97fced1fee1bc6a2b6595b56f5b","unresolved":true,"context_lines":[{"line_number":3587,"context_line":""},{"line_number":3588,"context_line":"    def addRetryBuild(self, build):"},{"line_number":3589,"context_line":"        self.retry_builds.setdefault(build.job.name, []).append(build)"},{"line_number":3590,"context_line":"        self._save(self.item.pipeline.manager.current_context)"},{"line_number":3591,"context_line":""},{"line_number":3592,"context_line":"    def removeBuild(self, build):"},{"line_number":3593,"context_line":"        if build.job.name not in self.builds:"}],"source_content_type":"text/x-python","patch_set":15,"id":"f0440e9b_253a6684","line":3590,"updated":"2021-10-29 15:36:28.000000000","message":"See above.","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6c90b855358ca97fced1fee1bc6a2b6595b56f5b","unresolved":true,"context_lines":[{"line_number":3594,"context_line":"            return"},{"line_number":3595,"context_line":"        self.tries[build.job.name] +\u003d 1"},{"line_number":3596,"context_line":"        del self.builds[build.job.name]"},{"line_number":3597,"context_line":"        self._save(self.item.pipeline.manager.current_context)"},{"line_number":3598,"context_line":""},{"line_number":3599,"context_line":"    def getBuild(self, job_name):"},{"line_number":3600,"context_line":"        return self.builds.get(job_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"c495258c_c7bd7e4a","line":3597,"updated":"2021-10-29 15:36:28.000000000","message":"See above.","commit_id":"a7dde6c189e7388974825f53aace1896a3aaa4cc"}],"zuul/scheduler.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"c8ae652ec289f0dc3522203402d5962871dc4e82","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"                    for build in item.current_build_set.getBuilds():"},{"line_number":1247,"context_line":"                        new_job \u003d item.getJob(build.job.name)"},{"line_number":1248,"context_line":"                        if new_job:"},{"line_number":1249,"context_line":"                            build._set(job\u003dnew_job)"},{"line_number":1250,"context_line":"                        else:"},{"line_number":1251,"context_line":"                            item.removeBuild(build)"},{"line_number":1252,"context_line":"                            builds_to_cancel.append(build)"}],"source_content_type":"text/x-python","patch_set":13,"id":"60ab2ea9_c577b039","line":1249,"updated":"2021-10-26 22:22:37.000000000","message":"Because in ZK the build would reference the job by name, which won\u0027t have changed.  But the actual job object may have changed.\n\nHaving said that, I wonter if we should see if this is dead code at this point.","commit_id":"997839ce70101d0a5b0ff55bea86718da54eed17"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"cce5269fa7949b60e02be8ef4bcfa6f9ec29fcc4","unresolved":true,"context_lines":[{"line_number":1246,"context_line":"                    for build in item.current_build_set.getBuilds():"},{"line_number":1247,"context_line":"                        new_job \u003d item.getJob(build.job.name)"},{"line_number":1248,"context_line":"                        if new_job:"},{"line_number":1249,"context_line":"                            build._set(job\u003dnew_job)"},{"line_number":1250,"context_line":"                        else:"},{"line_number":1251,"context_line":"                            item.removeBuild(build)"},{"line_number":1252,"context_line":"                            builds_to_cancel.append(build)"}],"source_content_type":"text/x-python","patch_set":13,"id":"d765fe7f_47d3e610","line":1249,"updated":"2021-10-26 22:13:46.000000000","message":"Why don\u0027t we need to use update_attributes here?","commit_id":"997839ce70101d0a5b0ff55bea86718da54eed17"}]}
